From d14fe99e966872323a3536eba18bbf2cc4a04550 Mon Sep 17 00:00:00 2001 From: Fletcher Dunn Date: Tue, 11 Jul 2023 10:27:07 -0700 Subject: [PATCH] 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 --- .../clientlib/steamnetworkingsockets_snp.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_snp.cpp b/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_snp.cpp index dbf8655..ca43dff 100644 --- a/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_snp.cpp +++ b/src/steamnetworkingsockets/clientlib/steamnetworkingsockets_snp.cpp @@ -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; } }