aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2009-12-14 14:44:24 +0100
committerMartin Willi <martin@strongswan.org>2009-12-14 14:44:24 +0100
commitfc85786921e3b79ca4915222bb5e882e33390b01 (patch)
treee4031065b94d6197a2aa490f7190062b7432be2e /src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c
parent25df6196df6b7ae6d5b82aaf381c87704a108df9 (diff)
downloadstrongswan-fc85786921e3b79ca4915222bb5e882e33390b01.tar.bz2
strongswan-fc85786921e3b79ca4915222bb5e882e33390b01.tar.xz
Install v6 routes via outgoing interface for now
Diffstat (limited to 'src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c')
-rw-r--r--src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c25
1 files changed, 7 insertions, 18 deletions
diff --git a/src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c b/src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c
index e9da5d1c5..62434b30a 100644
--- a/src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c
+++ b/src/charon/plugins/kernel_netlink/kernel_netlink_ipsec.c
@@ -1098,7 +1098,7 @@ static status_t add_sa(private_kernel_netlink_ipsec_t *this,
strcpy(algo->alg_name, alg_name);
memcpy(algo->alg_key, int_key.ptr, int_key.len);
}
- else
+ else
{
struct xfrm_algo* algo;
@@ -1706,24 +1706,13 @@ static status_t add_policy(private_kernel_netlink_ipsec_t *this,
if (charon->kernel_interface->get_address_by_ts(charon->kernel_interface,
dst_ts, &route->src_ip) == SUCCESS)
{
- if (policy->sel.family == AF_INET)
- {
- /* get the nexthop to src (src as we are in POLICY_FWD).*/
- route->gateway = charon->kernel_interface->get_nexthop(
- charon->kernel_interface, src);
- /* for IPv4, the route is installed on the outgoing interface */
- route->if_name = charon->kernel_interface->get_interface(
+ /* get the nexthop to src (src as we are in POLICY_FWD).*/
+ route->gateway = charon->kernel_interface->get_nexthop(
+ charon->kernel_interface, src);
+ /* install route via outgoing interface */
+ route->if_name = charon->kernel_interface->get_interface(
charon->kernel_interface, dst);
- route->dst_net = chunk_alloc(4);
- }
- else
- {
- route->gateway = NULL;
- /* for IPv6, it is on the interface with our source address */
- route->if_name = charon->kernel_interface->get_interface(
- charon->kernel_interface, route->src_ip);
- route->dst_net = chunk_alloc(16);
- }
+ route->dst_net = chunk_alloc(policy->sel.family == AF_INET ? 4 : 16);
memcpy(route->dst_net.ptr, &policy->sel.saddr, route->dst_net.len);
route->prefixlen = policy->sel.prefixlen_s;