MT#57437 Upstream: Support looking up aliased interface names

Backport from the upstream to support looking up aliased
interface names.

Upstream commit: a84509091031331159abb199e21701cb6d7e79b1

Change-Id: I557dee742351268737fe69df8991aede531bb57b
mr11.4.1
Donat Zenichev 3 years ago
parent 7127606dc5
commit 561b8ba9d2

@ -67,7 +67,8 @@ vector<AmConfig::RTP_interface> AmConfig::RTP_Ifs;
map<string,unsigned short> AmConfig::SIP_If_names;
map<string,unsigned short> AmConfig::RTP_If_names;
map<string,unsigned short> AmConfig::LocalSIPIP2If;
vector<AmConfig::SysIntf> AmConfig::SysIfs;
vector<AmConfig::SysIntf> AmConfig::SysIfs;
map<string, string> AmConfig::IfName2IP;
#ifndef DISABLE_DAEMON_MODE
bool AmConfig::DaemonMode = DEFAULT_DAEMON_MODE;
@ -1026,6 +1027,7 @@ static bool fillSysIntfList()
DBG("iface='%s';ip='%s';flags=0x%x\n",p_if->ifa_name,host,p_if->ifa_flags);
intf_it->addrs.push_back(AmConfig::IPAddr(host,p_if->ifa_addr->sa_family));
AmConfig::IfName2IP[p_if->ifa_name] = host;
}
freeifaddrs(ifap);
@ -1077,20 +1079,10 @@ string fixIface2IP(const string& dev_name, bool v6_for_sip)
return dev_name;
}
for(vector<AmConfig::SysIntf>::iterator intf_it = AmConfig::SysIfs.begin();
intf_it != AmConfig::SysIfs.end(); ++intf_it) {
if(intf_it->name != dev_name)
continue;
if(intf_it->addrs.empty()){
ERROR("No IP address for interface '%s'\n",intf_it->name.c_str());
return "";
}
DBG("dev_name = '%s'\n",dev_name.c_str());
return intf_it->addrs.front().addr;
}
if (!AmConfig::IfName2IP[dev_name].empty()) {
DBG("dev_name = '%s, ip=%s'\n", dev_name.c_str(), AmConfig::IfName2IP[dev_name].c_str());
return AmConfig::IfName2IP[dev_name];
}
return "";
}

@ -160,6 +160,7 @@ struct AmConfig
unsigned int mtu;
};
static map<string, string> IfName2IP;
static vector<SysIntf> SysIfs;
static int insert_SIP_interface(const SIP_interface& intf);

Loading…
Cancel
Save