diff options
Diffstat (limited to 'vendor/golang.org/x/net/http2/http2.go')
| -rw-r--r-- | vendor/golang.org/x/net/http2/http2.go | 36 | 
1 files changed, 29 insertions, 7 deletions
diff --git a/vendor/golang.org/x/net/http2/http2.go b/vendor/golang.org/x/net/http2/http2.go index 2e27b09..b6b0f9a 100644 --- a/vendor/golang.org/x/net/http2/http2.go +++ b/vendor/golang.org/x/net/http2/http2.go @@ -36,6 +36,7 @@ var (  	VerboseLogs    bool  	logFrameWrites bool  	logFrameReads  bool +	inTests        bool  )  func init() { @@ -77,13 +78,23 @@ var (  type streamState int +// HTTP/2 stream states. +// +// See http://tools.ietf.org/html/rfc7540#section-5.1. +// +// For simplicity, the server code merges "reserved (local)" into +// "half-closed (remote)". This is one less state transition to track. +// The only downside is that we send PUSH_PROMISEs slightly less +// liberally than allowable. More discussion here: +// https://lists.w3.org/Archives/Public/ietf-http-wg/2016JulSep/0599.html +// +// "reserved (remote)" is omitted since the client code does not +// support server push.  const (  	stateIdle streamState = iota  	stateOpen  	stateHalfClosedLocal  	stateHalfClosedRemote -	stateResvLocal -	stateResvRemote  	stateClosed  ) @@ -92,8 +103,6 @@ var stateName = [...]string{  	stateOpen:             "Open",  	stateHalfClosedLocal:  "HalfClosedLocal",  	stateHalfClosedRemote: "HalfClosedRemote", -	stateResvLocal:        "ResvLocal", -	stateResvRemote:       "ResvRemote",  	stateClosed:           "Closed",  } @@ -253,14 +262,27 @@ func newBufferedWriter(w io.Writer) *bufferedWriter {  	return &bufferedWriter{w: w}  } +// bufWriterPoolBufferSize is the size of bufio.Writer's +// buffers created using bufWriterPool. +// +// TODO: pick a less arbitrary value? this is a bit under +// (3 x typical 1500 byte MTU) at least. Other than that, +// not much thought went into it. +const bufWriterPoolBufferSize = 4 << 10 +  var bufWriterPool = sync.Pool{  	New: func() interface{} { -		// TODO: pick something better? this is a bit under -		// (3 x typical 1500 byte MTU) at least. -		return bufio.NewWriterSize(nil, 4<<10) +		return bufio.NewWriterSize(nil, bufWriterPoolBufferSize)  	},  } +func (w *bufferedWriter) Available() int { +	if w.bw == nil { +		return bufWriterPoolBufferSize +	} +	return w.bw.Available() +} +  func (w *bufferedWriter) Write(p []byte) (n int, err error) {  	if w.bw == nil {  		bw := bufWriterPool.Get().(*bufio.Writer)  | 
