diff --git a/BufferCore.cpp b/BufferCore.cpp index 9ace6aa..dad475a 100644 --- a/BufferCore.cpp +++ b/BufferCore.cpp @@ -344,7 +344,7 @@ bool CBuffer::FindStr( const char * SearchStr, int SearchLen, int &FoundPos, int char * MatchLimit = NULL; // Check if buffer exists - if (!BufLen) { + if (!BufLen || !SearchStr || !SearchLen) { FoundPos = -1; return false; } diff --git a/FunctionCore.cpp b/FunctionCore.cpp index b03229d..d352731 100644 --- a/FunctionCore.cpp +++ b/FunctionCore.cpp @@ -22,7 +22,7 @@ extern char ProcessName[]; //--------------------------------------------------------------------------- // Life cycle -CFunctionCore::CFunctionCore( const char * FunctionName ) +CFunctionCore::CFunctionCore( const char * FunctionName, EDebugLevel pDebugLevel, int pOuputDisplay ) { // Set name if (FunctionName) { @@ -36,8 +36,12 @@ CFunctionCore::CFunctionCore( const char * FunctionName ) // IO Functions FirstIO = NULL; + // Output + OutputDisplay = pOuputDisplay; + DebugLevel = pDebugLevel; + // Report status - LogMessage( dlLow, "%s: Function '%s' - Created", ProcessName, FunctionName ); + LogMessage( DebugLevel, dlLow, "%s: Function '%s' - Created", ProcessName, FunctionName ); } //--------------------------------------------------------------------------- @@ -82,7 +86,7 @@ CFunctionCore::~CFunctionCore() } // Report status - LogMessage( dlLow, "%s: Function '%s' - Destroyed", ProcessName, Name ); + LogMessage( DebugLevel, dlLow, "%s: Function '%s' - Destroyed", ProcessName, Name ); // Destroy Name if (Name) { @@ -118,7 +122,7 @@ TLocalIO * CFunctionCore::AddLocalIO( const char * IOName ) strcpy( (*LocalIO)->Name, IOName ); // Log Event - LogMessage( dlLow, "%s: Local IO '%s' - Created", Name, IOName ); + LogMessage( DebugLevel, dlLow, "%s: Local IO '%s' - Created", Name, IOName ); } return *LocalIO; @@ -155,7 +159,7 @@ bool CFunctionCore::AddInput( const char * IOName, CFunctionCore * OutFunction, strcpy( (*LinkedIO)->IOName, OutputName ); // Log Event - LogMessage( dlLow, "%s: Input Linked - '%s'/'%s' <-- '%s'/'%s'", Name, Name, IOName, OutFunction->GetName(), OutputName ); + LogMessage( DebugLevel, dlLow, "%s: Input Linked - '%s'/'%s' <-- '%s'/'%s'", Name, Name, IOName, OutFunction->GetName(), OutputName ); } // Link Return direction as well @@ -196,7 +200,7 @@ bool CFunctionCore::AddOutput( const char * IOName, CFunctionCore * InFunction, strcpy( (*LinkedIO)->IOName, InputName ); // Log Event - LogMessage( dlLow, "%s: Output Linked - '%s'/'%s' --> '%s'/'%s'", Name, Name, IOName, InFunction->GetName(), InputName ); + LogMessage( DebugLevel, dlLow, "%s: Output Linked - '%s'/'%s' --> '%s'/'%s'", Name, Name, IOName, InFunction->GetName(), InputName ); } // Link return direction as well @@ -225,12 +229,12 @@ int CFunctionCore::Input( const char * IOName, const char * Data, int MaxLen ) if (!(LocalIO = GetLocalIO( IOName ))) { // Log event - LogMessage( dlHigh, "%s: Local IO '%s' - Input rejected, Local IO not found", Name, IOName ); + LogMessage( DebugLevel, dlHigh, "%s: Local IO '%s' - Input rejected, Local IO not found", Name, IOName ); return 0; } // Log event - ShowOutput( dlHigh, OUT_NORMAL, Data, MaxLen, "%s: Local IO '%s' - IN:", Name, IOName ); + ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, MaxLen, "%s: Local IO '%s' - IN:", Name, IOName ); // Return processed bytes return MaxLen; @@ -252,12 +256,12 @@ int CFunctionCore::Output( const char * IOName, const char * Data, int Len ) if (!(LocalIO = GetLocalIO( IOName ))) { // Log Event - LogMessage( dlHigh, "%s: Local IO '%s' - Output rejected, Local IO not found", Name, IOName ); + LogMessage( DebugLevel, dlHigh, "%s: Local IO '%s' - Output rejected, Local IO not found", Name, IOName ); return 0; } // Log event - ShowOutput( dlHigh, OUT_NORMAL, Data, Len, "%s: Local IO '%s' - OUT:", Name, IOName ); + ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, Len, "%s: Local IO '%s' - OUT:", Name, IOName ); // Return processed bytes return Len; diff --git a/FunctionCore.h b/FunctionCore.h index 3b4a553..d86579d 100644 --- a/FunctionCore.h +++ b/FunctionCore.h @@ -9,6 +9,7 @@ #define REDACORE_FUNCTIONCORE_H_ // redA Libraries +#include "LogCore.h" #include "BufferCore.h" // Standard C/C++ Libraries @@ -54,6 +55,10 @@ protected: // IOs TLocalIO * FirstIO; + // Output + EDebugLevel DebugLevel; + int OutputDisplay; + // Manage IO inline TLocalIO * GetLocalIO( const char * Name ) { TLocalIO * LocalIO = FirstIO; @@ -65,7 +70,7 @@ protected: public: // Life cycle - CFunctionCore( const char * ObjectName ); + CFunctionCore( const char * ObjectName, EDebugLevel pDebugLevel, int pOuputDisplay ); virtual ~CFunctionCore(); // Miscellaneous diff --git a/LogCore.cpp b/LogCore.cpp index 751beac..5794ec1 100644 --- a/LogCore.cpp +++ b/LogCore.cpp @@ -18,12 +18,11 @@ //--------------------------------------------------------------------------- // Global vars -EDebugLevel DebugLevel = dlLow; char LogStr[1000]; // Temporary var to create log messages, globally available to save on memory operations //--------------------------------------------------------------------------- -bool LogMessage( EDebugLevel Level, const char * Format, ... ) +bool LogMessage( EDebugLevel DebugLevel, EDebugLevel MsgLevel, const char * Format, ... ) { va_list ArgPtr; @@ -32,7 +31,7 @@ bool LogMessage( EDebugLevel Level, const char * Format, ... ) return false; // Check debug level - if (Level > DebugLevel) { + if (MsgLevel > DebugLevel) { return true; } @@ -45,18 +44,18 @@ bool LogMessage( EDebugLevel Level, const char * Format, ... ) } //--------------------------------------------------------------------------- -bool ShowOutput( EDebugLevel Level, const short Show, const char * Buffer, int Len, const char * Format, ... ) +bool ShowOutput( EDebugLevel DebugLevel, EDebugLevel MsgLevel, const short Show, const char * Buffer, int Len, const char * Format, ... ) { va_list ArgPtr; // Validate values - if (!Buffer || !(Show & (OUT_HEX | OUT_NORMAL))) + if (!Buffer || !(Show & (OUT_NORMAL | OUT_HEX | OUT_BIN))) return false; if (Len == -1) Len = strlen( Buffer ); // Check debug level - if (Level > DebugLevel) { + if (MsgLevel > DebugLevel) { return true; } @@ -68,15 +67,7 @@ bool ShowOutput( EDebugLevel Level, const short Show, const char * Buffer, int L } printf( "[%d] ", Len ); - // Show Hex output - if (Show & OUT_HEX) { - for (int i=0; iFD = -1; // Log event - LogMessage( dlMedium, "%s: Handle '%s' - Created", Name, HandleName ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Created", Name, HandleName ); } // Create Matching IO point @@ -126,7 +121,7 @@ bool CSelectableCore::RemoveHandle( THandle * Handle ) } // Log event - LogMessage( dlMedium, "%s: Handle '%s' - Removed", Name, Handle->Name ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Removed", Name, Handle->Name ); // Destroy Child handle DestroyHandle( Handle ); @@ -184,7 +179,7 @@ bool CSelectableCore::SetPortHandle( THandle * Handle, const char * FileName ) strcpy( Handle->FileName, FileName ); // Log event - LogMessage( dlMedium, "%s: Handle '%s' - Set as Port [%s]", Name, Handle->Name, FileName ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Set as Port [%s]", Name, Handle->Name, FileName ); return true; } //--------------------------------------------------------------------------- @@ -211,7 +206,7 @@ bool CSelectableCore::SetSocketHandle( THandle * Handle, EConnectType Type, con Handle->PortNo = PortNo; // Log event - LogMessage( dlMedium, "%s: Handle '%s' - Set as %s [%s:%d]", Name, Handle->Name, ConnectTypeName[Type], Address, PortNo ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Set as %s [%s:%d]", Name, Handle->Name, ConnectTypeName[Type], Address, PortNo ); return true; } //--------------------------------------------------------------------------- @@ -238,7 +233,7 @@ bool CSelectableCore::ClearHandle( THandle * Handle ) Handle->Type = ctNone; // Log event - LogMessage( dlMedium, "%s: Handle '%s' - Set as None", Name, Handle->Name ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Set as None", Name, Handle->Name ); return true; } //--------------------------------------------------------------------------- @@ -296,7 +291,7 @@ int CSelectableCore::OpenPort( THandle * Handle ) if (access( Handle->FileName, F_OK ) != 0) { // Log event - LogMessage( dlMedium, "%s: Handle '%s' - Port not found [%s]", Name, Handle->Name, Handle->FileName ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Port not found [%s]", Name, Handle->Name, Handle->FileName ); return -1; } @@ -305,12 +300,12 @@ int CSelectableCore::OpenPort( THandle * Handle ) if (Handle->FD == -1) { // Log event - LogMessage( dlMedium, "%s: Handle '%s' - Could not open Port [%s]", Name, Handle->Name, Handle->FileName ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Could not open Port [%s]", Name, Handle->Name, Handle->FileName ); return -1; } // Log Event - LogMessage( dlMedium, "%s: Handle '%s' - Port opened [%s]", Name, Handle->Name, Handle->FileName ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Port opened [%s]", Name, Handle->Name, Handle->FileName ); // Add to Select Lists if (Select) { @@ -355,7 +350,7 @@ int CSelectableCore::OpenServerSocket( THandle * Handle ) if ((Handle->FD = socket(AF_INET, SOCK_STREAM, 0)) < 0) { // Log Event - LogMessage( dlMedium, "%s: Handle '%s' - Failed to create Server socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Failed to create Server socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); // Set state Handle->State = csFailed; @@ -367,7 +362,7 @@ int CSelectableCore::OpenServerSocket( THandle * Handle ) (setsockopt( Handle->FD, SOL_SOCKET, SO_REUSEADDR, &Reuse_opt, sizeof(Reuse_opt)) == -1)) { // Log Event - LogMessage( dlMedium, "%s: Handle '%s' - Could not set socket options [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Could not set socket options [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); // Set state Handle->State = csFailed; @@ -382,7 +377,7 @@ int CSelectableCore::OpenServerSocket( THandle * Handle ) (setsockopt( Handle->FD, SOL_TCP, TCP_KEEPINTVL, &TCPint_opt, sizeof(TCPint_opt)) == -1) )) { // Log Event - LogMessage( dlMedium, "%s: Handle '%s' - Could not set KeepAlive options [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Could not set KeepAlive options [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); // Set state Handle->State = csFailed; @@ -397,7 +392,7 @@ int CSelectableCore::OpenServerSocket( THandle * Handle ) if (bind( Handle->FD, (struct sockaddr *)&address, addr_len ) < 0) { // Log Event - LogMessage( dlMedium, "%s: Handle '%s' - Failed to bind Server socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Failed to bind Server socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); // Set state close( Handle->FD ); @@ -410,7 +405,7 @@ int CSelectableCore::OpenServerSocket( THandle * Handle ) if (listen( Handle->FD, 5 ) < 0) { // Log Event - LogMessage( dlMedium, "%s: Handle '%s' - Failed to listen on Server socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Failed to listen on Server socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); // Set state close( Handle->FD ); @@ -420,7 +415,7 @@ int CSelectableCore::OpenServerSocket( THandle * Handle ) }; // Log Event - LogMessage( dlMedium, "%s: Handle '%s' - Server binded and listening [%s:%d]", Name, Handle->Name, Handle->Address, Handle->PortNo ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Server binded and listening [%s:%d]", Name, Handle->Name, Handle->Address, Handle->PortNo ); // Add to Select Lists if (Select) { @@ -457,9 +452,9 @@ int CSelectableCore::OpenRemoteClientSocket( THandle * Handle ) { // Log Event if ((errno == EAGAIN) || (errno == EWOULDBLOCK)) - LogMessage( dlMedium, "%s: Handle '%s' - Server failed to accept blocking connection (%s)", Name, Handle->Name, strerror(errno) ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Server failed to accept blocking connection (%s)", Name, Handle->Name, strerror(errno) ); else - LogMessage( dlMedium, "%s: Handle '%s' - Server failed to accept connection (%s)", Name, Handle->Name, strerror(errno) ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Server failed to accept connection (%s)", Name, Handle->Name, strerror(errno) ); return -1; } @@ -492,7 +487,7 @@ int CSelectableCore::OpenRemoteClientSocket( THandle * Handle ) (*RemoteClient)->State = csWaitingtoOpen; // Log Event - LogMessage( dlMedium, "%s: Handle '%s' - Server accepted Remote Client connection [%s]", Name, Handle->Name, ClientAddress ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Server accepted Remote Client connection [%s]", Name, Handle->Name, ClientAddress ); // Add to Select Lists if (Select) { @@ -512,7 +507,7 @@ int CSelectableCore::OpenRemoteClientSocket( THandle * Handle ) else if (Handle->State == csWaitingtoOpen) { // Log Event - LogMessage( dlMedium, "%s: Handle '%s' - Remote Client connection open [%s]", Name, Handle->Name, Handle->Address ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Remote Client connection open [%s]", Name, Handle->Name, Handle->Address ); // Update state Handle->State = csOpen; @@ -546,7 +541,7 @@ int CSelectableCore::OpenClientSocket( THandle * Handle ) if ((Handle->FD = socket( AF_INET, SOCK_STREAM, 0 )) < 0) { // Log Event - LogMessage( dlMedium, "%s: Handle '%s' - Failed to create Client socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Failed to create Client socket [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); // Set Status Handle->State = csFailed; @@ -565,7 +560,7 @@ int CSelectableCore::OpenClientSocket( THandle * Handle ) (setsockopt( Handle->FD, SOL_TCP, TCP_KEEPINTVL, &TCPint_opt, sizeof(TCPint_opt)) == -1) )) { // Log Event - LogMessage( dlMedium, "%s: Handle %s - Could not set KeepAlive options [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); + LogMessage( DebugLevel, dlMedium, "%s: Handle %s - Could not set KeepAlive options [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); // Set State close( Handle->FD ); @@ -583,7 +578,7 @@ int CSelectableCore::OpenClientSocket( THandle * Handle ) if (!connect( Handle->FD, (struct sockaddr *)&address, addr_len )) { - LogMessage( dlMedium, "%s: Handle %s - Client connected [%s:%d]", Name, Handle->Name, Handle->Address, Handle->PortNo ); + LogMessage( DebugLevel, dlMedium, "%s: Handle %s - Client connected [%s:%d]", Name, Handle->Name, Handle->Address, Handle->PortNo ); // Add to Select Lists if (Select) { @@ -597,7 +592,7 @@ int CSelectableCore::OpenClientSocket( THandle * Handle ) else if ((errno == EAGAIN) || (errno == EWOULDBLOCK) || (errno == EINPROGRESS) || (errno == EALREADY)) { // Log Event - LogMessage( dlMedium, "%s: Handle '%s' - Client waiting to connect [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Client waiting to connect [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); // Add to Select Lists if (Select) { @@ -611,7 +606,7 @@ int CSelectableCore::OpenClientSocket( THandle * Handle ) else { // Log Event - LogMessage( dlMedium, "%s: Handle '%s' - Client could not connect [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Client could not connect [%s:%d] (%s)", Name, Handle->Name, Handle->Address, Handle->PortNo, strerror(errno) ); // Remove from Select List if (Select) { @@ -696,24 +691,24 @@ bool CSelectableCore::Close( THandle * Handle, bool CloseChildren ) { case ctPort: // Log Event - LogMessage( dlMedium, "%s: Handle '%s' - Port %s [%s]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->FileName ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Port %s [%s]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->FileName ); break; case ctServer: - LogMessage( dlMedium, "%s: Handle '%s' - Server %s [%s:%d]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->Address, Handle->PortNo ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Server %s [%s:%d]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->Address, Handle->PortNo ); break; case ctRemoteClient: - LogMessage( dlMedium, "%s: Handle '%s' - Remote Client connection %s [%s]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->Address ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Remote Client connection %s [%s]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->Address ); break; case ctClient: - LogMessage( dlMedium, "%s: Handle '%s' - Client connection %s [%s:%d]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->Address, Handle->PortNo ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Client connection %s [%s:%d]", Name, Handle->Name, ((Fail)? "failed" : "closed"), Handle->Address, Handle->PortNo ); break; case ctNone: default: - LogMessage( dlMedium, "%s: Handle '%s' - %s, invalid Handle type", Name, Handle->Name, ((Fail)? "failed" : "closed") ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - %s, invalid Handle type", Name, Handle->Name, ((Fail)? "failed" : "closed") ); break; }; @@ -741,7 +736,7 @@ bool CSelectableCore::Read( THandle * Handle ) } // Log Read Event - LogMessage( dlHigh, "%s: Handle '%s' - Read Event", Name, Handle->Name ); + LogMessage( DebugLevel, dlHigh, "%s: Handle '%s' - Read Event", Name, Handle->Name ); // Check for closing/opening event on Socket if (Handle->Type == ctServer) @@ -817,8 +812,8 @@ bool CSelectableCore::Write( THandle * Handle ) return false; } - // Log Read Event - LogMessage( dlHigh, "%s: Handle '%s' - Write Event", Name, Handle->Name ); + // Log Ready for Write Event + LogMessage( DebugLevel, dlHigh, "%s: Handle '%s' - Write Event", Name, Handle->Name ); if (Handle->State == csWaitingtoOpen) { @@ -845,7 +840,7 @@ bool CSelectableCore::Write( THandle * Handle ) if (DebugLevel >= dlHigh) { // Show event Len = Handle->OutBuffer->Peek( &Data ); - ShowOutput( dlHigh, OUT_NORMAL, Data, Len, "%s: Handle '%s' - OUT:", Name, Handle->Name ); + ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, Len, "%s: Handle '%s' - OUT:", Name, Handle->Name ); } // Update Buffer @@ -881,7 +876,6 @@ bool CSelectableCore::ProcessBuffer( THandle * Handle, bool Force ) char * Data = NULL; TLocalIO * LocalIO = NULL; TLinkedIO * Output = NULL; - char HeadStr[50]; // Check if buffered data if (!Handle || !Handle->InBuffer || !Handle->InBuffer->Len()) { @@ -893,7 +887,7 @@ bool CSelectableCore::ProcessBuffer( THandle * Handle, bool Force ) { // Show Packet Len = Handle->InBuffer->Peek( &Data ); - ShowOutput( dlHigh, OUT_NORMAL, Data, Len, "%s: Handle '%s' - IN-F:", Name, Handle->Name ); + ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, Len, "%s: Handle '%s' - IN-F:", Name, Handle->Name ); // Write buffer to Outputs if (Handle->Type == ctRemoteClient) { @@ -914,17 +908,12 @@ bool CSelectableCore::ProcessBuffer( THandle * Handle, bool Force ) } else { - // Log header - if (DebugLevel >= dlHigh) { - sprintf( HeadStr, "%s: Handle '%s' - IN-M:", Name, Handle->Name ); - } - // Search for end of packet marker while (Handle->InBuffer->FindStr( Handle->InMarker, Handle->InMarkerLen, Pos )) { // Show Packet Len = Handle->InBuffer->Peek( &Data, 0, Pos+1 ); - ShowOutput( dlHigh, OUT_NORMAL, Data, Len, "%s: Handle '%s' - IN-M:", Name, Handle->Name ); + ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, Len, "%s: Handle '%s' - IN-M:", Name, Handle->Name ); // Write buffer to Outputs if (Handle->Type == ctRemoteClient) { @@ -1025,12 +1014,12 @@ int CSelectableCore::Input( const char * IOName, const char * Data, int Len ) if (!(Handle = GetHandle( IOName ))) { // Log event - LogMessage( dlHigh, "%s: Local IO '%s' - Input rejected, Input not found", Name, IOName ); + LogMessage( DebugLevel, dlHigh, "%s: Local IO '%s' - Input rejected, Input not found", Name, IOName ); return 0; } // Log event - ShowOutput( dlHigh, OUT_NORMAL, Data, Len, "%s: LocalIO '%s' - IN:", Name, IOName ); + ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, Len, "%s: LocalIO '%s' - IN:", Name, IOName ); if (Handle->Type == ctServer) { @@ -1055,7 +1044,7 @@ int CSelectableCore::Input( const char * IOName, const char * Data, int Len ) else { // Show event - ShowOutput( dlHigh, OUT_NORMAL, Data, Len, "%s: Handle '%s' - OUT:", Name, ChildHandle->Name ); + ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, Len, "%s: Handle '%s' - OUT:", Name, ChildHandle->Name ); // Write directly to handle BytesWritten = WriteToFD( ChildHandle->FD, Data, Len ); @@ -1084,7 +1073,7 @@ int CSelectableCore::Input( const char * IOName, const char * Data, int Len ) else { // Show event - ShowOutput( dlHigh, OUT_NORMAL, Data, Len, "%s: Handle '%s' - OUT:", Name, Handle->Name ); + ShowOutput( DebugLevel, dlHigh, OutputDisplay, Data, Len, "%s: Handle '%s' - OUT:", Name, Handle->Name ); // Write directly to handle BytesWritten = WriteToFD( Handle->FD, Data, Len ); @@ -1264,13 +1253,13 @@ bool CSelectableCore::SerialConfig( THandle * Handle, int Baud, short DataBits, if (tcsetattr( Handle->FD, TCSANOW, &newtio ) != 0) { // Log event - LogMessage( dlMedium, "%s: Handle '%s' - Port not configured", Name, Handle->Name ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Port not configured", Name, Handle->Name ); return false; } // Port configured // Log event - LogMessage( dlMedium, "%s: Handle '%s' - Port configured", Name, Handle->Name ); + LogMessage( DebugLevel, dlMedium, "%s: Handle '%s' - Port configured", Name, Handle->Name ); return true; } //--------------------------------------------------------------------------- diff --git a/SelectableCore.h b/SelectableCore.h index 7f63dec..ba644e0 100644 --- a/SelectableCore.h +++ b/SelectableCore.h @@ -116,9 +116,12 @@ protected: int MaxFD; timeval Timeout; + // Output + EDebugLevel DebugLevel; + public: // Life Cycle - CSelect( long SelectTimeout ); + CSelect( long SelectTimeout, EDebugLevel DebugLevel ); ~CSelect(); // Manage FDs @@ -182,7 +185,7 @@ protected: public: // Life Cycle - CSelectableCore( const char * Name, CSelect * Selector ); + CSelectableCore( const char * Name, CSelect * Selector, EDebugLevel pDebugLevel, int pOuputDisplay ); ~CSelectableCore(); // Finding Handles diff --git a/SignalCore.cpp b/SignalCore.cpp index 0a2907e..29182ed 100644 --- a/SignalCore.cpp +++ b/SignalCore.cpp @@ -87,11 +87,11 @@ void SignalTerminate( int sig ) std::cerr << "\r\n" << ProcessName << ": ***********************************\n"; // Create Log Entry - LogMessage( dlNone, "%s: ** %s signal received [%d] **", ProcessName, SigName, TermCount ); + LogMessage( dlNone, dlNone, "%s: ** %s signal received [%d] **", ProcessName, SigName, TermCount ); if (TermCount < MaxTermCount) - LogMessage( dlNone, "%s: ** Terminating normally... **", ProcessName ); + LogMessage( dlNone, dlNone, "%s: ** Terminating normally... **", ProcessName ); else - LogMessage( dlNone, "%s: ** Terminating immediately! **", ProcessName ); + LogMessage( dlNone, dlNone, "%s: ** Terminating immediately! **", ProcessName ); std::cerr << ProcessName << ": ***********************************\n\n"; @@ -121,8 +121,8 @@ void SignalAbort( int sig ) std::cerr << "\n" << ProcessName << ": ********************************\n"; // Create Log Entry - but don't post - LogMessage( dlNone, "%s: ** %s signal received **", ProcessName, SigName ); - LogMessage( dlNone, "%s: ** Terminating immediately! **", ProcessName ); + LogMessage( dlNone, dlNone, "%s: ** %s signal received **", ProcessName, SigName ); + LogMessage( dlNone, dlNone, "%s: ** Terminating immediately! **", ProcessName ); std::cerr << ProcessName << ": ********************************\n\n";