diff options
| author | Roman Kollár <roman.kollar.0@gmail.com> | 2019-11-21 22:25:52 +0000 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@golang.org> | 2019-11-21 23:15:28 +0000 |
| commit | bbbc6589dfbc05be2bfa59f51c20f9eaa8d0c531 (patch) | |
| tree | d8a12e49ea1c7287d919f5cfd55d400340e87b10 /src/net/http/server.go | |
| parent | 94e9a5e19b831504eca2b7202b78d1a48c4be547 (diff) | |
| download | go-bbbc6589dfbc05be2bfa59f51c20f9eaa8d0c531.tar.xz | |
net/http: fix Server.ConnContext modifying context for all new connections
Fixes #35750
Change-Id: I65d38cfc5ddd66131777e104c269cc3559b2471d
GitHub-Last-Rev: 953fdfd49b2be665be43f8148d2a6180dae3b91c
GitHub-Pull-Request: golang/go#35751
Reviewed-on: https://go-review.googlesource.com/c/go/+/208318
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/net/http/server.go')
| -rw-r--r-- | src/net/http/server.go | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/net/http/server.go b/src/net/http/server.go index 4f1c73dbdf..58aff08424 100644 --- a/src/net/http/server.go +++ b/src/net/http/server.go @@ -2920,16 +2920,17 @@ func (srv *Server) Serve(l net.Listener) error { } return err } + connCtx := ctx if cc := srv.ConnContext; cc != nil { - ctx = cc(ctx, rw) - if ctx == nil { + connCtx = cc(connCtx, rw) + if connCtx == nil { panic("ConnContext returned nil") } } tempDelay = 0 c := srv.newConn(rw) c.setState(c.rwc, StateNew) // before Serve can return - go c.serve(ctx) + go c.serve(connCtx) } } |
