aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/http/transport.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/http/transport.go')
-rw-r--r--src/pkg/http/transport.go6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/pkg/http/transport.go b/src/pkg/http/transport.go
index 98ac203b72..73a2c2191e 100644
--- a/src/pkg/http/transport.go
+++ b/src/pkg/http/transport.go
@@ -532,12 +532,13 @@ func (pc *persistConn) roundTrip(req *Request) (resp *Response, err os.Error) {
re.res.Header.Del("Content-Encoding")
re.res.Header.Del("Content-Length")
re.res.ContentLength = -1
- gzReader, err := gzip.NewReader(re.res.Body)
+ esb := re.res.Body.(*bodyEOFSignal)
+ gzReader, err := gzip.NewReader(esb.body)
if err != nil {
pc.close()
return nil, err
}
- re.res.Body = &readFirstCloseBoth{gzReader, re.res.Body}
+ esb.body = &readFirstCloseBoth{gzReader, esb.body}
}
return re.res, re.err
@@ -619,6 +620,7 @@ type readFirstCloseBoth struct {
func (r *readFirstCloseBoth) Close() os.Error {
if err := r.ReadCloser.Close(); err != nil {
+ r.Closer.Close()
return err
}
if err := r.Closer.Close(); err != nil {