aboutsummaryrefslogtreecommitdiffstats
path: root/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2012-11-12 10:06:09 +0100
committerMartin Willi <martin@revosec.ch>2012-11-29 10:22:51 +0100
commitb185cdd16d1d7553fabf7792928df31ad9eea427 (patch)
tree3b2d62992ad1d2051d770495722b7b75b30e5b23 /src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c
parent0a54d3e1a19915f81dea1b942e88e5d637214e0e (diff)
downloadstrongswan-b185cdd16d1d7553fabf7792928df31ad9eea427.tar.bz2
strongswan-b185cdd16d1d7553fabf7792928df31ad9eea427.tar.xz
Install virtual IPs via interface name, and use an interface lookup where required
Diffstat (limited to 'src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c')
-rw-r--r--src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c12
1 files changed, 3 insertions, 9 deletions
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)
{