aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_ipsec.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcharon/plugins/kernel_libipsec/kernel_libipsec_ipsec.c')
-rw-r--r--src/libcharon/plugins/kernel_libipsec/kernel_libipsec_ipsec.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_ipsec.c b/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_ipsec.c
index efa519a83..f605501ba 100644
--- a/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_ipsec.c
+++ b/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_ipsec.c
@@ -13,6 +13,7 @@
*/
#include "kernel_libipsec_ipsec.h"
+#include "kernel_libipsec_router.h"
#include <library.h>
#include <ipsec.h>
@@ -36,11 +37,6 @@ struct private_kernel_libipsec_ipsec_t {
ipsec_event_listener_t ipsec_listener;
/**
- * TUN device
- */
- tun_device_t *tun;
-
- /**
* Mutex to lock access to various lists
*/
mutex_t *mutex;
@@ -389,7 +385,7 @@ static bool install_route(private_kernel_libipsec_ipsec_t *this,
}
INIT(route,
- .if_name = strdup(this->tun->get_name(this->tun)),
+ .if_name = router->get_tun_name(router, is_virtual ? src_ip : NULL),
.src_ip = src_ip,
.dst_net = chunk_clone(policy->dst.net->get_address(policy->dst.net)),
.prefixlen = policy->dst.mask,
@@ -634,7 +630,6 @@ kernel_libipsec_ipsec_t *kernel_libipsec_ipsec_create()
.ipsec_listener = {
.expire = expire,
},
- .tun = lib->get(lib, "kernel-libipsec-tun"),
.mutex = mutex_create(MUTEX_TYPE_DEFAULT),
.policies = linked_list_create(),
.excludes = linked_list_create(),