diff options
author | Martin Mares <mj@ucw.cz> | 1999-02-13 21:57:47 +0100 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1999-02-13 21:57:47 +0100 |
commit | 3fb4ca2ce2b5750d38a5e31023d2873c9942cc78 (patch) | |
tree | 2182af2f37d4fa96a3e3b71be905fca9a20a5010 | |
parent | 783f8b689a29aaffbe75e964fdd09a3c219ea81c (diff) | |
download | bird-3fb4ca2ce2b5750d38a5e31023d2873c9942cc78.tar bird-3fb4ca2ce2b5750d38a5e31023d2873c9942cc78.zip |
Don't send any neighbor notifications to protocols being flushed.
-rw-r--r-- | nest/iface.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/nest/iface.c b/nest/iface.c index 28e7739..ae40caa 100644 --- a/nest/iface.c +++ b/nest/iface.c @@ -133,7 +133,7 @@ neigh_if_up(struct iface *i) n->sibling = i->neigh; i->neigh = n; DBG("Waking up sticky neighbor %I\n", n->addr); - if (n->proto->neigh_notify) + if (n->proto->neigh_notify && n->proto->core_state != FS_FLUSHING) n->proto->neigh_notify(n); } } @@ -148,7 +148,7 @@ neigh_if_down(struct iface *i) m = n->sibling; DBG("Flushing neighbor %I on %s\n", n->addr, n->iface->name); n->iface = NULL; - if (n->proto->neigh_notify) + if (n->proto->neigh_notify && n->proto->core_state != FS_FLUSHING) n->proto->neigh_notify(n); if (!(n->flags & NEF_STICKY)) { @@ -171,7 +171,7 @@ neigh_prune(void) N = &i->neigh; while (n = *N) { - if (n->proto->core_state == FS_HUNGRY || n->proto->core_state == FS_FLUSHING) + if (n->proto->core_state == FS_FLUSHING) { *N = n->sibling; rem_node(&n->n); |