388 lines
9.7 KiB
C++
388 lines
9.7 KiB
C++
//----------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Intel Corporation, 2007 - 2008.
|
|
//
|
|
// File: OptionsUtils.cpp
|
|
//
|
|
// Contents: Utility file which allows easy access to Options elements.
|
|
//
|
|
// Notes:
|
|
//----------------------------------------------------------------------------
|
|
|
|
//------------------
|
|
// Includes
|
|
//------------------
|
|
#include "OptionsUtils.h"
|
|
#include "CommonOptions.h"
|
|
#include "Options.h"
|
|
|
|
//------------------
|
|
// functions
|
|
//------------------
|
|
|
|
const unsigned int * getMaximumWindowSize()
|
|
{
|
|
return CommonOptions::instance().getMaximumWinSize();
|
|
}
|
|
|
|
const unsigned int * getMinimumWindowSize()
|
|
{
|
|
return CommonOptions::instance().getMinimumWinSize();
|
|
}
|
|
|
|
const unsigned int * getThreadNumber()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<unsigned int>(ADVANCED_SECTION, THREAD_NUMBER_ELEMENT);
|
|
}
|
|
|
|
const unsigned int * getMaxQueueSize()
|
|
{
|
|
return CommonOptions::instance().getMaxQueueSize();
|
|
}
|
|
|
|
const unsigned int * getMaxChannels()
|
|
{
|
|
return CommonOptions::instance().getMaxChannels();
|
|
}
|
|
|
|
const time_t * getMaxTunnelTimeout()
|
|
{
|
|
return CommonOptions::instance().getMaxTunnelTimeout();
|
|
}
|
|
|
|
|
|
const unsigned short * getAMTListenPort()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<unsigned short>(NETWORK_SECTION, AMT_LISTEN_PORT_ELEMENT);
|
|
}
|
|
|
|
//const ACE_INET_Addr * getAMTListenINET4()
|
|
//{
|
|
// Options * options = Options::instance();
|
|
// if (options == NULL)
|
|
// {
|
|
// return NULL;
|
|
// }
|
|
// return options -> getValue<ACE_INET_Addr>(NETWORK_SECTION, AMT_LISTEN_INET4_ELEMENT);
|
|
//}
|
|
//const ACE_INET_Addr * getAMTListenINET6()
|
|
//{
|
|
// Options * options = Options::instance();
|
|
// if (options == NULL)
|
|
// {
|
|
// return NULL;
|
|
// }
|
|
// return options -> getValue<ACE_INET_Addr>(NETWORK_SECTION, AMT_LISTEN_INET6_ELEMENT);
|
|
//}
|
|
|
|
const ACE_TString * getMCSocksListenIP()
|
|
{
|
|
return CommonOptions::instance().getMCSocksListenIP();
|
|
}
|
|
//const ACE_TString * getMCSocksListenIPv6()
|
|
//{
|
|
// return CommonOptions::instance().getMCSocksListenIPv6();
|
|
//}
|
|
|
|
const unsigned short * getMCSocksListenPort()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<unsigned short>(NETWORK_SECTION, MC_SOCKS_LISTEN_PORT_ELEMENT);
|
|
}
|
|
|
|
//const ACE_INET_Addr * getMCSocksListenINET()
|
|
//{
|
|
// Options * options = Options::instance();
|
|
// if (options == NULL)
|
|
// {
|
|
// return NULL;
|
|
// }
|
|
// return options -> getValue<ACE_INET_Addr>(NETWORK_SECTION, MC_SOCKS_LISTEN_INET_ELEMENT);
|
|
//}
|
|
|
|
const unsigned short * getMCHttpListenPort()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<unsigned short>(NETWORK_SECTION, MC_HTTP_LISTEN_PORT_ELEMENT);
|
|
}
|
|
|
|
const ACE_TString * getHeading()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<ACE_TString>(LOGGER_SECTION, HEADING_ELEMENT);
|
|
}
|
|
|
|
const ACE_TString * getTraceLevel()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<ACE_TString>(LOGGER_SECTION, TRACE_LEVEL_ELEMENT);
|
|
}
|
|
|
|
const ACE_TString * getLogFilePath()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<ACE_TString>(LOGGER_SECTION, LOG_FILE_PATH_ELEMENT);
|
|
}
|
|
|
|
const ACE_TString * getLogFileName()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<ACE_TString>(LOGGER_SECTION, LOG_FILE_NAME_ELEMENT);
|
|
}
|
|
|
|
const unsigned int * getLogFileSize()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<unsigned int>(LOGGER_SECTION, LOG_FILE_SIZE_ELEMENT);
|
|
}
|
|
const unsigned int * getLogFileMaxFiles()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<unsigned int>(LOGGER_SECTION, LOG_FILE_MAX_FILES_ELEMENT);
|
|
}
|
|
|
|
const bool * getAmtNeedAuthentication()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<bool>(AMT_AUTHENTICATE_SECTION, NEED_AUTHENTICATE_ELEMENT);
|
|
}
|
|
|
|
const ACE_TString * getAmtDllName()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<ACE_TString>(AMT_AUTHENTICATE_SECTION, DLL_NAME_ELEMENT);
|
|
}
|
|
|
|
const ACE_TString * getAmtDllParameters()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<ACE_TString>(AMT_AUTHENTICATE_SECTION, DLL_PARAMETERS_ELEMENT);
|
|
}
|
|
|
|
const bool * getSocksNeedAuthentication()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<bool>(SOCKS_AUTHENTICATE_SECTION, NEED_AUTHENTICATE_ELEMENT);
|
|
}
|
|
const ACE_TString * getSocksDllName()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<ACE_TString>(SOCKS_AUTHENTICATE_SECTION, DLL_NAME_ELEMENT);
|
|
}
|
|
|
|
const ACE_TString * getSocksDllParameters()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<ACE_TString>(SOCKS_AUTHENTICATE_SECTION, DLL_PARAMETERS_ELEMENT);
|
|
}
|
|
|
|
const MCList * getMCSubscribersList()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<MCList>(NOTIFICATION_LIST_ELEMENT, NOTIFICATION_LIST_ELEMENT);
|
|
}
|
|
|
|
const AuthServerHash * getAutherizedServersHash()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<AuthServerHash>(AUTHORIZED_SERVERS_LIST_ELEMENT, AUTHORIZED_SERVERS_LIST_ELEMENT);
|
|
}
|
|
|
|
MCList * getChangableMCSubscribersList()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValueChangable<MCList>(NOTIFICATION_LIST_ELEMENT, NOTIFICATION_LIST_ELEMENT);
|
|
}
|
|
|
|
AuthServerHash * getChangableAutherizedServersHash()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValueChangable<AuthServerHash>(AUTHORIZED_SERVERS_LIST_ELEMENT, AUTHORIZED_SERVERS_LIST_ELEMENT);
|
|
}
|
|
|
|
const bool * getMCNeedAuthentication()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<bool>(NOTIFICATION_AUTHENTICATION_SECTION, NEED_NOTIFICATION_AUTH_ELEMENT);
|
|
}
|
|
|
|
const ACE_TString * getMCUsername()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<ACE_TString>(NOTIFICATION_AUTHENTICATION_SECTION, USERNAME_ELEMENT);
|
|
}
|
|
|
|
const ACE_TString * getMCPassword()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<ACE_TString>(NOTIFICATION_AUTHENTICATION_SECTION, PASSWORD_ELEMENT);
|
|
}
|
|
|
|
const bool * getAuthServersListNeeded()
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return NULL;
|
|
}
|
|
return options -> getValue<bool>(FILTERING_SECTION, FILTER_UNAUTHORIZED_SERVERS_ELEMENT);
|
|
}
|
|
|
|
STATUS fillCommonElements()
|
|
{
|
|
CommonOptions::instance().setMaximumWinSize(
|
|
Options::instance()->getValue<unsigned int>(ADVANCED_SECTION, MAXIMUM_WINDOW_SIZE_ELEMENT));
|
|
CommonOptions::instance().setMinimumWinSize(
|
|
Options::instance()->getValue<unsigned int>(ADVANCED_SECTION, MINIMUM_WINDOW_SIZE_ELEMENT));
|
|
CommonOptions::instance().setMaxQueueSize(
|
|
Options::instance()->getValue<unsigned int>(ADVANCED_SECTION, MAX_QUEUE_SIZE_ELEMENT));
|
|
CommonOptions::instance().setMaxChannels(
|
|
Options::instance()->getValue<unsigned int>(ADVANCED_SECTION, MAX_CHANNELS_ELEMENT));
|
|
CommonOptions::instance().setMaxTunnelTimeout(
|
|
Options::instance()->getValue<time_t>(ADVANCED_SECTION, MAX_TUNNEL_TIMEOUT_ELEMENT));
|
|
CommonOptions::instance().setMCSocksListenIP(
|
|
Options::instance()->getValue<ACE_TString>(NETWORK_SECTION, MC_SOCKS_LISTEN_IP_ELEMENT));
|
|
//CommonOptions::instance().setMCSocksListenIPv4(
|
|
// Options::instance()->getValue<ACE_TString>(NETWORK_SECTION, MC_SOCKS_LISTEN_IPv4_ELEMENT));
|
|
//CommonOptions::instance().setMCSocksListenIPv6(
|
|
// Options::instance()->getValue<ACE_TString>(NETWORK_SECTION, MC_SOCKS_LISTEN_IPv6_ELEMENT));
|
|
|
|
return STATUS_SUCCESS;
|
|
}
|
|
|
|
STATUS getListenINET(const ACE_TCHAR* section, const ACE_TCHAR* elementIP, const ACE_TCHAR* elementPort,
|
|
ACE_INET_Addr& address)
|
|
{
|
|
Options * options = Options::instance();
|
|
if (options == NULL)
|
|
{
|
|
return STATUS_FAILURE;
|
|
}
|
|
const ACE_TString &ip = *(options->getValue<ACE_TString>(section, elementIP));
|
|
const unsigned short &port = *(options->getValue<unsigned short>(section, elementPort));
|
|
if (&port == NULL || &ip == NULL || address.set(port, ip.c_str()) != STATUS_SUCCESS)
|
|
{
|
|
return STATUS_FAILURE;
|
|
}
|
|
return STATUS_SUCCESS;
|
|
}
|
|
|
|
STATUS getAMTListenINET(ACE_INET_Addr& address)
|
|
{
|
|
return getListenINET(NETWORK_SECTION, AMT_LISTEN_IP_ELEMENT, AMT_LISTEN_PORT_ELEMENT, address);
|
|
}
|
|
|
|
//STATUS getAMTListenINETv4(ACE_INET_Addr& address)
|
|
//{
|
|
// return getListenINET(NETWORK_SECTION, AMT_LISTEN_IPv4_ELEMENT, AMT_LISTEN_PORT_ELEMENT, address);
|
|
//}
|
|
//
|
|
//STATUS getAMTListenINETv6(ACE_INET_Addr& address)
|
|
//{
|
|
// return getListenINET(NETWORK_SECTION, AMT_LISTEN_IPv6_ELEMENT, AMT_LISTEN_PORT_ELEMENT, address);
|
|
//}
|
|
|
|
//STATUS getSocksListenINETv4(ACE_INET_Addr& address)
|
|
//{
|
|
// return getListenINET(NETWORK_SECTION, MC_SOCKS_LISTEN_IP_ELEMENT, MC_SOCKS_LISTEN_PORT_ELEMENT, address);
|
|
//}
|
|
//
|
|
//STATUS getSocksListenINETv6(ACE_INET_Addr& address)
|
|
//{
|
|
// return getListenINET(NETWORK_SECTION, MC_SOCKS_LISTEN_IP_ELEMENT, MC_SOCKS_LISTEN_PORT_ELEMENT, address);
|
|
//}
|