From d5a03758d2679824206c7ce779a1d8c7cef61a4d Mon Sep 17 00:00:00 2001
From: sdemeesterde <samuel.demeester@student.uclouvain.be>
Date: Mon, 21 Mar 2022 01:00:02 +0100
Subject: [PATCH] not so bad sender

---
 headers/sender_utils.h      |   2 +-
 log.txt                     | Bin 3683 -> 8169 bytes
 src/sender.c                |   2 +-
 src/sender_utils.c          |   9 +++++++--
 test_files/long_message.txt |   9 ++++++++-
 5 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/headers/sender_utils.h b/headers/sender_utils.h
index e6b3359..13508cc 100644
--- a/headers/sender_utils.h
+++ b/headers/sender_utils.h
@@ -42,7 +42,7 @@ int handle_returning_ack_nack(sender_state_t *state, int socket_fd);
 
 int loop_over_timers(sender_state_t *state, int socket_fd);
 
-int read_and_send();
+int read_and_send(sender_state_t *state, int sending_fd, int socket_fd);
 
 
 #endif
\ No newline at end of file
diff --git a/log.txt b/log.txt
index c46e8c3e7e45a68de72ac17adf3281936e3f1060..e595e4d22b0f578cbb4b7238198157c9e8368071 100644
GIT binary patch
delta 1443
zcmZ{kzi!h|6vl}dz^Ni6#DZw0PnDocsjeO8+GYSz35iY}idYa5j{me#lekJ;N+(aO
z2nag^FMz}&urcxqoe(?(-#Ir)TO^XyxxQ|G=R4my=bo+pdi3>4s~v`kwRc{aQTzR^
zS=M^!<*7;I)b!2lPv`cx@2#_y51ng#vVJ%4WAsn!Vv2H7jc`;A#&t1)c@vf8rC&9E
zVialkdI0ot7=tW@@ny061QvdPAcvp9@M(%LhE3qT#1;HNi&yu)hnu*MRkZnjiUHcj
z_yP_LdKT7)Ef6Jg8_KnT&0tGJeAbiQD3AsJ&jX$##TcgmcKA0$h1V#!n(&$mIS{f9
zMF_Dr5`eYJC}DHu@e%Q47jhdCoKw~q`vjF}CZvwIJmvQ>wzzsM<gSpT?qveueGNpQ
z#*!4GMW6`YbO{0u8Kc4pcXqI$Ax;Dws$>F~Ct=M6<qSuuluZL7mz1t4+pC!L;ZpZh
zMHi^KGg3=P?kU+<4+u|$A%4(bUwP`Uvx@r?Ax7h+RM;n{=J$}c*2)uy!1aM>wn}zC
zr_Geiq+{h5+6tP4#B$NKmY!5<Oz=J-HJxqK2!Tq#l0gWLOd~eCy0M?MP;^G*E$hZu
zOd(t3)q^Ld9%#KLT)E0^Q2da0eMgQ(vM5?ebLq;C>q0s!(VBUYg8;p*^xS#kqB5nu
z(ic+Lb?k}eWNxz)<(ig#AZ<-Y*}7EfGT?1FS522io>(F#h{r<$fu<&3RFj;Z+q|3t
z7sU-s<fely5=ukcu0&Lu-9ShL8I~jVN`;)VGe#n~uV6OBV#uT+TyIPNsq3zKE-puf
z1MUsx<Cbdr&Soi}M3ZuooC#SD1D#qjsYr_FhM1LOAg-yG;T9){*TyyxQ;Nf`()N{_
zb8Ax%4w7>rvm_*NA|ze4HV=??VY={hczar(V>R<9zThg>X4{?hmOm>xTfBbi>|S@L
wU69RwcQ*ey)2u<lN@a-IQ=c!KVXyF!Lf+zk=j^+c8_x!#B1d&xZ|Ujz7gd-ylK=n!

delta 127
zcmaE9|5#>&D<hY&g@L)TbhJS(*94KtYk8F>^NGlCrkbaknI$Es8BDGfmYmGXC$Kq2
zq>g*?BO&3*DZEaT&4q0_AWDELYJ_$43=|BIkZFoSnvsHmse-Yo0_S`M1~`mW_@uz9
KU^@A<yc___S|CCI

diff --git a/src/sender.c b/src/sender.c
index d8751fd..593e541 100644
--- a/src/sender.c
+++ b/src/sender.c
@@ -139,7 +139,7 @@ int main(int argc, char **argv) {
         }
         else if ( !(sending_file_read_done) && (pfd->revents & POLLOUT) )
         {
-            DEBUG("The sender will send a pkt on the socket");
+            DEBUG("The sender will send a pkt on the socket, the current window size is: %d", state->s_window_size);
             sending_file_read_done = read_and_send(state, sending_fd, socket_fd);
             if (sending_file_read_done == -1)
             {
diff --git a/src/sender_utils.c b/src/sender_utils.c
index e30695c..69673a2 100644
--- a/src/sender_utils.c
+++ b/src/sender_utils.c
@@ -120,7 +120,12 @@ int read_and_send(sender_state_t *state, int sending_fd, int socket_fd)
 
     char packet_to_be_sent[PKT_MAX_LEN];
     size_t len = PKT_MAX_LEN;
-    if (pkt_encode(pkt, packet_to_be_sent, &len) != PKT_OK) return -1;
+    pkt_status_code pkt_status = pkt_encode(pkt, packet_to_be_sent, &len);
+    if (pkt_status != PKT_OK) 
+    {
+        DEBUG("pkt_encode for a PTYPE_DATA failed with status: %d", pkt_status);
+        return -1;
+    }
     
     ssize_t sent = send(socket_fd, packet_to_be_sent, len, 0);
     if (sent == -1) return -1;
@@ -140,6 +145,6 @@ int read_and_send(sender_state_t *state, int sending_fd, int socket_fd)
     off_t old_position = lseek(sending_fd, 0, SEEK_CUR);
     off_t end_position = lseek(sending_fd, 0, SEEK_END);
     // put back the reader cursor
-    lseek(sending_fd, 0, SEEK_SET);
+    lseek(sending_fd, old_position, SEEK_SET);
     return old_position == end_position;
 }
diff --git a/test_files/long_message.txt b/test_files/long_message.txt
index 2f8c6c6..f531738 100644
--- a/test_files/long_message.txt
+++ b/test_files/long_message.txt
@@ -4,4 +4,11 @@ network course. But when you manage to thrive throgh tough times then sweet thin
 ahead. So good luck have a nice day of testing and remember : Tough Times Never Last.
 
 PS: Drink a beer when you pass the test. Share your knowledge to others, computer 
-science isn't a field for selfishness. If you want to switch to Law, Economy, some shit
\ No newline at end of file
+science isn't a field for selfishness. If you want to switch to Law, Economy, some shit
+
+Hi Vany I love reading from you. As you know I'm working sometime a bit late in the night.
+In a few hour you'll be in th famous "Salle Intel" to be really productive as you are.
+
+Best regards,
+
+Samuel
\ No newline at end of file
-- 
GitLab