Important Update:
- FunctionCore:
- Fix Memory Leaks:
- Recreate Name in LoadConfig()
- Setting FirstChannel to NULL in LoadConfig()
- Fix fault on empty Log/Output in LoadConfig()
- Check if Log/Level exists in LoadConfig()
- Do not auto-create all config parameters
- SelectableCore:
- Fix Memory Leaks:
- Setting FirstHandle to NULL in LoadConfig()
- Do not auto-create all config parameters
- Update logs to specifically refer to "TCP" server/client
This commit is contained in:
@@ -127,37 +127,39 @@ bool CFunctionCore::LoadConfigData()
|
||||
TDataMember * TempMember;
|
||||
char * TempStr;
|
||||
|
||||
// Set Name
|
||||
Name = (char*)malloc( strlen(BaseMember->Name)+1 );
|
||||
strcpy( Name, BaseMember->Name );
|
||||
|
||||
// Get debug level
|
||||
LogLevel = dlNone;
|
||||
TempStr = (char*)DataTree->GetStr( BaseMember, "Log/Level", "Medium", true );
|
||||
if (!strcasecmp( TempStr, "Low" ))
|
||||
LogLevel = dlLow;
|
||||
else if (!strcasecmp( TempStr, "Medium" ))
|
||||
LogLevel = dlMedium;
|
||||
else if (!strcasecmp( TempStr, "High" ))
|
||||
LogLevel = dlHigh;
|
||||
if (TempStr)
|
||||
{
|
||||
if (!strcasecmp( TempStr, "Low" ))
|
||||
LogLevel = dlLow;
|
||||
else if (!strcasecmp( TempStr, "Medium" ))
|
||||
LogLevel = dlMedium;
|
||||
else if (!strcasecmp( TempStr, "High" ))
|
||||
LogLevel = dlHigh;
|
||||
}
|
||||
|
||||
// Set debug output
|
||||
LogOutput = 0;
|
||||
TempMember = DataTree->GetMember( BaseMember, "Log/Output[0]", true );
|
||||
while (TempMember)
|
||||
{
|
||||
if (!strcasecmp( TempMember->Value, "Normal"))
|
||||
LogOutput |= OUT_NORMAL;
|
||||
else if (!strcasecmp( TempMember->Value, "Bin"))
|
||||
LogOutput |= OUT_BIN;
|
||||
else if (!strcasecmp( TempMember->Value, "Hex"))
|
||||
LogOutput |= OUT_HEX;
|
||||
else if (!strcasecmp( TempMember->Value, "Count"))
|
||||
LogOutput |= OUT_COUNT;
|
||||
else if (!strcasecmp( TempMember->Value, "AsIs"))
|
||||
LogOutput |= OUT_ASIS;
|
||||
else if (!strcasecmp( TempMember->Value, "CRLF"))
|
||||
LogOutput |= OUT_CRLF;
|
||||
if (TempMember->Value)
|
||||
{
|
||||
if (!strcasecmp( TempMember->Value, "Normal"))
|
||||
LogOutput |= OUT_NORMAL;
|
||||
else if (!strcasecmp( TempMember->Value, "Bin"))
|
||||
LogOutput |= OUT_BIN;
|
||||
else if (!strcasecmp( TempMember->Value, "Hex"))
|
||||
LogOutput |= OUT_HEX;
|
||||
else if (!strcasecmp( TempMember->Value, "Count"))
|
||||
LogOutput |= OUT_COUNT;
|
||||
else if (!strcasecmp( TempMember->Value, "AsIs"))
|
||||
LogOutput |= OUT_ASIS;
|
||||
else if (!strcasecmp( TempMember->Value, "CRLF"))
|
||||
LogOutput |= OUT_CRLF;
|
||||
}
|
||||
|
||||
// Next
|
||||
TempMember = DataTree->GetNextChild( TempMember );
|
||||
@@ -167,8 +169,7 @@ bool CFunctionCore::LoadConfigData()
|
||||
InitLogging( LogLevel, LogOutput );
|
||||
|
||||
// Set debug output
|
||||
FirstChannel = NULL;
|
||||
TempMember = DataTree->GetFirstChild( DataTree->GetMember( BaseMember, "Channels", true ) );
|
||||
TempMember = DataTree->GetFirstChild( DataTree->GetMember( BaseMember, "Channels" ) );
|
||||
while (TempMember)
|
||||
{
|
||||
AddChannel( DataTree->GetStr( TempMember, "Name" ),
|
||||
|
||||
Reference in New Issue
Block a user