From: Brad Fitzpatrick Date: Thu, 3 Nov 2016 00:44:16 +0000 (+0000) Subject: net/http: update bundled http2 to fix test flake X-Git-Tag: go1.8beta1~368 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=827f2accc1a25b77003303d3c35db5fc054bf8f1;p=gostls13.git net/http: update bundled http2 to fix test flake 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 Reviewed-by: David Crawshaw --- diff --git a/src/net/http/h2_bundle.go b/src/net/http/h2_bundle.go index 71f511723a..6367d20aac 100644 --- a/src/net/http/h2_bundle.go +++ b/src/net/http/h2_bundle.go @@ -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()