]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: update bundled http2 to fix test flake
authorBrad Fitzpatrick <bradfitz@golang.org>
Thu, 3 Nov 2016 00:44:16 +0000 (00:44 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Thu, 3 Nov 2016 00:53:52 +0000 (00:53 +0000)
Updates http2 to x/net/http2 git rev 569280fa for:

   http2: fix over-aggressive ignoring of frames while in "go away" mode
   https://golang.org/cl/32583

Fixes #17733

Change-Id: I4008d2e14ce89782ce7e18b441b1181f98623b9d
Reviewed-on: https://go-review.googlesource.com/32584
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: David Crawshaw <crawshaw@golang.org>
src/net/http/h2_bundle.go

index 71f511723a683d8631299ab5e36f9963673dfa5e..6367d20aacf21ab9ad77ff57e72a5895fd0dc7fa 100644 (file)
@@ -3957,7 +3957,7 @@ func (sc *http2serverConn) processPing(f *http2PingFrame) error {
 
                return http2ConnectionError(http2ErrCodeProtocol)
        }
-       if sc.inGoAway {
+       if sc.inGoAway && sc.goAwayCode != http2ErrCodeNo {
                return nil
        }
        sc.writeFrame(http2FrameWriteRequest{write: http2writePingAck{f}})
@@ -3966,9 +3966,6 @@ func (sc *http2serverConn) processPing(f *http2PingFrame) error {
 
 func (sc *http2serverConn) processWindowUpdate(f *http2WindowUpdateFrame) error {
        sc.serveG.check()
-       if sc.inGoAway {
-               return nil
-       }
        switch {
        case f.StreamID != 0:
                state, st := sc.state(f.StreamID)
@@ -3994,9 +3991,6 @@ func (sc *http2serverConn) processWindowUpdate(f *http2WindowUpdateFrame) error
 
 func (sc *http2serverConn) processResetStream(f *http2RSTStreamFrame) error {
        sc.serveG.check()
-       if sc.inGoAway {
-               return nil
-       }
 
        state, st := sc.state(f.StreamID)
        if state == http2stateIdle {
@@ -4049,9 +4043,6 @@ func (sc *http2serverConn) processSettings(f *http2SettingsFrame) error {
                }
                return nil
        }
-       if sc.inGoAway {
-               return nil
-       }
        if err := f.ForeachSetting(sc.processSetting); err != nil {
                return err
        }
@@ -4108,7 +4099,7 @@ func (sc *http2serverConn) processSettingInitialWindowSize(val uint32) error {
 
 func (sc *http2serverConn) processData(f *http2DataFrame) error {
        sc.serveG.check()
-       if sc.inGoAway {
+       if sc.inGoAway && sc.goAwayCode != http2ErrCodeNo {
                return nil
        }
        data := f.Data()