diff --git a/BufferCore.cpp b/BufferCore.cpp index f8654dd..afe53ef 100644 --- a/BufferCore.cpp +++ b/BufferCore.cpp @@ -296,7 +296,6 @@ int CBuffer::WriteToFD( int Handle, int MaxLen ) DataRemain -= BytesWritten; // Update Buffer Pointers - BufLen -= BytesWritten; ReadPos += BytesWritten; if (ReadPos >= BufSize) { ReadPos = 0; // Rolling over end of buffer, start at beginning diff --git a/PortCore.cpp b/PortCore.cpp index 184a40a..025a1c9 100644 --- a/PortCore.cpp +++ b/PortCore.cpp @@ -321,6 +321,9 @@ bool CPortCore::ProcessBuffer( bool Force ) // Write buffer to Port Buffer->WriteToFD( OutputHandle, Len ); + + // Clear processed bytes from buffer + Buffer->Clear( Len ); } else { @@ -328,15 +331,16 @@ bool CPortCore::ProcessBuffer( bool Force ) while (Buffer->FindChar( '\n', Pos )) { // Show Packet - Len = Buffer->Peek( &Data, Pos+1 ); + Len = Buffer->Peek( &Data, 0, Pos+1 ); ShowOutput( "Port In", OUT_NORMAL, Data, Len ); // Write buffer to Port Buffer->WriteToFD( OutputHandle, Len ); + + // Clear processed bytes from buffer + Buffer->Clear( Len ); } } - // Clear processed bytes from buffer - Buffer->Clear( Len ); return true; }