diff options
author | Tobias Brunner <tobias@strongswan.org> | 2016-03-11 19:17:03 +0100 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2016-06-10 13:57:27 +0200 |
commit | c158331bfc0c39c3ea548ebd83545ae46d074482 (patch) | |
tree | f693c1782db7a23f28b0cb4659d162c1236aaee8 /src/libcharon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c | |
parent | 4ba5ea407bb8a4afc295d0fb3e80c8e1cff410bb (diff) | |
download | strongswan-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.c | 5 |
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; |