From 668f808883661d1b077b40e703cfc99da6facb0d Mon Sep 17 00:00:00 2001 From: NguyenVanDat Date: Wed, 15 Oct 2025 18:45:26 +0700 Subject: [PATCH] fix the buffer issue --- .../Scripts/Network/CSNetwork/NetworkManager.cs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/NetworkManager.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/NetworkManager.cs index 2ab051fcd8..f44941284c 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/NetworkManager.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/NetworkManager.cs @@ -395,7 +395,7 @@ namespace CSNetwork Octets currentData = new Octets( _receiveOctets.RawBuffer, 0, - originalBlockLength + _receiveOctets.Size ); // Update returns a NEW Octets object with processed data dataToProcess = currentIsec!.Update(currentData); @@ -473,7 +473,7 @@ namespace CSNetwork { // If security was applied and we processed/consumed *any* bytes from the processed stream, // assume the whole original block was consumed. - bytesConsumedFromOriginal = processedAnyProtocols ? originalBlockLength : 0; + bytesConsumedFromOriginal = totalConsumedFromProcessedStream; } else { @@ -491,7 +491,7 @@ namespace CSNetwork // *** Helper to compact the original receive buffer *** private void CompactDecryptedBuffer(int bytesToConsume, int originalLength) { - if (bytesToConsume <= 0 || _receiveOctets == null) // Add null check + if (bytesToConsume <= 0 || _decryptedOctets == null) // Add null check { return; // Nothing to consume/compact } @@ -510,15 +510,14 @@ namespace CSNetwork 0, remaining ); - _receiveOctets.SetSize(remaining); + _decryptedOctets.SetSize(remaining); } else // Consumed all { // All data processed or skipped, clear buffer // _logger.Log(LogType.Info, $"Clearing original buffer: Consumed {bytesToConsume} >= Original {originalLength}"); - _receiveOctets.SetSize(0); + _decryptedOctets.SetSize(0); } - _receiveBufferStream.Position = _receiveOctets.Length; // Reset stream pos just in case } // Helper to raise ErrorOccurred event