summaryrefslogtreecommitdiffstats
path: root/src/utl_ip.cpp
diff options
context:
space:
mode:
authorIdo Barnea <ibarnea@cisco.com>2016-11-21 12:55:36 +0200
committerIdo Barnea <ibarnea@cisco.com>2016-11-21 12:56:29 +0200
commit4a2d56b6a04833b78d2d1b6fe50a4a4f54a049ec (patch)
treeb562ec84bf4ba2725042f4d91dbbba07b3016281 /src/utl_ip.cpp
parentfb823791cf8794dc367640a1f46ea051a0c79ccc (diff)
Client config ARP support - code review changes
Signed-off-by: Ido Barnea <ibarnea@cisco.com>
Diffstat (limited to 'src/utl_ip.cpp')
-rw-r--r--src/utl_ip.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/utl_ip.cpp b/src/utl_ip.cpp
index c645c7ed..5bd83f95 100644
--- a/src/utl_ip.cpp
+++ b/src/utl_ip.cpp
@@ -66,40 +66,41 @@ void COneIPv6Info::fill_grat_arp_buf(uint8_t *p) {
const COneIPInfo *CManyIPInfo::get_next() {
COneIPInfo *ret;
-
+
if (!m_iter_initiated) {
m_ipv4_iter = m_ipv4_resolve.begin();
m_iter_initiated = true;
}
-
+
if (m_ipv4_iter == m_ipv4_resolve.end()) {
m_ipv4_iter = m_ipv4_resolve.begin();
return NULL;
}
-
+
ret = &(m_ipv4_iter->second);
m_ipv4_iter++;
return ret;
}
void CManyIPInfo::dump(FILE *fd) {
- std::map<std::pair<uint32_t, uint16_t>, COneIPv4Info>::iterator it;
+ ip_vlan_to_many_ip_iter_t it;
for (it = m_ipv4_resolve.begin(); it != m_ipv4_resolve.end(); it++) {
fprintf(fd, "IPv4 resolved list:\n");
uint8_t mac[ETHER_ADDR_LEN];
it->second.get_mac(mac);
- fprintf(fd, "ip:%s vlan: %d resolved to mac %s\n", ip_to_str(it->first.first).c_str(), it->first.second
+ fprintf(fd, "ip:%s vlan: %d resolved to mac %s\n", ip_to_str(it->first.get_ip()).c_str(), it->first.get_vlan()
, utl_macaddr_to_str(mac).c_str());
}
}
void CManyIPInfo::insert(COneIPv4Info &ip_info) {
- m_ipv4_resolve.insert(std::pair<std::pair<uint32_t, uint16_t>, COneIPv4Info>
- (std::pair<uint32_t, uint16_t>(ip_info.get_ip(), ip_info.get_vlan()), ip_info));
+ CIpVlan ip_vlan(ip_info.get_ip(), ip_info.get_vlan());
+
+ m_ipv4_resolve.insert(std::make_pair(ip_vlan, ip_info));
}
bool CManyIPInfo::lookup(uint32_t ip, uint16_t vlan, MacAddress &ret_mac) {
- std::map<std::pair<uint32_t, uint16_t>, COneIPv4Info>::iterator it = m_ipv4_resolve.find(std::make_pair(ip, vlan));
+ ip_vlan_to_many_ip_iter_t it = m_ipv4_resolve.find(CIpVlan(ip, vlan));
if (it != m_ipv4_resolve.end()) {
uint8_t mac[ETHER_ADDR_LEN];
(*it).second.get_mac(mac);
@@ -118,5 +119,3 @@ const COneIPInfo *CManyIPInfo::get_first() {
return &(m_ipv4_iter->second);
}
}
-
-