summaryrefslogtreecommitdiff
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
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.
-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))