diff --git a/BufferCore.cpp b/BufferCore.cpp index 723eee4..65f1667 100644 --- a/BufferCore.cpp +++ b/BufferCore.cpp @@ -401,12 +401,9 @@ int CRollingBuffer::ReadFromFD( int Handle, int MaxRead, bool Overwrite ) } // Read file descriptor into buffer - if (Overwrite && (MaxRead > BufLen)) { - DataRemain = MaxRead; - } - else { - DataRemain = BufLen; - } + if (MaxRead == -1) + MaxRead = BufSize; + DataRemain = ((!Overwrite && (MaxRead > BufSize-BufLen)))? BufSize-BufLen : MaxRead; while (DataRemain) { // Read from file descriptor @@ -782,7 +779,7 @@ int CShiftBuffer::PopCopy( char ** Data, int MaxLen ) //--------------------------------------------------------------------------- // Read File descriptor directly into buffer -int CShiftBuffer::ReadFromFD( int Handle, int MaxRead ) +int CShiftBuffer::ReadFromFD( int Handle, int MaxRead, bool Overwrite ) { int BytesRead = 0; int TotalRead = 0; @@ -794,7 +791,9 @@ int CShiftBuffer::ReadFromFD( int Handle, int MaxRead ) } // Read file descriptor into buffer - DataRemain = ((MaxRead < 0) || (MaxRead > BufSize-BufLen))? BufSize-BufLen : MaxRead; + if (MaxRead == -1) + MaxRead = BufSize; + DataRemain = ((!Overwrite && (MaxRead > BufSize-BufLen)))? BufSize-BufLen : MaxRead; while (DataRemain) { // Read from file descriptor diff --git a/BufferCore.h b/BufferCore.h index b38b25e..ee37b26 100644 --- a/BufferCore.h +++ b/BufferCore.h @@ -118,7 +118,7 @@ public: int PopCopy( char ** Data, int MaxLen = -1 ); // File operations - int ReadFromFD( int Handle, int MaxRead = -1 ); + int ReadFromFD( int Handle, int MaxRead = -1, bool Overwrite = false ); int WriteToFD( int Handle, int MaxWrite = -1 ); // Miscellaneous diff --git a/SignalCore.cpp b/SignalCore.cpp index 190ab2c..6cac983 100644 --- a/SignalCore.cpp +++ b/SignalCore.cpp @@ -21,7 +21,7 @@ // Global vars extern CLogCore * Log; -extern char ProcessName[]; +extern char * ProcessName; // Termination Vars bool Terminate = false;