Fix Stream FIN ACK Bug
@@ -1269,8 +1269,7 @@ QuicStreamOnAck(
// bytes are acknowledged then we'll advance UnAckedOffset.
//
- if (Stream->UnAckedOffset < FollowingOffset ||
- (Stream->UnAckedOffset == FollowingOffset && Length == 0)) {
+ if (Stream->UnAckedOffset < FollowingOffset) {
Stream->UnAckedOffset = FollowingOffset;
@@ -1318,6 +1317,8 @@ QuicStreamOnAck(
if (Stream->RecoveryEndOffset < Stream->UnAckedOffset) {
Stream->Flags.InRecovery = FALSE;
}
+ }
+
if (Stream->UnAckedOffset == Stream->QueuedSendOffset && Stream->Flags.FinAcked) {
QUIC_DBG_ASSERT(Stream->SendRequests == NULL);
@@ -1335,7 +1336,6 @@ QuicStreamOnAck(
QuicStreamTryCompleteShutdown(Stream);
}
}
- }
} else {
