summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_peer.c3
-rw-r--r--bgpd/bgpd.c4
2 files changed, 4 insertions, 3 deletions
diff --git a/bgpd/bgp_peer.c b/bgpd/bgp_peer.c
index ff2b8364..eeb39912 100644
--- a/bgpd/bgp_peer.c
+++ b/bgpd/bgp_peer.c
@@ -1019,7 +1019,8 @@ bgp_peer_disable(bgp_peer peer, bgp_notify notification)
/* and the peer */
bgp_peer_stop(peer);
- peer_change_status (peer, bgp_peer_sClearing);
+ if (peer->state == bgp_peer_sEstablished)
+ peer_change_status (peer, bgp_peer_sClearing);
}
/* Called after event occurred, this function change status and reset
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index 0604da8c..f05e91f3 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -2008,8 +2008,8 @@ peer_flag_modify_action (struct peer *peer, u_int32_t flag)
if (CHECK_FLAG (peer->sflags, PEER_STATUS_NSF_WAIT))
peer_nsf_stop (peer);
- bgp_peer_disable(peer, bgp_notify_new(BGP_NOTIFY_CEASE,
- BGP_NOTIFY_CEASE_ADMIN_SHUTDOWN, 0));
+ bgp_notify_send_with_data_disable(peer, BGP_NOTIFY_CEASE,
+ BGP_NOTIFY_CEASE_ADMIN_SHUTDOWN, NULL, 0);
}
else
{