mirror of
https://github.com/golang/go
synced 2024-10-14 03:43:28 +00:00
net/http: update bundled http2
Updates x/net/http2 to git rev 0c607074 for https://golang.org/cl/23311, "http2: prevent Server from sending status 100 header after anything else" New test is in the x/net/http2 package (not bundled to std). Fixes #14030 Change-Id: Ifc6afa4a5fe35977135428f6d0e9f7c164767720 Reviewed-on: https://go-review.googlesource.com/23312 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
82ec4cd79f
commit
def50f8e48
|
@ -3111,6 +3111,7 @@ type http2stream struct {
|
|||
sentReset bool // only true once detached from streams map
|
||||
gotReset bool // only true once detacted from streams map
|
||||
gotTrailerHeader bool // HEADER frame for trailers was seen
|
||||
wroteHeaders bool // whether we wrote headers (not status 100)
|
||||
reqBuf []byte
|
||||
|
||||
trailer Header // accumulated trailers
|
||||
|
@ -3474,7 +3475,21 @@ func (sc *http2serverConn) writeFrameFromHandler(wm http2frameWriteMsg) error {
|
|||
// If you're not on the serve goroutine, use writeFrameFromHandler instead.
|
||||
func (sc *http2serverConn) writeFrame(wm http2frameWriteMsg) {
|
||||
sc.serveG.check()
|
||||
sc.writeSched.add(wm)
|
||||
|
||||
var ignoreWrite bool
|
||||
|
||||
switch wm.write.(type) {
|
||||
case *http2writeResHeaders:
|
||||
wm.stream.wroteHeaders = true
|
||||
case http2write100ContinueHeadersFrame:
|
||||
if wm.stream.wroteHeaders {
|
||||
ignoreWrite = true
|
||||
}
|
||||
}
|
||||
|
||||
if !ignoreWrite {
|
||||
sc.writeSched.add(wm)
|
||||
}
|
||||
sc.scheduleFrameWrite()
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue