Browse Source

Merge branch 'master' of https://github.com/bradfitz/http2

Brad Fitzpatrick 10 years ago
parent
commit
b17d8201ea
2 changed files with 6 additions and 3 deletions
  1. 2 2
      frame.go
  2. 4 1
      server.go

+ 2 - 2
frame.go

@@ -85,8 +85,8 @@ const (
 	// Continuation Frame
 	FlagContinuationEndHeaders Flags = 0x4
 
-	FlagPushPromiseEndHeaders = 0x4
-	FlagPushPromisePadded     = 0x8
+	FlagPushPromiseEndHeaders Flags = 0x4
+	FlagPushPromisePadded     Flags = 0x8
 )
 
 var flagName = map[FrameType]map[Flags]string{

+ 4 - 1
server.go

@@ -631,6 +631,9 @@ func (sc *serverConn) serve() {
 		case wm := <-sc.wantWriteFrameCh:
 			sc.writeFrame(wm)
 		case <-sc.wroteFrameCh:
+			if sc.writingFrame != true {
+				panic("internal error: expected to be already writing a frame")
+			}
 			sc.writingFrame = false
 			sc.scheduleFrameWrite()
 		case fg, ok := <-sc.readFrameCh:
@@ -752,6 +755,7 @@ func (sc *serverConn) startFrameWrite(wm frameWriteMsg) {
 	if sc.writingFrame {
 		panic("internal error: can only be writing one frame at a time")
 	}
+	sc.writingFrame = true
 
 	st := wm.stream
 	if st != nil {
@@ -768,7 +772,6 @@ func (sc *serverConn) startFrameWrite(wm frameWriteMsg) {
 		}
 	}
 
-	sc.writingFrame = true
 	sc.needsFrameFlush = true
 	if endsStream(wm.write) {
 		if st == nil {