From 821a359aa28f2a682b368aa095c926d6eb90258b Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Tue, 19 May 2015 18:04:18 -0700 Subject: [PATCH] When a peer is unbound from its peer-group, in some situations the peer is deleted while in other situations, the peer continues to exist but its global flags have all been reset. This is incorrect, particularly for the CONFIG_NODE flag as other parts of the code depend on this flag being set for a configured peer. This patch ensures that the correct flags still remain set for the peer after unbind from its peer-group. --- bgpd/bgpd.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 07124a2679..dce10886bb 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -806,6 +806,17 @@ peer_global_config_reset (struct peer *peer) peer->keepalive = 0; peer->connect = 0; peer->v_connect = BGP_DEFAULT_CONNECT_RETRY; + + /* Reset some other configs back to defaults. */ + peer->v_start = BGP_INIT_START_TIMER; + peer->v_asorig = BGP_DEFAULT_ASORIGINATE; + peer->password = NULL; + peer->local_id = peer->bgp->router_id; + peer->v_holdtime = peer->bgp->default_holdtime; + peer->v_keepalive = peer->bgp->default_keepalive; + + /* Set back the CONFIG_NODE flag. */ + SET_FLAG (peer->flags, PEER_FLAG_CONFIG_NODE); } /* Check peer's AS number and determines if this peer is IBGP or EBGP */ -- 2.39.5