diff options
author | Tobias Brunner <tobias@strongswan.org> | 2010-10-05 16:18:35 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2010-10-12 11:11:04 +0200 |
commit | ec0c756d076118887be094547c493eb1c35c23fb (patch) | |
tree | 7b9e92fae73ef3c81c3c302db2db7626f0a25b06 /src/libhydra | |
parent | 29607690a8dc97c405c358f2631d02d61213e28b (diff) | |
download | strongswan-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.c | 5 |
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; } |