diff options
Diffstat (limited to 'vendor/golang.org/x/net')
| -rw-r--r-- | vendor/golang.org/x/net/html/doc.go | 2 | ||||
| -rw-r--r-- | vendor/golang.org/x/net/http2/pipe.go | 6 | ||||
| -rw-r--r-- | vendor/golang.org/x/net/http2/server.go | 7 | ||||
| -rw-r--r-- | vendor/golang.org/x/net/http2/transport.go | 11 | 
4 files changed, 13 insertions, 13 deletions
diff --git a/vendor/golang.org/x/net/html/doc.go b/vendor/golang.org/x/net/html/doc.go index 7a96eae33..5ff8480cf 100644 --- a/vendor/golang.org/x/net/html/doc.go +++ b/vendor/golang.org/x/net/html/doc.go @@ -106,7 +106,7 @@ and as such does not resolve issues that may exist in the processed HTML,  producing a literal interpretation of the input.  If your use case requires semantically well-formed HTML, as defined by the -WHATWG specifiction, the parser should be used rather than the tokenizer. +WHATWG specification, the parser should be used rather than the tokenizer.  */  package html // import "golang.org/x/net/html" diff --git a/vendor/golang.org/x/net/http2/pipe.go b/vendor/golang.org/x/net/http2/pipe.go index c15b8a771..684d984fd 100644 --- a/vendor/golang.org/x/net/http2/pipe.go +++ b/vendor/golang.org/x/net/http2/pipe.go @@ -88,13 +88,9 @@ func (p *pipe) Write(d []byte) (n int, err error) {  		p.c.L = &p.mu  	}  	defer p.c.Signal() -	if p.err != nil { +	if p.err != nil || p.breakErr != nil {  		return 0, errClosedPipeWrite  	} -	if p.breakErr != nil { -		p.unread += len(d) -		return len(d), nil // discard when there is no reader -	}  	return p.b.Write(d)  } diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go index 8cb14f3c9..cd057f398 100644 --- a/vendor/golang.org/x/net/http2/server.go +++ b/vendor/golang.org/x/net/http2/server.go @@ -1822,15 +1822,18 @@ func (sc *serverConn) processData(f *DataFrame) error {  		}  		if len(data) > 0 { +			st.bodyBytes += int64(len(data))  			wrote, err := st.body.Write(data)  			if err != nil { +				// The handler has closed the request body. +				// Return the connection-level flow control for the discarded data, +				// but not the stream-level flow control.  				sc.sendWindowUpdate(nil, int(f.Length)-wrote) -				return sc.countError("body_write_err", streamError(id, ErrCodeStreamClosed)) +				return nil  			}  			if wrote != len(data) {  				panic("internal error: bad Writer")  			} -			st.bodyBytes += int64(len(data))  		}  		// Return any padded flow control now, since we won't diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go index 05ba23d3d..f965579f7 100644 --- a/vendor/golang.org/x/net/http2/transport.go +++ b/vendor/golang.org/x/net/http2/transport.go @@ -560,10 +560,11 @@ func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Res  		traceGotConn(req, cc, reused)  		res, err := cc.RoundTrip(req)  		if err != nil && retry <= 6 { +			roundTripErr := err  			if req, err = shouldRetryRequest(req, err); err == nil {  				// After the first retry, do exponential backoff with 10% jitter.  				if retry == 0 { -					t.vlogf("RoundTrip retrying after failure: %v", err) +					t.vlogf("RoundTrip retrying after failure: %v", roundTripErr)  					continue  				}  				backoff := float64(uint(1) << (uint(retry) - 1)) @@ -572,7 +573,7 @@ func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Res  				timer := backoffNewTimer(d)  				select {  				case <-timer.C: -					t.vlogf("RoundTrip retrying after failure: %v", err) +					t.vlogf("RoundTrip retrying after failure: %v", roundTripErr)  					continue  				case <-req.Context().Done():  					timer.Stop() @@ -2555,6 +2556,9 @@ func (b transportResponseBody) Close() error {  	cs := b.cs  	cc := cs.cc +	cs.bufPipe.BreakWithError(errClosedResponseBody) +	cs.abortStream(errClosedResponseBody) +  	unread := cs.bufPipe.Len()  	if unread > 0 {  		cc.mu.Lock() @@ -2573,9 +2577,6 @@ func (b transportResponseBody) Close() error {  		cc.wmu.Unlock()  	} -	cs.bufPipe.BreakWithError(errClosedResponseBody) -	cs.abortStream(errClosedResponseBody) -  	select {  	case <-cs.donec:  	case <-cs.ctx.Done():  | 
