aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2016-03-11 19:17:03 +0100
committerTobias Brunner <tobias@strongswan.org>2016-06-10 13:57:27 +0200
commitc158331bfc0c39c3ea548ebd83545ae46d074482 (patch)
treef693c1782db7a23f28b0cb4659d162c1236aaee8 /src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c
parent4ba5ea407bb8a4afc295d0fb3e80c8e1cff410bb (diff)
downloadstrongswan-c158331bfc0c39c3ea548ebd83545ae46d074482.tar.bz2
strongswan-c158331bfc0c39c3ea548ebd83545ae46d074482.tar.xz
kernel-pfkey: Use interface to next hop for shunt policies
Diffstat (limited to 'src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c')
-rw-r--r--src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c b/src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c
index d54a96eb5..82abc76fa 100644
--- a/src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c
+++ b/src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c
@@ -2329,14 +2329,15 @@ static bool install_route(private_kernel_pfkey_ipsec_t *this,
{ /* for shunt policies */
route->gateway = charon->kernel->get_nexthop(charon->kernel,
policy->src.net, policy->src.mask,
- route->src_ip, NULL);
+ route->src_ip, &route->if_name);
/* we don't have a source address, use the address we found */
src = route->src_ip;
}
/* get interface for route, using source address */
- if (!charon->kernel->get_interface(charon->kernel, src, &route->if_name))
+ if (!route->if_name &&
+ !charon->kernel->get_interface(charon->kernel, src, &route->if_name))
{
route_entry_destroy(route);
return FALSE;