Bug fixes:

- Implement changes from CoreBuffer
- Do not update BufLen in WriteToFD()
This commit is contained in:
Charl Wentzel
2016-05-19 09:46:18 +02:00
parent 839c8a1432
commit 5c7eb956a7
2 changed files with 7 additions and 4 deletions

View File

@@ -296,7 +296,6 @@ int CBuffer::WriteToFD( int Handle, int MaxLen )
DataRemain -= BytesWritten; DataRemain -= BytesWritten;
// Update Buffer Pointers // Update Buffer Pointers
BufLen -= BytesWritten;
ReadPos += BytesWritten; ReadPos += BytesWritten;
if (ReadPos >= BufSize) { if (ReadPos >= BufSize) {
ReadPos = 0; // Rolling over end of buffer, start at beginning ReadPos = 0; // Rolling over end of buffer, start at beginning

View File

@@ -321,6 +321,9 @@ bool CPortCore::ProcessBuffer( bool Force )
// Write buffer to Port // Write buffer to Port
Buffer->WriteToFD( OutputHandle, Len ); Buffer->WriteToFD( OutputHandle, Len );
// Clear processed bytes from buffer
Buffer->Clear( Len );
} }
else else
{ {
@@ -328,15 +331,16 @@ bool CPortCore::ProcessBuffer( bool Force )
while (Buffer->FindChar( '\n', Pos )) while (Buffer->FindChar( '\n', Pos ))
{ {
// Show Packet // Show Packet
Len = Buffer->Peek( &Data, Pos+1 ); Len = Buffer->Peek( &Data, 0, Pos+1 );
ShowOutput( "Port In", OUT_NORMAL, Data, Len ); ShowOutput( "Port In", OUT_NORMAL, Data, Len );
// Write buffer to Port // Write buffer to Port
Buffer->WriteToFD( OutputHandle, Len ); Buffer->WriteToFD( OutputHandle, Len );
// Clear processed bytes from buffer
Buffer->Clear( Len );
} }
} }
// Clear processed bytes from buffer
Buffer->Clear( Len );
return true; return true;
} }