From b185cdd16d1d7553fabf7792928df31ad9eea427 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Mon, 12 Nov 2012 10:06:09 +0100 Subject: Install virtual IPs via interface name, and use an interface lookup where required --- src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c') diff --git a/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c b/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c index 7db51fc85..c00fa8800 100644 --- a/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c +++ b/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c @@ -1664,7 +1664,7 @@ static status_t manage_ipaddr(private_kernel_netlink_net_t *this, int nlmsg_type METHOD(kernel_net_t, add_ip, status_t, private_kernel_netlink_net_t *this, host_t *virtual_ip, int prefix, - host_t *iface_ip) + char *iface_name) { addr_map_entry_t *entry, lookup = { .ip = virtual_ip, @@ -1715,17 +1715,11 @@ METHOD(kernel_net_t, add_ip, status_t, this->ifaces->find_first(this->ifaces, (void*)iface_entry_by_name, (void**)&iface, this->install_virtual_ip_on) != SUCCESS) { - lookup.ip = iface_ip; - entry = this->addrs->get_match(this->addrs, &lookup, - (void*)addr_map_entry_match); - if (!entry) + if (this->ifaces->find_first(this->ifaces, (void*)iface_entry_by_name, + (void**)&iface, iface_name) != SUCCESS) { /* if we don't find the requested interface we just use the first */ this->ifaces->get_first(this->ifaces, (void**)&iface); } - else - { - iface = entry->iface; - } } if (iface) { -- cgit v1.2.3