summaryrefslogtreecommitdiffstats
path: root/nest/iface.c
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1999-02-13 21:57:47 +0100
committerMartin Mares <mj@ucw.cz>1999-02-13 21:57:47 +0100
commit3fb4ca2ce2b5750d38a5e31023d2873c9942cc78 (patch)
tree2182af2f37d4fa96a3e3b71be905fca9a20a5010 /nest/iface.c
parent783f8b689a29aaffbe75e964fdd09a3c219ea81c (diff)
downloadbird-3fb4ca2ce2b5750d38a5e31023d2873c9942cc78.tar
bird-3fb4ca2ce2b5750d38a5e31023d2873c9942cc78.zip
Don't send any neighbor notifications to protocols being flushed.
Diffstat (limited to 'nest/iface.c')
-rw-r--r--nest/iface.c6
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);