]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: do not set a deadline when Server.IdleTimeout is negative
authorAndy Pan <panjf2000@gmail.com>
Sun, 10 Mar 2024 15:12:56 +0000 (23:12 +0800)
committerGopher Robot <gobot@golang.org>
Mon, 18 Mar 2024 16:56:29 +0000 (16:56 +0000)
Change-Id: I0d6336e6a21aef14e7229594a335899083fa98b1
Reviewed-on: https://go-review.googlesource.com/c/go/+/570396
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Damien Neil <dneil@google.com>
Auto-Submit: Damien Neil <dneil@google.com>
Reviewed-by: David Chase <drchase@google.com>
src/net/http/server.go

index 648695ca1a99111561fbf6e955ca69ad2f5a67c6..31b43606f5f9299386de22d04b51201e8d644daf 100644 (file)
@@ -2061,7 +2061,7 @@ func (c *conn) serve(ctx context.Context) {
                        return
                }
 
-               if d := c.server.idleTimeout(); d != 0 {
+               if d := c.server.idleTimeout(); d > 0 {
                        c.rwc.SetReadDeadline(time.Now().Add(d))
                } else {
                        c.rwc.SetReadDeadline(time.Time{})
@@ -2849,9 +2849,9 @@ type Server struct {
        // ReadHeaderTimeout is the amount of time allowed to read
        // request headers. The connection's read deadline is reset
        // after reading the headers and the Handler can decide what
-       // is considered too slow for the body. If ReadHeaderTimeout
-       // is zero, the value of ReadTimeout is used. If both are
-       // zero, there is no timeout.
+       // is considered too slow for the body. If zero, the value of
+       // ReadTimeout is used. If negative, or if zero and ReadTimeout
+       // is zero or negative, there is no timeout.
        ReadHeaderTimeout time.Duration
 
        // WriteTimeout is the maximum duration before timing out
@@ -2862,9 +2862,9 @@ type Server struct {
        WriteTimeout time.Duration
 
        // IdleTimeout is the maximum amount of time to wait for the
-       // next request when keep-alives are enabled. If IdleTimeout
-       // is zero, the value of ReadTimeout is used. If both are
-       // zero, there is no timeout.
+       // next request when keep-alives are enabled. If zero, the value
+       // of ReadTimeout is used. If negative, or if zero and ReadTimeout
+       // is zero or negative, there is no timeout.
        IdleTimeout time.Duration
 
        // MaxHeaderBytes controls the maximum number of bytes the