Browse Source

http2: don't check WriteHeader status if we've already sent the header

Tests will be in net/http in a separate CL.

Updates golang/go#23010

Change-Id: I91a6875b9a59b33a3c669e73dd6632ac523eb9f6
Reviewed-on: https://go-review.googlesource.com/86255
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Brad Fitzpatrick 8 years ago
parent
commit
42fe2e1c20
1 changed files with 1 additions and 1 deletions
  1. 1 1
      http2/server.go

+ 1 - 1
http2/server.go

@@ -2509,7 +2509,6 @@ func checkWriteHeaderCode(code int) {
 }
 
 func (w *responseWriter) WriteHeader(code int) {
-	checkWriteHeaderCode(code)
 	rws := w.rws
 	if rws == nil {
 		panic("WriteHeader called after Handler finished")
@@ -2519,6 +2518,7 @@ func (w *responseWriter) WriteHeader(code int) {
 
 func (rws *responseWriterState) writeHeader(code int) {
 	if !rws.wroteHeader {
+		checkWriteHeaderCode(code)
 		rws.wroteHeader = true
 		rws.status = code
 		if len(rws.handlerHeader) > 0 {