Bug 1240025 - incorrect close state on pushed stream r=hurley

This commit is contained in:
Patrick McManus 2016-02-10 14:54:32 -05:00
parent 75ebf5579d
commit 05c5f9a9b1

View File

@ -1011,8 +1011,10 @@ Http2Session::CleanupStream(Http2Stream *aStream, nsresult aResult,
pushSource->SetConsumerStream(nullptr);
}
if (!aStream->RecvdFin() && !aStream->RecvdReset() && aStream->StreamID()) {
LOG3(("Stream had not processed recv FIN, sending RST code %X\n", aResetCode));
// don't reset a stream that has recevied a fin or rst
if (!aStream->RecvdFin() && !aStream->RecvdReset() && aStream->StreamID() &&
!(mInputFrameFinal && (aStream == mInputFrameDataStream))) { // !(recvdfin with mark pending)
LOG3(("Stream 0x%X had not processed recv FIN, sending RST code %X\n", aStream->StreamID(), aResetCode));
GenerateRstStream(aResetCode, aStream->StreamID());
}