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:
Charl Wentzel
2017-07-12 06:19:06 +02:00
parent 3f86de71b1
commit 8933ec1ae6
2 changed files with 51 additions and 51 deletions

View File

@@ -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" ),