]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: update bundled http2
authorBrad Fitzpatrick <bradfitz@golang.org>
Fri, 16 Jun 2017 20:37:21 +0000 (20:37 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Fri, 16 Jun 2017 20:53:36 +0000 (20:53 +0000)
Updates http2 to x/net/http2 git rev 973f3f3 for:

   http2: make Transport treat http.NoBody like it were nil
   https://golang.org/cl/45993

Updates #18891

Change-Id: I846ccf286992ed2c6249014e51fdeb40b35e50ed
Reviewed-on: https://go-review.googlesource.com/46000
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/net/http/h2_bundle.go

index 671e0f719e1604efa0cd3c94db74431b0cff9050..0533f56f0e067ef2aa9db5a577cb1b0e6f4f0f6d 100644 (file)
@@ -2996,6 +2996,8 @@ func http2reqBodyIsNoBody(body io.ReadCloser) bool {
        return body == NoBody
 }
 
+func http2go18httpNoBody() io.ReadCloser { return NoBody } // for tests only
+
 func http2configureServer19(s *Server, conf *http2Server) error {
        s.RegisterOnShutdown(conf.state.startGracefulShutdown)
        return nil
@@ -7196,7 +7198,7 @@ func http2checkConnHeaders(req *Request) error {
 // req.ContentLength, where 0 actually means zero (not unknown) and -1
 // means unknown.
 func http2actualContentLength(req *Request) int64 {
-       if req.Body == nil {
+       if req.Body == nil || http2reqBodyIsNoBody(req.Body) {
                return 0
        }
        if req.ContentLength != 0 {
@@ -7227,8 +7229,8 @@ func (cc *http2ClientConn) RoundTrip(req *Request) (*Response, error) {
        }
 
        body := req.Body
-       hasBody := body != nil
        contentLen := http2actualContentLength(req)
+       hasBody := contentLen != 0
 
        // TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere?
        var requestedGzip bool