aboutsummaryrefslogtreecommitdiff
path: root/server.go
diff options
context:
space:
mode:
authorGravatar Sergio VS <savsgio.engineer@gmail.com> 2022-01-18 12:45:41 +0100
committerGravatar GitHub <noreply@github.com> 2022-01-18 12:45:41 +0100
commit2aca3e82637860c90b8a3a2454ae8325706c1fd4 (patch)
tree1a853df6db916703df6578d0aaa49957f1c37f01 /server.go
parentUpdated dependencies (#1194) (diff)
downloadfasthttp-2aca3e82637860c90b8a3a2454ae8325706c1fd4.tar.gz
fasthttp-2aca3e82637860c90b8a3a2454ae8325706c1fd4.tar.bz2
fasthttp-2aca3e82637860c90b8a3a2454ae8325706c1fd4.zip
fix(hijack): reset userValues after hijack handler execution (#1199)
* fix(hijack): reset userValues after hijack handler execution * feat: add test * fix: typo * fix(test): race condition
Diffstat (limited to 'server.go')
-rw-r--r--server.go6
1 files changed, 4 insertions, 2 deletions
diff --git a/server.go b/server.go
index 90ba5a8..08d4dc6 100644
--- a/server.go
+++ b/server.go
@@ -2375,6 +2375,7 @@ func (s *Server) serveConn(c net.Conn) (err error) {
if hijackHandler != nil {
var hjr io.Reader = c
+ hctx := ctx
if br != nil {
hjr = br
br = nil
@@ -2394,7 +2395,7 @@ func (s *Server) serveConn(c net.Conn) (err error) {
if err != nil {
break
}
- go hijackConnHandler(hjr, c, s, hijackHandler)
+ go hijackConnHandler(hctx, hjr, c, s, hijackHandler)
err = errHijacked
break
}
@@ -2446,7 +2447,7 @@ func (s *Server) setState(nc net.Conn, state ConnState) {
}
}
-func hijackConnHandler(r io.Reader, c net.Conn, s *Server, h HijackHandler) {
+func hijackConnHandler(ctx *RequestCtx, r io.Reader, c net.Conn, s *Server, h HijackHandler) {
hjc := s.acquireHijackConn(r, c)
h(hjc)
@@ -2457,6 +2458,7 @@ func hijackConnHandler(r io.Reader, c net.Conn, s *Server, h HijackHandler) {
c.Close()
s.releaseHijackConn(hjc)
}
+ ctx.ResetUserValues()
}
func (s *Server) acquireHijackConn(r io.Reader, c net.Conn) *hijackConn {