summaryrefslogtreecommitdiffstats
path: root/ffd/announce.c
diff options
context:
space:
mode:
Diffstat (limited to 'ffd/announce.c')
-rw-r--r--ffd/announce.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/ffd/announce.c b/ffd/announce.c
index 6b30ec6..62e876a 100644
--- a/ffd/announce.c
+++ b/ffd/announce.c
@@ -45,7 +45,7 @@ static void maintain_nexthops(ffd_announce_t *announce) {
if (announce->selected == nexthop)
announce->selected = NULL;
- nexthop->neigh->nexthop_refs--;
+ ffd_neigh_unref(nexthop->neigh);
free(nexthop);
}
@@ -54,6 +54,11 @@ static void maintain_nexthops(ffd_announce_t *announce) {
add_interval(&nexthop->last_update, FFD_UPDATE_TIMEOUT(nexthop->interval));
}
}
+ else if (!nexthop->neigh->iface && nexthop->metric_seqno.metric != 0xffff) {
+ nexthop->metric_seqno.metric = 0xffff;
+ nexthop->last_update = now;
+ add_interval(&nexthop->last_update, FFD_UPDATE_TIMEOUT(nexthop->interval));
+ }
}
}