From ce6affa4925c1f98be6aa0839a33e7e422dc3328 Mon Sep 17 00:00:00 2001
From: sdemeesterde <samuel.demeester@student.uclouvain.be>
Date: Fri, 22 Apr 2022 15:22:51 +0200
Subject: [PATCH] sender now discard FEC/DATA pkt

---
 src/packet_interface.c | 2 +-
 src/packet_interface.h | 1 +
 src/sender_utils.c     | 7 +++++++
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/packet_interface.c b/src/packet_interface.c
index 7811f7b..a255a01 100644
--- a/src/packet_interface.c
+++ b/src/packet_interface.c
@@ -124,7 +124,7 @@ pkt_status_code pkt_decode_data_fec(const char *data, const size_t len, pkt_t *p
 pkt_status_code pkt_decode(const char *data, const size_t len, pkt_t *pkt)
 {
     ptypes_t type = ((data[0]) & TYPE_MASK) >> TYPE_SHIFT; 
-    if ( type == PTYPE_ACK || type == PTYPE_NACK)
+    if (type == PTYPE_ACK || type == PTYPE_NACK)
     {
         return pkt_decode_ack_nack(data, len, pkt);
     } else
diff --git a/src/packet_interface.h b/src/packet_interface.h
index 7428389..930f455 100644
--- a/src/packet_interface.h
+++ b/src/packet_interface.h
@@ -10,6 +10,7 @@
 #include <stdio.h>  /* ssize_t */
 #include <zlib.h>
 
+#include "log.h"
 
 /* Taille maximale permise pour le payload */
 #define MAX_PAYLOAD_SIZE 512
diff --git a/src/sender_utils.c b/src/sender_utils.c
index d80d533..18acddf 100644
--- a/src/sender_utils.c
+++ b/src/sender_utils.c
@@ -123,6 +123,13 @@ int handle_returning_ack_nack(sender_state_t *state, int socket_fd)
     uint8_t r_window  = pkt_get_window(pkt);
     pkt_del(pkt);
 
+    if (pkt_type != PTYPE_ACK && pkt_type != PTYPE_NACK)
+    {
+        state->stats->packet_ignored++;
+        DEBUG("The sender has received a pkt with the type PTYPE_ACK or PTYPE_NACK so it discard it !");
+        return 0;
+    }
+
     // Handling NACK:
     if (pkt_type == PTYPE_NACK) 
     {
-- 
GitLab