]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Fixes a bug related to mixed up neighbor events in BGP.
authorOndrej Zajicek <santiago@crfreenet.org>
Tue, 13 Aug 2013 18:42:43 +0000 (20:42 +0200)
committerOndrej Zajicek <santiago@crfreenet.org>
Tue, 13 Aug 2013 18:42:43 +0000 (20:42 +0200)
Neighbor events related to received route next hops got mixed up with
sticky neighbor node for an IP of the BGP peer. If a neighbor for a next
hop disappears, BGP session is shut down.

proto/bgp/bgp.c

index 3215345209abbc1c0fcdf185328b1880f11658de..7cad75df4e0358df120b8af27ae61f75c0fce527 100644 (file)
@@ -743,6 +743,9 @@ bgp_neigh_notify(neighbor *n)
 {
   struct bgp_proto *p = (struct bgp_proto *) n->proto;
 
+  if (! (n->flags & NEF_STICKY))
+    return;
+
   if (n->scope > 0)
     {
       if ((p->p.proto_state == PS_START) && (p->start_state == BSS_PREPARE))