Commit 8b990263 authored by Mike Danese's avatar Mike Danese

Merge pull request #11057 from liggitt/close_body

Close resp.Body before returning error
parents 18466bfc 39a5e1b9
...@@ -614,6 +614,9 @@ func (r *Request) Stream() (io.ReadCloser, error) { ...@@ -614,6 +614,9 @@ func (r *Request) Stream() (io.ReadCloser, error) {
return resp.Body, nil return resp.Body, nil
default: default:
// ensure we close the body before returning the error
defer resp.Body.Close()
// we have a decent shot at taking the object returned, parsing it as a status object and returning a more normal error // we have a decent shot at taking the object returned, parsing it as a status object and returning a more normal error
bodyBytes, err := ioutil.ReadAll(resp.Body) bodyBytes, err := ioutil.ReadAll(resp.Body)
if err != nil { if err != nil {
......
...@@ -134,6 +134,7 @@ func (s *SpdyRoundTripper) NewConnection(resp *http.Response) (httpstream.Connec ...@@ -134,6 +134,7 @@ func (s *SpdyRoundTripper) NewConnection(resp *http.Response) (httpstream.Connec
connectionHeader := strings.ToLower(resp.Header.Get(httpstream.HeaderConnection)) connectionHeader := strings.ToLower(resp.Header.Get(httpstream.HeaderConnection))
upgradeHeader := strings.ToLower(resp.Header.Get(httpstream.HeaderUpgrade)) upgradeHeader := strings.ToLower(resp.Header.Get(httpstream.HeaderUpgrade))
if !strings.Contains(connectionHeader, strings.ToLower(httpstream.HeaderUpgrade)) || !strings.Contains(upgradeHeader, strings.ToLower(HeaderSpdy31)) { if !strings.Contains(connectionHeader, strings.ToLower(httpstream.HeaderUpgrade)) || !strings.Contains(upgradeHeader, strings.ToLower(HeaderSpdy31)) {
defer resp.Body.Close()
responseError := "" responseError := ""
responseErrorBytes, err := ioutil.ReadAll(resp.Body) responseErrorBytes, err := ioutil.ReadAll(resp.Body)
if err != nil { if err != nil {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment