Use correct RTM flags while deleting a route on BSD. 34/head
authorStefan Sperling <stsp@stsp.name>
Thu, 22 Jun 2017 16:57:08 +0000 (18:57 +0200)
committerStefan Sperling <stsp@stsp.name>
Thu, 22 Jun 2017 16:57:08 +0000 (18:57 +0200)
If a route to a given destination already exists, the add_del_route()
function attempts to delete this route before inserting a new one.
While doing so, it asks olsr_rt_flags() for route message flags to use.

It should ask for route message flags that apply to a deletion. However,
it only did so if the 'add' parameter is false. This looks like a case of
badly copy-pasted code, since this section of code is obviously trying
to delete a route regardless of the value of 'add'.

Signed-off-by: Stefan Sperling <stsp@stsp.name>
src/bsd/kernel_routes.c

index 228f90e..4a6d97e 100644 (file)
@@ -226,7 +226,7 @@ add_del_route(const struct rt_entry *rt, int add)
     drtm->rtm_version = RTM_VERSION;
     drtm->rtm_type = RTM_DELETE;
     drtm->rtm_index = 0;
-    drtm->rtm_flags = olsr_rt_flags(rt, add);
+    drtm->rtm_flags = olsr_rt_flags(rt, 0);
     drtm->rtm_seq = ++seq;
 
     walker = dbuff + sizeof(struct rt_msghdr);