Configuration::Configuration() :
ConfigFileName( "" ),
+ SourceNetworkInterface( "" ),
HostsDownLimit( 0 ),
MinHostsDownLimit( 0 ),
MaxHostsDownLimit( 50 ),
this->ConfigFileName = config_file_name;
}
+string Configuration::get_source_network_interface() const
+{
+ return SourceNetworkInterface;
+}
+
+void Configuration::set_source_network_interface(
+ const string &source_network_interface
+)
+{
+ SourceNetworkInterface = source_network_interface;
+}
+
int Configuration::get_hosts_down_limit() const
{
return HostsDownLimit;
std::string get_config_file_name() const;
void set_config_file_name( const std::string &config_file_name );
+ std::string get_source_network_interface() const;
+ void set_source_network_interface(
+ const std::string &source_network_interface
+ );
+
int get_hosts_down_limit() const;
void set_hosts_down_limit( const int hosts_down_limit );
private:
std::string ConfigFileName;
+ std::string SourceNetworkInterface;
int HostsDownLimit;
const int MinHostsDownLimit;
const int MaxHostsDownLimit;
DefaultConfigFileName( "pingcheck.conf" ),
ConfigFileCmdStr( "config-file" ),
ConfigFileCmdDesc( "Name of the configuration file." ),
+ SourceNetworkInterfaceCmdStr( "source-network-interface" ),
+ SourceNetworkInterfaceCmdDesc( "The network interface from where the packets will be received and originated" ),
DefaultHostsDownLimit( 1 ), // 1 host down at most
HostsDownLimitCmdStr( "hosts-down-limit" ),
HostsDownLimitCmdDesc( "Limit of host that have to be down in order to notify." ),
{
options_description options( "Configuration" );
options.add_options()
+ ( SourceNetworkInterfaceCmdStr.c_str(), value<string>(), SourceNetworkInterfaceCmdDesc.c_str() )
( HostsDownLimitCmdStr.c_str(), value<int>()->default_value( DefaultHostsDownLimit ), HostsDownLimitCmdDesc.c_str() )
( PingFailLimitCmdStr.c_str(), value<int>()->default_value( DefaultPingFailLimit ), PingFailLimitCmdDesc.c_str() )
( StatusNotifierCmdCmdStr.c_str(), value<string>(), StatusNotifierCmdCmdDesc.c_str() )
cout << ConfigFileCmdStr << "=" << config_file_name << endl;
}
+ // source-network-interface
+ if ( vm.count( SourceNetworkInterfaceCmdStr ) )
+ {
+ string source_network_interface =
+ vm[ SourceNetworkInterfaceCmdStr ].as<string> ();
+ Config.set_source_network_interface( source_network_interface );
+
+ cout << SourceNetworkInterfaceCmdStr << "=" << source_network_interface
+ << endl;
+ }
+
// hosts-down-limit
int host_down_limit = 0;
if ( vm.count( HostsDownLimitCmdStr ) )
const std::string DefaultConfigFileName;
const std::string ConfigFileCmdStr;
const std::string ConfigFileCmdDesc;
+ const std::string SourceNetworkInterfaceCmdStr;
+ const std::string SourceNetworkInterfaceCmdDesc;
const int DefaultHostsDownLimit;
const std::string HostsDownLimitCmdStr;
const std::string HostsDownLimitCmdDesc;