summaryrefslogtreecommitdiff
path: root/bgpd/bgp_fsm.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2023-08-25 10:03:14 -0400
committerDonald Sharp <sharpd@nvidia.com>2023-08-25 10:03:14 -0400
commit8dd97a7404255d77115182aa4a2bd7cd58fcd9e3 (patch)
tree073d620482fb6a1746054a44dbcba4a299180b5a /bgpd/bgp_fsm.c
parent420b8ed54000c6491d5b11f5de796ebe84d4b0ae (diff)
bgpd: bgp_event_update mixes enum's with a non-enum
Straighten out the code to not mix the two. Especially since bgp was assigning non enum values to the enum. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'bgpd/bgp_fsm.c')
-rw-r--r--bgpd/bgp_fsm.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c
index 63e9fa7bca..233eab9b71 100644
--- a/bgpd/bgp_fsm.c
+++ b/bgpd/bgp_fsm.c
@@ -2614,13 +2614,11 @@ int bgp_event_update(struct peer *peer, enum bgp_fsm_events event)
{
enum bgp_fsm_status next;
enum bgp_fsm_state_progress ret = 0;
+ int fsm_result = FSM_PEER_NOOP;
struct peer *other;
int passive_conn = 0;
int dyn_nbr;
- /* default return code */
- ret = FSM_PEER_NOOP;
-
other = peer->doppelganger;
passive_conn =
(CHECK_FLAG(peer->sflags, PEER_STATUS_ACCEPT_PEER)) ? 1 : 0;
@@ -2651,7 +2649,7 @@ int bgp_event_update(struct peer *peer, enum bgp_fsm_events event)
/* The case when doppelganger swap accurred in
bgp_establish.
Update the peer pointer accordingly */
- ret = FSM_PEER_TRANSFERRED;
+ fsm_result = FSM_PEER_TRANSFERRED;
peer = other;
}
@@ -2666,8 +2664,8 @@ int bgp_event_update(struct peer *peer, enum bgp_fsm_events event)
* Opting for TRANSFERRED since transfer implies
* session establishment.
*/
- if (ret != FSM_PEER_TRANSFERRED)
- ret = FSM_PEER_TRANSITIONED;
+ if (fsm_result != FSM_PEER_TRANSFERRED)
+ fsm_result = FSM_PEER_TRANSITIONED;
}
/* Make sure timer is set. */
@@ -2698,10 +2696,10 @@ int bgp_event_update(struct peer *peer, enum bgp_fsm_events event)
bgp_fsm_change_status(peer, Idle);
bgp_timer_set(peer);
}
- ret = FSM_PEER_STOPPED;
+ fsm_result = FSM_PEER_STOPPED;
}
- return ret;
+ return fsm_result;
}
/* BGP GR Code */