diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2013-08-13 20:42:43 +0200 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2013-08-13 20:42:43 +0200 |
commit | b21955e05800c3ceedfe39eef605da84285296c7 (patch) | |
tree | 3cab03874f4148afcc18dbe8e6e9c81ff90e0b2c /proto/bgp/bgp.c | |
parent | 00192d5ab88ff9eeccbc1bc10cb534976a56963d (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.c | 3 |
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)) |