From fd6bf94947ec878371e3beb6027f6c9254a3fe11 Mon Sep 17 00:00:00 2001 From: Gian Biondi Date: Mon, 4 May 2015 14:52:15 -0400 Subject: [PATCH] Makes GoAway Handler no-op --- transport/http2_server.go | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/transport/http2_server.go b/transport/http2_server.go index bda50f72..e2c6e497 100644 --- a/transport/http2_server.go +++ b/transport/http2_server.go @@ -84,8 +84,6 @@ type http2Server struct { activeStreams map[uint32]*Stream // the per-stream outbound flow control window size set by the peer. streamSendQuota uint32 - // set to true when server receives GOAWAY frame - goaway bool } // newHTTP2Server constructs a ServerTransport based on HTTP2. ConnectionError is @@ -165,12 +163,6 @@ func (t *http2Server) operateHeaders(hDec *hpackDecoder, s *Stream, frame header return s } t.mu.Lock() - if t.goaway { - //Stop creating streams on this transport - log.Printf("transport: http2server received GOAWAY, rejecting new streams") - t.mu.Unlock() - return nil - } if t.state != reachable { t.mu.Unlock() return nil @@ -290,7 +282,7 @@ func (t *http2Server) HandleStreams(handle func(*Stream)) { case *http2.WindowUpdateFrame: t.handleWindowUpdate(frame) case *http2.GoAwayFrame: - t.handleGoAway(frame) + break default: log.Printf("transport: http2Server.HandleStreams found unhandled frame type %v.", frame) } @@ -410,12 +402,6 @@ func (t *http2Server) handleWindowUpdate(f *http2.WindowUpdateFrame) { } } -func (t *http2Server) handleGoAway(f *http2.GoAwayFrame) { - t.mu.Lock() - t.goaway = true - t.mu.Unlock() -} - func (t *http2Server) writeHeaders(s *Stream, b *bytes.Buffer, endStream bool) error { first := true endHeaders := false