File tree Expand file tree Collapse file tree 1 file changed +12
-8
lines changed
Expand file tree Collapse file tree 1 file changed +12
-8
lines changed Original file line number Diff line number Diff line change @@ -199,31 +199,35 @@ func (mw *msgWriter) writeString(s string) {
199199
200200// writeHeader writes a header into the msgWriter's io.Writer
201201func (mw * msgWriter ) writeHeader (k Header , vl ... string ) {
202- // Chars left: MaxHeaderLength - "<Headername>: " - "CRLF"
202+ wbuf := bytes. Buffer {}
203203 cl := MaxHeaderLength - 2
204- mw . writeString (string (k ))
204+ wbuf . WriteString (string (k ))
205205 cl -= len (k )
206206 if len (vl ) == 0 {
207- mw . writeString (":\r \n " )
207+ wbuf . WriteString (":\r \n " )
208208 return
209209 }
210- mw . writeString (": " )
210+ wbuf . WriteString (": " )
211211 cl -= 2
212212
213213 fs := strings .Join (vl , ", " )
214214 sfs := strings .Split (fs , " " )
215215 for i , v := range sfs {
216216 if cl - len (v ) <= 1 {
217- mw . writeString ("\r \n " )
217+ wbuf . WriteString ("\r \n " )
218218 cl = MaxHeaderLength - 3
219219 }
220- mw . writeString (v )
221- if i < len (sfs ) {
222- mw . writeString (" " )
220+ wbuf . WriteString (v )
221+ if i < len (sfs )- 1 {
222+ wbuf . WriteString (" " )
223223 cl -= 1
224224 }
225225 cl -= len (v )
226226 }
227+
228+ bufs := wbuf .String ()
229+ bufs = strings .ReplaceAll (bufs , " \r \n " , "\r \n " )
230+ mw .writeString (bufs )
227231 mw .writeString ("\r \n " )
228232}
229233
You can’t perform that action at this time.
0 commit comments