Always delete routes when using external route handling functions
authorVasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
Wed, 3 Mar 2010 17:54:39 +0000 (19:54 +0200)
committerVasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
Wed, 3 Mar 2010 17:54:39 +0000 (19:54 +0200)
src/process_routes.c

index 867f2d6..47df783 100644 (file)
@@ -254,7 +254,10 @@ olsr_chg_kernel_routes(struct list_node *head_node)
 /*deleting routes should not be required anymore as we use (NLM_F_CREATE | NLM_F_REPLACE) in linux rtnetlink*/
 #ifdef LINUX_NETLINK_ROUTING
     /*delete routes with ipv6 only as it still doesn`t support NLM_F_REPLACE*/
-    if ((olsr_cnf->ip_version != AF_INET ) && (rt->rt_nexthop.iif_index > -1)) {
+    if (((olsr_cnf->ip_version != AF_INET )
+         || (olsr_addroute_function != olsr_ioctl_add_route) || (olsr_addroute6_function != olsr_ioctl_add_route6)
+         || (olsr_delroute_function != olsr_ioctl_del_route) || (olsr_delroute6_function != olsr_ioctl_del_route6))
+        && (rt->rt_nexthop.iif_index > -1)) {
       olsr_delete_kernel_route(rt);
     }
 #else