void CConfig::ReadAndSetLogLevel() { if ( CIniParser::FindGroup( "GLOBAL" ) == NULL ) return; g_nNLogLevel = NLOG_LVL_ERR; char szlogLvl[32]; READ_DEFAULT_VARIABLE_STRING ( "LOG_LEVEL", szlogLvl, "ERR"); NLOG_LVL nLogLevel = NLogLevelGetType(szlogLvl); LOG(" CConfig::ReadAndSetLogLevel: GLOBAL/LOG_LEVEL = %s -> %s", szlogLvl, NLogLevelGetName(nLogLevel)); if (nLogLevel != NLOG_LVL_UNK) { g_nNLogLevel = nLogLevel; } else LOG(" CConfig::ReadAndSetLogLevel: GLOBAL/LOG_LEVEL unk -> use default: %s", NLogLevelGetName(g_nNLogLevel)); if ( CIniParser::FindGroup( m_szModule ) == NULL ) return; READ_DEFAULT_VARIABLE_STRING ( "LOG_LEVEL", szlogLvl, "UNK"); nLogLevel = NLogLevelGetType(szlogLvl); LOG(" CConfig::ReadAndSetLogLevel: %s/LOG_LEVEL = %s -> %s", m_szModule, szlogLvl, NLogLevelGetName(nLogLevel)); if (nLogLevel != NLOG_LVL_UNK) { g_nNLogLevel = nLogLevel; } else LOG(" CConfig::ReadAndSetLogLevel: %s/LOG_LEVEL unk -> use GLOBAL: %s", m_szModule, NLogLevelGetName(g_nNLogLevel)); }
int CNMS_DispatcherConfig::Init() { if (!CConfig::Init("NMS_Dispatcher")) { return 0; } READ_DEFAULT_VARIABLE_INT("MODULE_RESTART_INTERVAL", m_nModuleRstInterval, 5 ); ///default 5 seconds READ_DEFAULT_VARIABLE_INT("IPV4_PORT", m_nLocalPortIPv4, 40000 ); ///default 40000 READ_DEFAULT_VARIABLE_INT("IPV6_PORT", m_nLocalPortIPv6, 41000 ); ///default 41000 READ_DEFAULT_VARIABLE_INT("CHECK_TIMEDOUT_INTERVAL", m_nCheckTimedoutIntervalS, 20 ); ///default 20 seconds READ_DEFAULT_VARIABLE_INT("REQUEST_UPDATE_INTERVAL", m_nReqUpdTimedoutIntervalS, 10); READ_DEFAULT_VARIABLE_INT("REQUEST_UPDATE_RETRY_COUNT", m_nReqUpdNo, 10); //wait until erase READ_DEFAULT_VARIABLE_INT("PENDING_RELATION_TIMEDOUT", m_nPendingRelationTimedoutS, 90 ); ///default 90 seconds READ_DEFAULT_VARIABLE_INT("RELEASE_MODULE_CACHE_TIMEDOUT", m_nReleaseModuleCacheTimedoutH, 48 ); ///default 48 hours READ_DEFAULT_VARIABLE_INT("DB_IPV6_RELOAD_TIMEDOUT", m_nDBIPv6ReloadTimedoutS, 60); ///default 60 seconds //reload ipv6 netprefixes READ_DEFAULT_VARIABLE_INT("DB_IPV6_RELOAD_NETPREFIX_INTERVAL", m_nReloadNetPrefixesIntervalS, 60); ///default 1 minute // security type char szBuff[250]; READ_DEFAULT_VARIABLE_STRING ("SECURITY", szBuff, UNDEF_SECURITY_MANAGER); ISecurityManager::assignSecurity(m_oSecurity, szBuff); IF_USE_SECURITY_MANAGER (m_oSecurity.c_str()) IF_USE_OPENVPN_MANAGER (m_oSecurity.c_str()) // OpenVPN subnet READ_DEFAULT_VARIABLE_STRING ("OPENVPN_SUBNET", szBuff, NMS_DEFAULT_OPENVPN_SUBNET); m_oOpenVPNSubnet = szBuff; READ_DEFAULT_VARIABLE_STRING ("OPENVPN_SUBNET_MASK", szBuff, NMS_DEFAULT_OPENVPN_SUBNET_MASK); m_oOpenVPNSubnetMask = szBuff; END_IF END_IF //DB if (!CIniParser::FindGroup("NMS_DB")) { return 0; } char szTmp[250]; READ_DEFAULT_VARIABLE_STRING ("DB_SERVER", szTmp, DEFAULT_DB_SERVER); m_strServer = szTmp; READ_DEFAULT_VARIABLE_STRING ("DB_USER", szTmp, DEFAULT_DB_USER); m_strUser = szTmp; READ_DEFAULT_VARIABLE_STRING ("DB_PASS", szTmp, DEFAULT_DB_PASS); m_strPass = szTmp; READ_DEFAULT_VARIABLE_STRING ("DB_NAME", szTmp, DEFAULT_DB_NAME); m_strDB = szTmp; CIniParser::FindGroup("NMS_Dispatcher"); return 1; }
/// Load the config.ini file and parse it to extract various configurations out of it /// @retval 1 success /// @retval 0 failure /// @note DO NOT read same variable in Init() and Reload(). Init calls Reload. int CISAConfig::Init() { if(!CConfig::Init("GATEWAY")) { return 0; } READ_DEFAULT_VARIABLE_INT ("TCP_YGSAP_PORT", m_nYGSAP_TCPPort, 0); READ_DEFAULT_VARIABLE_INT ("TCP_SERVER_PORT", m_nGSAP_TCPPort, 4900); READ_DEFAULT_VARIABLE_INT ("TCP_SERVER_PORT_SSL", m_nGSAP_TCPPort_SSL, 0); READ_DEFAULT_VARIABLE_INT ("TCP_YGSAP_PORT_SSL", m_nYGSAP_TCPPort_SSL, 0); READ_DEFAULT_VARIABLE_INT ("SM_LINK_TIMEOUT", m_nPingTimeout, 50); READ_DEFAULT_VARIABLE_STRING("GATEWAY_TAG", m_szGWTag, "Nivis Gateway" ); if ( m_nGSAP_TCPPort_SSL != 0 || m_nYGSAP_TCPPort_SSL != 0) { READ_DEFAULT_VARIABLE_STRING("SSL_SERVER_CERTIF_FILE", m_szSslServerCertif, "/access_node/activity_files/ssl_resources/servercert.pem" ); READ_DEFAULT_VARIABLE_STRING("SSL_SERVER_KEY_FILE", m_szSslServerKey, "/access_node/activity_files/ssl_resources/serverkey.pem" ); READ_DEFAULT_VARIABLE_STRING("SSL_CA_CERTIF_FILE", m_szSslCaCertif, "/access_node/activity_files/ssl_resources/cakey.pem" ); } if(GetVar("HOST_APP", &m_HostAddr )){ LOG_HEX( "m_HostAddr(hexdump):", (uint8*)&m_HostAddr, sizeof(net_address)); } READ_MANDATORY_VARIABLE("GATEWAY_IPv6", m_oGWIPv6 ); char szIPv4[16]; READ_MANDATORY_VARIABLE_STRING("GATEWAY_IPv4", szIPv4); READ_MANDATORY_VARIABLE("GATEWAY_UDPPort", m_nGW_UDPPort) if (!AdjustIPv6(&m_oGWIPv6,szIPv4, m_nGW_UDPPort)) { return 0; } LOG("GW IPv6=%s IPv4=%s UDPPort=%d", m_oGWIPv6.GetPrintIPv6(), szIPv4, m_nGW_UDPPort); if(!GetVar("GATEWAY_EUI64", (uint8_t*)m_pu8GWEUI64, sizeof(m_pu8GWEUI64))) { return 0; } READ_MANDATORY_VARIABLE("SubnetID", m_nSubnetID); LOG("SubnetID %u (0x%X)", m_nSubnetID, m_nSubnetID); READ_MANDATORY_VARIABLE_STRING("AppJoinKey", m_u8AppJoinKey); READ_DEFAULT_VARIABLE_INT ("TLDE_HLIST_SIZE", m_nTldeHListSize, 100); READ_DEFAULT_VARIABLE_INT ("TLDE_HLIST_TIME_WINDOW", m_nTldeHListTimeWindow, 60); Reload(); if(!CIniParser::GetVar("SYSTEM_MANAGER", "SYSTEM_MANAGER_IPv6", &m_oSMIPv6 )) { return 0; } if(!CIniParser::GetVar("SYSTEM_MANAGER", "SYSTEM_MANAGER_IPv4", szIPv4, sizeof(szIPv4))) { return 0; } if(!CIniParser::GetVar("SYSTEM_MANAGER", "SYSTEM_MANAGER_Port", &m_nSMPort)) { return 0; } if(!CIniParser::GetVar("SYSTEM_MANAGER", "CURRENT_UTC_ADJUSTMENT", &m_nCrtUTCAdj)) { return 0; } if (!AdjustIPv6(&m_oSMIPv6,szIPv4, m_nSMPort)) { return 0; } LOG("SM IPv6=%s IPv4=%s Port=%d", m_oSMIPv6.GetPrintIPv6(), szIPv4, m_nSMPort); if(!CIniParser::GetVar("SYSTEM_MANAGER", "SECURITY_MANAGER_EUI64", m_u8SecurityManager, sizeof(m_u8SecurityManager))) { return 0; } LOG("Config loaded"); //-------------- return 1; }
int CConfig::Init( const char * p_szModule, const char * p_szFileName ) { LOG( "CConfig::Init" ); m_nIsMasterAN = NO_RF_MEMBER; if( ! Load( p_szFileName ) || ! CIniParser::FindGroup("GLOBAL") || ( CIniParser::GetVar(NULL, "AN_ID",(unsigned char*)(&m_stAddress), sizeof(m_stAddress)) != sizeof(m_stAddress) ) || ( CIniParser::GetVar(NULL, "APP_ID",(unsigned char*)(&m_shAppId), sizeof(m_shAppId)) != sizeof(m_shAppId) ) || (m_shAppId == 0) || ((*(int*)&m_stAddress) == 0) ) { LOG( "PANIC CConfig::Init: section GLOBAL not found, or AN_ID/APP_ID are wrong"); Release(); // calling parent's Release() return 0; } //LOG("CConfig::Init: AN_ID=%s APP_ID=%s", GetHex(&m_stAddress,sizeof(m_stAddress)), GetHex(&m_shAppId,sizeof(m_shAppId))); LOG("CConfig::Init: AN_ID=%s APP_ID=%s", GetHexT(&m_stAddress), GetHexT(&m_shAppId)); m_ppModulesToWatch[0] = 0; strncpy( m_szModule, p_szModule, sizeof(m_szModule)-1 ); int nLogSize; bool bTail; int nMoveTimeout; char szStorage[PATH_MAX]; char temp[ 16 ]; int nFFree; bool bBackup1; /// create backup logs with .1 extension, SM-style /// when active, the FTP_SCRIPT is no longer executed READ_DEFAULT_VARIABLE_YES_NO ( "LOG_BACKUP_1", bBackup1, "N" ); g_stLog.SetBackup1( bBackup1 ); READ_DEFAULT_VARIABLE_INT ( "MODULES_STOP_TIMEOUT", CApp::m_nStopTimeout, 30 ); //seconds READ_DEFAULT_VARIABLE_INT ( "MAX_LOG_SIZE", nLogSize, 512 ); //kBytes g_stLog.SetMaxSize( nLogSize * 1024 ); READ_DEFAULT_VARIABLE_STRING ( "LOG_STORAGE", szStorage, ""); // g_stLog.SetStorage( szStorage); will do it only once, because it's heavy READ_DEFAULT_VARIABLE_YES_NO ( "TAIL_SAFE", bTail, "NO" ); g_stLog.SetTail( bTail); READ_DEFAULT_VARIABLE_INT ( "MOVE_TIMEOUT", nMoveTimeout, 120 ); //seconds g_stLog.SetMoveTimeout( nMoveTimeout); READ_DEFAULT_VARIABLE_INT ( "LOG_FLASH_FREE_LIMIT", nFFree, 5120 ); //kBytes g_stLog.SetFlashFreeLimit( nFFree ); if ( CIniParser::FindGroup( p_szModule ) == NULL ) return 0; if( GetVar("MAX_LOG_SIZE", &nLogSize) ){ LOG( "Override value for MAX_LOG_SIZE = %d", nLogSize); g_stLog.SetMaxSize( nLogSize * 1024 ); } if( GetVar("TAIL_SAFE", temp, sizeof( temp)) ){ bTail=( !strcasecmp( temp, "Y") || !strcasecmp( temp, "YES") || !strcasecmp( temp, "1") || !strcasecmp( temp, "TRUE")); LOG( "Override value for TAIL_SAFE = %s", bTail?"TRUE":"FALSE"); g_stLog.SetTail( bTail ); } if( GetVar("MOVE_TIMEOUT", &nMoveTimeout) ){ LOG( "Override value for MOVE_TIMEOUT = %d", nMoveTimeout); g_stLog.SetMoveTimeout( nMoveTimeout); } if( GetVar("LOG_STORAGE", szStorage, sizeof( szStorage)) ){ LOG( "Override value for LOG_STORAGE = %s", szStorage); } g_stLog.SetStorage( szStorage); //we didn't do it before ReadAndSetLogLevel(); return 1; }