diff --git a/core/AmConfig.cpp b/core/AmConfig.cpp index 99b47f48..b1a76817 100644 --- a/core/AmConfig.cpp +++ b/core/AmConfig.cpp @@ -50,8 +50,9 @@ string AmConfig::ExcludePayloads = ""; int AmConfig::LogLevel = L_INFO; bool AmConfig::LogStderr = false; -vector AmConfig::Ifs; -map AmConfig::If_names; +vector AmConfig::Ifs; +map AmConfig::If_names; +multimap AmConfig::LocalSIPIP2If; #ifndef DISABLE_DAEMON_MODE bool AmConfig::DaemonMode = DEFAULT_DAEMON_MODE; @@ -546,7 +547,10 @@ static int readInterface(AmConfigReader& cfg, const string& i_name) } AmConfig::Ifs.push_back(intf); - return ret; + AmConfig::LocalSIPIP2If.insert(std::make_pair(intf.LocalSIPIP, + AmConfig::Ifs.size()-1)); + + return ret; } static int readInterfaces(AmConfigReader& cfg) diff --git a/core/AmConfig.h b/core/AmConfig.h index 7d09211c..c3ec82e0 100644 --- a/core/AmConfig.h +++ b/core/AmConfig.h @@ -37,6 +37,7 @@ using std::string; #include using std::map; +using std::multimap; #include /** @@ -97,8 +98,9 @@ struct AmConfig int LocalSIPPort; }; - static vector Ifs; - static map If_names; + static vector Ifs; + static map If_names; + static multimap LocalSIPIP2If; static string& LocalIP() { return (Ifs[0].LocalIP);