]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: update bundled http2 for IdleTimeout config sync change
authorBrad Fitzpatrick <bradfitz@golang.org>
Sat, 29 Oct 2016 18:44:07 +0000 (18:44 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Sat, 29 Oct 2016 23:17:59 +0000 (23:17 +0000)
Updates http2 to x/net git rev 76c1a11e for:

     http2: initialize Server.IdleTimeout from http.Server as http1 does
     https://golang.org/cl/32230

     http2: change how Server.IdleTimeout is initialized from http.Server
     https://golang.org/cl/32323

Fixes #14204

Change-Id: I099f89fcd0d8bc0e42da163ae0a3b786fd81292f
Reviewed-on: https://go-review.googlesource.com/32322
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/net/http/h2_bundle.go

index f69623c1f51ae6e7c582a9300d0f5a242b02458b..da7c02578cd5a69dac0b3aa4099eaf98375e338d 100644 (file)
@@ -2173,6 +2173,17 @@ func (w *http2responseWriter) Push(target string, opts *PushOptions) error {
        return w.push(target, internalOpts)
 }
 
+func http2configureServer18(h1 *Server, h2 *http2Server) error {
+       if h2.IdleTimeout == 0 {
+               if h1.IdleTimeout != 0 {
+                       h2.IdleTimeout = h1.IdleTimeout
+               } else {
+                       h2.IdleTimeout = h1.ReadTimeout
+               }
+       }
+       return nil
+}
+
 var http2DebugGoroutines = os.Getenv("DEBUG_HTTP2_GOROUTINES") == "1"
 
 type http2goroutineLock uint64
@@ -2971,15 +2982,25 @@ func (s *http2Server) maxConcurrentStreams() uint32 {
        return http2defaultMaxStreams
 }
 
+// List of funcs for ConfigureServer to run. Both h1 and h2 are guaranteed
+// to be non-nil.
+var http2configServerFuncs []func(h1 *Server, h2 *http2Server) error
+
 // ConfigureServer adds HTTP/2 support to a net/http Server.
 //
 // The configuration conf may be nil.
 //
 // ConfigureServer must be called before s begins serving.
 func http2ConfigureServer(s *Server, conf *http2Server) error {
+       if s == nil {
+               panic("nil *http.Server")
+       }
        if conf == nil {
                conf = new(http2Server)
        }
+       if err := http2configureServer18(s, conf); err != nil {
+               return err
+       }
 
        if s.TLSConfig == nil {
                s.TLSConfig = new(tls.Config)