aboutsummaryrefslogtreecommitdiff
path: root/server.go
diff options
context:
space:
mode:
authorGravatar Erik Dubbelboer <erik@dubbelboer.com> 2022-04-01 10:18:48 +0200
committerGravatar GitHub <noreply@github.com> 2022-04-01 10:18:48 +0200
commitd4c739eee589f96f10f07f05db40f1cfb5ad0bd9 (patch)
treef7b90bacffd7a11ae06cffef5d27750d16231122 /server.go
parentAdd Go 1.18 support (#1253) (diff)
downloadfasthttp-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.go13
1 files changed, 5 insertions, 8 deletions
diff --git a/server.go b/server.go
index 3ff678c..bc53247 100644
--- a/server.go
+++ b/server.go
@@ -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