From dcaf8d570c5c17cf1ec82d9d19ca53e1bfdff52b Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Sat, 15 Jun 2013 16:21:08 +0200 Subject: kernel-libipsec: Router reads packets from multiple TUN devices These devices are collected via kernel_listener_t interface. --- .../plugins/kernel_libipsec/kernel_libipsec_router.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/libcharon/plugins/kernel_libipsec/kernel_libipsec_router.h') diff --git a/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_router.h b/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_router.h index a7ef27c0a..7b2f3c6c5 100644 --- a/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_router.h +++ b/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_router.h @@ -21,6 +21,8 @@ #ifndef KERNEL_LIBIPSEC_ROUTER_H_ #define KERNEL_LIBIPSEC_ROUTER_H_ +#include + typedef struct kernel_libipsec_router_t kernel_libipsec_router_t; /** @@ -29,12 +31,30 @@ typedef struct kernel_libipsec_router_t kernel_libipsec_router_t; */ struct kernel_libipsec_router_t { + /** + * Implements kernel_listener_t interface + */ + kernel_listener_t listener; + + /** + * Get the name of the TUN device to be used with the given virtual IP. + * + * @param vip virtual IP + * @return allocated name + */ + char *(*get_tun_name)(kernel_libipsec_router_t *this, host_t *vip); + /** * Destroy the given instance */ void (*destroy)(kernel_libipsec_router_t *this); }; +/** + * Single instance of this class, if created + */ +extern kernel_libipsec_router_t *router; + /** * Create a kernel_libipsec_router_t instance. * -- cgit v1.2.3