fix the buffer issue
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user