diff options
Diffstat (limited to 'sysdep/bsd')
-rw-r--r-- | sysdep/bsd/krt-sock.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sysdep/bsd/krt-sock.c b/sysdep/bsd/krt-sock.c index e646c414..c2faa23d 100644 --- a/sysdep/bsd/krt-sock.c +++ b/sysdep/bsd/krt-sock.c @@ -357,10 +357,13 @@ krt_replace_rte(struct krt_proto *p, net *n, rte *new, rte *old) if (new) err = krt_send_route(p, RTM_ADD, new); - if (err < 0) - n->n.flags |= KRF_SYNC_ERROR; - else - n->n.flags &= ~KRF_SYNC_ERROR; + if (new) + { + if (err < 0) + bmap_clear(&p->sync_map, new->id); + else + bmap_set(&p->sync_map, new->id); + } } #define SKIP(ARG...) do { DBG("KRT: Ignoring route - " ARG); return; } while(0) |