]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Don't send any neighbor notifications to protocols being flushed.
authorMartin Mares <mj@ucw.cz>
Sat, 13 Feb 1999 20:57:47 +0000 (20:57 +0000)
committerMartin Mares <mj@ucw.cz>
Sat, 13 Feb 1999 20:57:47 +0000 (20:57 +0000)
nest/iface.c

index 28e7739be664dcb0de710aa39b0540d3d641e6ad..ae40caad5b8af7c84019bd1d9ed91093a8d63e4d 100644 (file)
@@ -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);