Do not fire roam events based on local route changes.
authorTobias Brunner <tobias@strongswan.org>
Tue, 5 Oct 2010 14:18:35 +0000 (16:18 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 12 Oct 2010 09:11:04 +0000 (11:11 +0200)
These kernel events are triggered on address changes, which is
problematic when deleting virtual IP addresses.

src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c

index d6fb21c..314c1ac 100644 (file)
@@ -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;
        }