From: Brad Fitzpatrick Date: Fri, 15 Jun 2018 20:10:47 +0000 (+0000) Subject: net/http: document how Hijack and Request.Context interact, take two X-Git-Tag: go1.11beta1~72 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c34381a6581c59b8e80d2f2ef3ad9ec223b752a5;p=gostls13.git net/http: document how Hijack and Request.Context interact, take two Second try. The previous version (CL 115039 in git rev 3988863) wasn't accurate. Fixes #22347 Change-Id: I473165f308c730f50b14ba787cb215f7cb9ea364 Reviewed-on: https://go-review.googlesource.com/119235 Reviewed-by: Ian Lance Taylor --- diff --git a/src/net/http/request.go b/src/net/http/request.go index ea2d51fee5..390f3cc063 100644 --- a/src/net/http/request.go +++ b/src/net/http/request.go @@ -321,8 +321,7 @@ type Request struct { // // For incoming server requests, the context is canceled when the // client's connection closes, the request is canceled (with HTTP/2), -// the ServeHTTP method returns, or if the Hijack method is -// called on the ResponseWriter. +// or when the ServeHTTP method returns. func (r *Request) Context() context.Context { if r.ctx != nil { return r.ctx diff --git a/src/net/http/server.go b/src/net/http/server.go index d54b745cd2..e8903c5346 100644 --- a/src/net/http/server.go +++ b/src/net/http/server.go @@ -190,7 +190,9 @@ type Hijacker interface { // data from the client. // // After a call to Hijack, the original Request.Body must not - // be used, and the Request.Context will be canceled. + // be used. The original Request's Context remains valid and + // is not canceled until the Request's ServeHTTP method + // returns. Hijack() (net.Conn, *bufio.ReadWriter, error) }