1
0
mirror of https://github.com/golang/go synced 2024-10-02 16:28:34 -06:00

http/transferWriter: Write body when content length unknown

Fixes #923.

R=adg, rsc
CC=golang-dev
https://golang.org/cl/1846043
This commit is contained in:
James Whitehead 2010-07-19 14:05:27 +10:00 committed by Andrew Gerrand
parent 2d6ae385e1
commit 18d8c7dac6
2 changed files with 17 additions and 0 deletions

View File

@ -31,6 +31,21 @@ var respWriteTests = []respWriteTest{
"Content-Length: 6\r\n\r\n" +
"abcdef",
},
// Unchunked response without Content-Length.
respWriteTest{
Response{
StatusCode: 200,
ProtoMajor: 1,
ProtoMinor: 0,
RequestMethod: "GET",
Header: map[string]string{},
Body: nopCloser{bytes.NewBufferString("abcdef")},
ContentLength: -1,
},
"HTTP/1.0 200 OK\r\n" +
"\r\n" +
"abcdef",
},
// HTTP/1.1, chunked coding; empty trailer; close
respWriteTest{
Response{

View File

@ -135,6 +135,8 @@ func (t *transferWriter) WriteBody(w io.Writer) (err os.Error) {
if err == nil {
err = cw.Close()
}
} else if t.ContentLength == -1 {
_, err = io.Copy(w, t.Body)
} else {
_, err = io.Copy(w, io.LimitReader(t.Body, t.ContentLength))
}