summaryrefslogtreecommitdiff
path: root/eigrpd/eigrp_query.c
diff options
context:
space:
mode:
Diffstat (limited to 'eigrpd/eigrp_query.c')
-rw-r--r--eigrpd/eigrp_query.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/eigrpd/eigrp_query.c b/eigrpd/eigrp_query.c
index 88a592e6c9..caa37870a1 100644
--- a/eigrpd/eigrp_query.c
+++ b/eigrpd/eigrp_query.c
@@ -165,7 +165,7 @@ void eigrp_send_query(struct eigrp_interface *ei)
struct listnode *node, *nnode, *node2, *nnode2;
struct eigrp_neighbor *nbr;
struct eigrp_prefix_entry *pe;
- char has_tlv;
+ bool has_tlv = false;
bool ep_saved = false;
ep = eigrp_packet_new(ei->ifp->mtu, NULL);
@@ -180,16 +180,16 @@ void eigrp_send_query(struct eigrp_interface *ei)
length += eigrp_add_authTLV_MD5_to_stream(ep->s, ei);
}
- has_tlv = 0;
for (ALL_LIST_ELEMENTS(ei->eigrp->topology_changes_internalIPV4, node,
nnode, pe)) {
- if (pe->req_action & EIGRP_FSM_NEED_QUERY) {
- length += eigrp_add_internalTLV_to_stream(ep->s, pe);
- for (ALL_LIST_ELEMENTS(ei->nbrs, node2, nnode2, nbr)) {
- if (nbr->state == EIGRP_NEIGHBOR_UP) {
- listnode_add(pe->rij, nbr);
- has_tlv = 1;
- }
+ if (!(pe->req_action & EIGRP_FSM_NEED_QUERY))
+ continue;
+
+ length += eigrp_add_internalTLV_to_stream(ep->s, pe);
+ for (ALL_LIST_ELEMENTS(ei->nbrs, node2, nnode2, nbr)) {
+ if (nbr->state == EIGRP_NEIGHBOR_UP) {
+ listnode_add(pe->rij, nbr);
+ has_tlv = true;;
}
}
}
@@ -212,6 +212,7 @@ void eigrp_send_query(struct eigrp_interface *ei)
/*This ack number we await from neighbor*/
ep->sequence_number = ei->eigrp->sequence_number;
+ ei->eigrp->sequence_number++;
for (ALL_LIST_ELEMENTS(ei->nbrs, node2, nnode2, nbr)) {
if (nbr->state == EIGRP_NEIGHBOR_UP) {