From bf3f95bb0beee2b3e81f6a5ec0753e9dc47a69ac Mon Sep 17 00:00:00 2001 From: Patrick McManus Date: Fri, 5 Oct 2012 15:03:24 -0400 Subject: [PATCH] bug 798426 spdy/3 goaway frame has 8 byte payload r=honzab --HG-- extra : rebase_source : 5dd9fb269da28c1fac76b3f574c2644aa9839fe4 --- netwerk/protocol/http/SpdySession3.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/netwerk/protocol/http/SpdySession3.cpp b/netwerk/protocol/http/SpdySession3.cpp index 7ce04d3d509c..70c0018a476a 100644 --- a/netwerk/protocol/http/SpdySession3.cpp +++ b/netwerk/protocol/http/SpdySession3.cpp @@ -1233,7 +1233,7 @@ SpdySession3::HandleGoAway(SpdySession3 *self) NS_ABORT_IF_FALSE(self->mFrameControlType == CONTROL_TYPE_GOAWAY, "wrong control type"); - if (self->mInputFrameDataSize != 4) { + if (self->mInputFrameDataSize != 8) { LOG3(("SpdySession3::HandleGoAway %p GOAWAY had wrong amount of data %d", self, self->mInputFrameDataSize)); return NS_ERROR_ILLEGAL_VALUE; @@ -1244,8 +1244,10 @@ SpdySession3::HandleGoAway(SpdySession3 *self) PR_ntohl(reinterpret_cast(self->mInputFrameBuffer.get())[2]); self->mCleanShutdown = true; - LOG3(("SpdySession3::HandleGoAway %p GOAWAY Last-Good-ID 0x%X.", - self, self->mGoAwayID)); + LOG3(("SpdySession3::HandleGoAway %p GOAWAY Last-Good-ID 0x%X status 0x%X\n", + self, self->mGoAwayID, + PR_ntohl(reinterpret_cast(self->mInputFrameBuffer.get())[3]))); + self->ResumeRecv(); self->ResetDownstreamState(); return NS_OK;