diff --git a/chain.go b/chain.go index 244ae9f5..78763d13 100644 --- a/chain.go +++ b/chain.go @@ -7,7 +7,7 @@ import ( "github.com/golang/glog" "golang.org/x/net/http2" "io" - "io/ioutil" + //"io/ioutil" "net" "net/http" "net/http/httputil" @@ -238,7 +238,7 @@ func (c *ProxyChain) getHttp2Conn(header http.Header) (net.Conn, error) { Proto: "HTTP/2.0", ProtoMajor: 2, ProtoMinor: 0, - Body: ioutil.NopCloser(pr), + Body: pr, Host: http2Node.Addr, ContentLength: -1, } diff --git a/http.go b/http.go index 073c2f29..18418eb7 100644 --- a/http.go +++ b/http.go @@ -311,11 +311,14 @@ func (c *http2Conn) Write(b []byte) (n int, err error) { return c.w.Write(b) } -func (c *http2Conn) Close() error { - if rc, ok := c.r.(io.ReadCloser); ok { - return rc.Close() +func (c *http2Conn) Close() (err error) { + if rc, ok := c.r.(io.Closer); ok { + err = rc.Close() } - return nil + if w, ok := c.w.(io.Closer); ok { + err = w.Close() + } + return } func (c *http2Conn) LocalAddr() net.Addr {