re.res.Header.Del("Content-Encoding")
re.res.Header.Del("Content-Length")
re.res.ContentLength = -1
- var err os.Error
- re.res.Body, err = gzip.NewReader(re.res.Body)
+ gzReader, err := gzip.NewReader(re.res.Body)
if err != nil {
pc.close()
return nil, err
}
+ re.res.Body = &readFirstCloseBoth{gzReader, re.res.Body}
}
return re.res, re.err
}
return
}
+
+type readFirstCloseBoth struct {
+ io.ReadCloser
+ io.Closer
+}
+
+func (r *readFirstCloseBoth) Close() os.Error {
+ if err := r.ReadCloser.Close(); err != nil {
+ return err
+ }
+ if err := r.Closer.Close(); err != nil {
+ return err
+ }
+ return nil
+}