From: Donald Sharp Date: Wed, 16 Aug 2017 02:35:27 +0000 (-0400) Subject: eigrpd: Cleanup eigrp_get_fsm_event X-Git-Tag: frr-4.0-dev~406^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=9a8d52a4953716882dff3bde18640e2241631463;p=matthieu%2Ffrr.git eigrpd: Cleanup eigrp_get_fsm_event Make this function a bit more legible Signed-off-by: Donald Sharp --- diff --git a/eigrpd/eigrp_fsm.c b/eigrpd/eigrp_fsm.c index f697577c62..8e2a26447e 100644 --- a/eigrpd/eigrp_fsm.c +++ b/eigrpd/eigrp_fsm.c @@ -215,32 +215,31 @@ int eigrp_get_fsm_event(struct eigrp_fsm_action_message *msg) * move to active state * dependently if it was query from successor */ - else { - if (msg->packet_type == EIGRP_OPC_QUERY) { - return EIGRP_FSM_EVENT_Q_FCN; - } else { - return EIGRP_FSM_EVENT_NQ_FCN; - } + if (msg->packet_type == EIGRP_OPC_QUERY) { + return EIGRP_FSM_EVENT_Q_FCN; + } else { + return EIGRP_FSM_EVENT_NQ_FCN; } break; } case EIGRP_FSM_STATE_ACTIVE_0: { if (msg->packet_type == EIGRP_OPC_REPLY) { + struct eigrp_neighbor_entry *head = + (struct eigrp_neighbor_entry *) + entry->prefix->entries->head->data; + listnode_delete(prefix->rij, entry->adv_router); - if (prefix->rij->count) { + if (prefix->rij->count) return EIGRP_FSM_KEEP_STATE; - } else { - zlog_info("All reply received\n"); - if (((struct eigrp_neighbor_entry *) - prefix->entries->head->data) - ->reported_distance - < prefix->fdistance) { - return EIGRP_FSM_EVENT_LR_FCS; - } - return EIGRP_FSM_EVENT_LR_FCN; + zlog_info("All reply received\n"); + if (head->reported_distance + < prefix->fdistance) { + return EIGRP_FSM_EVENT_LR_FCS; } + + return EIGRP_FSM_EVENT_LR_FCN; } else if (msg->packet_type == EIGRP_OPC_QUERY && (entry->flags & EIGRP_NEIGHBOR_ENTRY_SUCCESSOR_FLAG)) { @@ -279,14 +278,16 @@ int eigrp_get_fsm_event(struct eigrp_fsm_action_message *msg) } case EIGRP_FSM_STATE_ACTIVE_2: { if (msg->packet_type == EIGRP_OPC_REPLY) { + struct eigrp_neighbor_entry *head = + (struct eigrp_neighbor_entry *) + prefix->entries->head->data; + listnode_delete(prefix->rij, entry->adv_router); if (prefix->rij->count) { return EIGRP_FSM_KEEP_STATE; } else { zlog_info("All reply received\n"); - if (((struct eigrp_neighbor_entry *) - prefix->entries->head->data) - ->reported_distance + if (head->reported_distance < prefix->fdistance) { return EIGRP_FSM_EVENT_LR_FCS; }