aboutsummaryrefslogtreecommitdiffstats
path: root/src/libhydra
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2010-10-05 16:18:35 +0200
committerTobias Brunner <tobias@strongswan.org>2010-10-12 11:11:04 +0200
commitec0c756d076118887be094547c493eb1c35c23fb (patch)
tree7b9e92fae73ef3c81c3c302db2db7626f0a25b06 /src/libhydra
parent29607690a8dc97c405c358f2631d02d61213e28b (diff)
downloadstrongswan-ec0c756d076118887be094547c493eb1c35c23fb.tar.bz2
strongswan-ec0c756d076118887be094547c493eb1c35c23fb.tar.xz
Do not fire roam events based on local route changes.
These kernel events are triggered on address changes, which is problematic when deleting virtual IP addresses.
Diffstat (limited to 'src/libhydra')
-rw-r--r--src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c b/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c
index d6fb21c58..314c1acc1 100644
--- a/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c
+++ b/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c
@@ -522,8 +522,9 @@ static void process_route(private_kernel_netlink_net_t *this, struct nlmsghdr *h
u_int32_t rta_oif = 0;
host_t *host = NULL;
- /* ignore routes added by us */
- if (msg->rtm_table && msg->rtm_table == this->routing_table)
+ /* ignore routes added by us or in the local routing table (local addrs) */
+ if (msg->rtm_table && (msg->rtm_table == this->routing_table ||
+ msg->rtm_table == RT_TABLE_LOCAL))
{
return;
}