diff options
author | Erik Dubbelboer <erik@dubbelboer.com> | 2022-04-01 10:18:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-01 10:18:48 +0200 |
commit | d4c739eee589f96f10f07f05db40f1cfb5ad0bd9 (patch) | |
tree | f7b90bacffd7a11ae06cffef5d27750d16231122 /server.go | |
parent | Add Go 1.18 support (#1253) (diff) | |
download | fasthttp-d4c739eee589f96f10f07f05db40f1cfb5ad0bd9.tar.gz fasthttp-d4c739eee589f96f10f07f05db40f1cfb5ad0bd9.tar.bz2 fasthttp-d4c739eee589f96f10f07f05db40f1cfb5ad0bd9.zip |
State active (#1260)
* Require at least Go 1.15
* Fix StateActive state
* Don't panic when idle connections get closed
Diffstat (limited to 'server.go')
-rw-r--r-- | server.go | 13 |
1 files changed, 5 insertions, 8 deletions
@@ -2138,7 +2138,7 @@ func (s *Server) serveConn(c net.Conn) (err error) { if connRequestNum > 1 { if d := s.idleTimeout(); d > 0 { if err := c.SetReadDeadline(time.Now().Add(d)); err != nil { - panic(fmt.Sprintf("BUG: error in SetReadDeadline(%s): %s", d, err)) + break } } } @@ -2178,15 +2178,17 @@ func (s *Server) serveConn(c net.Conn) (err error) { ctx.Response.secureErrorLogMessage = s.SecureErrorLogMessage if err == nil { + s.setState(c, StateActive) + if s.ReadTimeout > 0 { if err := c.SetReadDeadline(time.Now().Add(s.ReadTimeout)); err != nil { - panic(fmt.Sprintf("BUG: error in SetReadDeadline(%s): %s", s.ReadTimeout, err)) + break } } else if s.IdleTimeout > 0 && connRequestNum > 1 { // If this was an idle connection and the server has an IdleTimeout but // no ReadTimeout then we should remove the ReadTimeout. if err := c.SetReadDeadline(zeroTime); err != nil { - panic(fmt.Sprintf("BUG: error in SetReadDeadline(zeroTime): %s", err)) + break } } if s.DisableHeaderNamesNormalizing { @@ -2238,11 +2240,6 @@ func (s *Server) serveConn(c net.Conn) (err error) { } } - if err == nil { - // If we read any bytes off the wire, we're active. - s.setState(c, StateActive) - } - if (s.ReduceMemoryUsage && br.Buffered() == 0) || err != nil { releaseReader(s, br) br = nil |