summaryrefslogtreecommitdiff
path: root/proto/bgp/bgp.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2013-08-13 20:42:43 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2013-08-13 20:42:43 +0200
commitb21955e05800c3ceedfe39eef605da84285296c7 (patch)
tree3cab03874f4148afcc18dbe8e6e9c81ff90e0b2c /proto/bgp/bgp.c
parent00192d5ab88ff9eeccbc1bc10cb534976a56963d (diff)
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.
Diffstat (limited to 'proto/bgp/bgp.c')
-rw-r--r--proto/bgp/bgp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c
index 32153452..7cad75df 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))