From 194b0c8c74f39061ebb70daaa2bcb7c26cc4f86b Mon Sep 17 00:00:00 2001 From: sdemeesterde <samuel.demeester@student.uclouvain.be> Date: Mon, 4 Apr 2022 19:14:26 +0200 Subject: [PATCH] fix sender --- src/sender_utils.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sender_utils.c b/src/sender_utils.c index 08b6b43..db31c72 100644 --- a/src/sender_utils.c +++ b/src/sender_utils.c @@ -151,7 +151,8 @@ int handle_returning_ack_nack(sender_state_t *state, int socket_fd) state->r_window_size = r_window; uint8_t upper_bound = (place_last_ack + 1) % WINDOW_SIZE; // The oldest seqnum sended - while (state->tail != upper_bound) + // A do while is necessary here in case we want to make a full revolution (ack from 1 to 1 not included for example) + do { pkt_t *n_pkt = state->buffer[state->tail]; seqnum = pkt_get_seqnum(n_pkt); @@ -162,7 +163,7 @@ int handle_returning_ack_nack(sender_state_t *state, int socket_fd) state->s_window_size++; state->tail = (state->tail + 1) % WINDOW_SIZE; - } + } while (state->tail != upper_bound); // Send back the asked ACK if there is one to send back if (place_last_nack != OUT_OFF_WINDOW) -- GitLab