diff options
author | Tobias Brunner <tobias@strongswan.org> | 2013-04-16 13:54:25 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2013-05-03 15:11:19 +0200 |
commit | 37873f9994a8c5e470969c6c906669df1cbdddf6 (patch) | |
tree | 06aa953bc94566cb46dec453e2860ca33a914d4c | |
parent | 3b7f25906e715b01bbe781522f8d57e4f5e15eb2 (diff) | |
download | strongswan-37873f9994a8c5e470969c6c906669df1cbdddf6.tar.bz2 strongswan-37873f9994a8c5e470969c6c906669df1cbdddf6.tar.xz |
kernel-netlink: Add an option to disable roam events
-rw-r--r-- | man/strongswan.conf.5.in | 3 | ||||
-rw-r--r-- | src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c | 14 |
2 files changed, 16 insertions, 1 deletions
diff --git a/man/strongswan.conf.5.in b/man/strongswan.conf.5.in index 44fe330e8..e4b7e49d4 100644 --- a/man/strongswan.conf.5.in +++ b/man/strongswan.conf.5.in @@ -595,6 +595,9 @@ Number of ipsecN devices .BR charon.plugins.kernel-klips.ipsec_dev_mtu " [0]" Set MTU of ipsecN device .TP +.BR charon.plugins.kernel-netlink.roam_events " [yes]" +Whether to trigger roam events when interfaces, addresses or routes change +.TP .BR charon.plugins.load-tester Section to configure the load-tester plugin, see LOAD TESTS .TP diff --git a/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c b/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c index 9586fa47d..739a1f407 100644 --- a/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c +++ b/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2012 Tobias Brunner + * Copyright (C) 2008-2013 Tobias Brunner * Copyright (C) 2005-2008 Martin Willi * Hochschule fuer Technik Rapperswil * @@ -436,6 +436,11 @@ struct private_kernel_netlink_net_t { bool process_route; /** + * whether to trigger roam events + */ + bool roam_events; + + /** * whether to actually install virtual IPs */ bool install_virtual_ip; @@ -703,6 +708,11 @@ static void fire_roam_event(private_kernel_netlink_net_t *this, bool address) timeval_t now; job_t *job; + if (!this->roam_events) + { + return; + } + time_monotonic(&now); this->roam_lock->lock(this->roam_lock); if (!timercmp(&now, &this->next_roam, >)) @@ -2235,6 +2245,8 @@ kernel_netlink_net_t *kernel_netlink_net_create() "%s.install_virtual_ip", TRUE, hydra->daemon), .install_virtual_ip_on = lib->settings->get_str(lib->settings, "%s.install_virtual_ip_on", NULL, hydra->daemon), + .roam_events = lib->settings->get_bool(lib->settings, + "%s.plugins.kernel-netlink.roam_events", TRUE, hydra->daemon), ); timerclear(&this->last_route_reinstall); timerclear(&this->next_roam); |