Tweak handling for a certain wraparound case.

Just drop the packet, don't terminate the connection.  This doesn't really
ever happen in practice, but it can happen while debugging if you break
one process, while the peer keeps sending at very high speed.

P4:8183166
This commit is contained in:
Fletcher Dunn
2023-07-11 10:27:07 -07:00
parent ad4797ffca
commit d14fe99e96
@@ -1087,10 +1087,13 @@ bool CSteamNetworkConnectionBase::ProcessPlainTextDataChunk( int usecTimeSinceLa
}
if ( nLatestRecvSeqNum >= m_statsEndToEnd.m_nNextSendSequenceNumber )
{
DECODE_ERROR( "SNP decode ack latest pktnum %lld (%llx mod %llx), but next outoing packet is %lld (%llx).",
// This can happen if you break one side in the debugger
// for a long time. Just discard the packet.
SpewWarningRateLimited( usecNow, "SNP decode ack latest pktnum %lld (%llx mod %llx), but next outoing packet is %lld (%llx)\n",
(long long)nLatestRecvSeqNum, (unsigned long long)nLowerBits, (unsigned long long)( nMask+1 ),
(long long)m_statsEndToEnd.m_nNextSendSequenceNumber, (unsigned long long)m_statsEndToEnd.m_nNextSendSequenceNumber
);
return false;
}
}