Added possibility to override automatic WAN IP detection
[bpdyndnsd] / src / config.cpp
index b3b1494..acc8a27 100644 (file)
@@ -144,6 +144,7 @@ void Config::define_config_options()
         ("dialup_mode",po::value<bool>()->default_value(false),"Enable dialup mode (sleep periods between network traffic)")
         ("dialup_burst_period_seconds",po::value<int>()->default_value(120),"Seconds of normal operation before entering dialup mode")
         ("dialup_sleep_seconds",po::value<int>()->default_value(10 * 60),"Seconds to sleep between network traffic")
+        ("wan_ip_override",po::value<string>(),"Manual override for automatic WAN IP detection")
     ;
 
     // Define valid command line parameters
@@ -297,6 +298,9 @@ int Config::parse_cmd_line(int argc, char *argv[])
             DialupBurstPeriodSeconds = VariablesMap["dialup_burst_period_seconds"].as<int>();
         if ( VariablesMap.count("dialup_sleep_seconds") )
             DialupSleepSeconds = VariablesMap["dialup_sleep_seconds"].as<int>();
+
+        if ( VariablesMap.count("wan_ip_override") )
+            WanIpOverride = VariablesMap["wan_ip_override"].as<string>();
     }
     catch( const po::unknown_option& e )
     {
@@ -564,6 +568,9 @@ int Config::load_main_config_file(const string& full_filename)
                 DialupBurstPeriodSeconds = VariablesMap["dialup_burst_period_seconds"].as<int>();
             if ( VariablesMap.count("dialup_sleep_seconds") )
                 DialupSleepSeconds = VariablesMap["dialup_sleep_seconds"].as<int>();
+
+            if ( VariablesMap.count("wan_ip_override") )
+                WanIpOverride = VariablesMap["wan_ip_override"].as<string>();
         }
         catch( const po::unknown_option& e )
         {
@@ -848,3 +855,12 @@ int Config::get_dialup_sleep_seconds() const
 {
     return DialupSleepSeconds;
 }
+
+/**
+ * Get WAN override IP (if present)
+ * @return WanIpOverride
+*/
+std::string Config::get_wan_ip_override() const
+{
+    return WanIpOverride;
+}