diff options
Diffstat (limited to 'bgpd/bgp_fsm.c')
-rw-r--r-- | bgpd/bgp_fsm.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c index 475d2cbf..a3d7f651 100644 --- a/bgpd/bgp_fsm.c +++ b/bgpd/bgp_fsm.c @@ -1602,7 +1602,12 @@ bgp_fsm_event(bgp_connection connection, bgp_fsm_event_t event) if ((connection->except != bgp_session_null_event) && (session != NULL)) { - /* Some exceptions are not reported to the Routeing Engine */ + /* Some exceptions are not reported to the Routeing Engine + * + * In particular: eDiscard and eCollision -- so the only time the + * connection->state will be Stopping is when the session is being + * stopped. (eDiscard and eCollision go quietly to Stopping !) + */ if (connection->except <= bgp_session_max_event) bgp_session_event(session, connection->except, connection->notification, @@ -2457,8 +2462,6 @@ bgp_fsm_state_change(bgp_connection connection, bgp_fsm_state_t new_state) connection->session = NULL ; connection->p_mutex = NULL ; - session->state = bgp_session_sStopped ; - break ; default: |