Module: sems Branch: master Commit: a48a03a9b1f01306fcd4c75f9ff3cb5eb20b037d URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sems/?a=commit;h=a48a03a9b1f01306fcd4c75f9ff3cb5eb20b037d
Author: Raphael Coeffic <[email protected]> Committer: Raphael Coeffic <[email protected]> Date: Thu Jan 26 17:13:28 2012 +0100 core: add support for supplementary IPs (e.g. VIP). --- core/AmConfig.cpp | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/core/AmConfig.cpp b/core/AmConfig.cpp index 2294607..a335b87 100644 --- a/core/AmConfig.cpp +++ b/core/AmConfig.cpp @@ -738,6 +738,32 @@ static bool fillSysIntfList() } freeifaddrs(ifap); + + // add addresses from SysIntfList, if not present + for(unsigned int idx = 0; idx < AmConfig::Ifs.size(); idx++) { + + list<AmConfig::SysIntf>::iterator intf_it = AmConfig::SysIfs.begin(); + for(;intf_it != AmConfig::SysIfs.end(); ++intf_it) { + + list<string>::iterator addr_it = std::find(intf_it->addrs.begin(), + intf_it->addrs.end(), + AmConfig::Ifs[idx].LocalSIPIP); + // address not in this interface + if(addr_it == intf_it->addrs.end()) + continue; + + // address is primary + if(addr_it == intf_it->addrs.begin()) + continue; + + if(AmConfig::LocalSIPIP2If.find(intf_it->addrs.front()) + == AmConfig::LocalSIPIP2If.end()) { + + AmConfig::LocalSIPIP2If[intf_it->addrs.front()] = idx; + } + } + } + return true; } _______________________________________________ Semsdev mailing list [email protected] http://lists.iptel.org/mailman/listinfo/semsdev
