From: Ondrej Zajicek Date: Tue, 13 Aug 2013 18:42:43 +0000 (+0200) Subject: Fixes a bug related to mixed up neighbor events in BGP. X-Git-Tag: v1.4.0~49 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b21955e05800c3ceedfe39eef605da84285296c7;p=thirdparty%2Fbird.git Fixes a bug related to mixed up neighbor events in BGP. 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. --- diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c index 321534520..7cad75df4 100644 --- a/proto/bgp/bgp.c +++ b/proto/bgp/bgp.c @@ -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))