Handle CRLF
This commit is contained in:
parent
81e4a3cb2c
commit
07b3a2c739
1 changed files with 5 additions and 1 deletions
|
|
@ -45,6 +45,7 @@ func getRawMimePart(rawdata io.Reader, boundary string) (io.Reader, io.Reader) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
lineEndingLength := 0
|
||||||
for {
|
for {
|
||||||
line, isPrefix, err := reader.ReadLine()
|
line, isPrefix, err := reader.ReadLine()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -53,20 +54,23 @@ func getRawMimePart(rawdata io.Reader, boundary string) (io.Reader, io.Reader) {
|
||||||
if bytes.HasPrefix(line, byteBoundary) {
|
if bytes.HasPrefix(line, byteBoundary) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
lineEndingLength = 0
|
||||||
bodyBuffer.Write(line)
|
bodyBuffer.Write(line)
|
||||||
if !isPrefix {
|
if !isPrefix {
|
||||||
reader.UnreadByte()
|
reader.UnreadByte()
|
||||||
reader.UnreadByte()
|
reader.UnreadByte()
|
||||||
token, _ := reader.ReadByte()
|
token, _ := reader.ReadByte()
|
||||||
if token == '\r' {
|
if token == '\r' {
|
||||||
|
lineEndingLength++
|
||||||
bodyBuffer.WriteByte(token)
|
bodyBuffer.WriteByte(token)
|
||||||
}
|
}
|
||||||
|
lineEndingLength++
|
||||||
bodyBuffer.WriteByte(token)
|
bodyBuffer.WriteByte(token)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ioutil.ReadAll(reader)
|
ioutil.ReadAll(reader)
|
||||||
data := bodyBuffer.Bytes()
|
data := bodyBuffer.Bytes()
|
||||||
return tee, bytes.NewReader(data[0:len(data) - 1])
|
return tee, bytes.NewReader(data[0:len(data) - lineEndingLength])
|
||||||
}
|
}
|
||||||
|
|
||||||
func getMultipartParts(r io.Reader, params map[string]string) (parts []io.Reader, headers []textproto.MIMEHeader, err error) {
|
func getMultipartParts(r io.Reader, params map[string]string) (parts []io.Reader, headers []textproto.MIMEHeader, err error) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue