test-socket-signal: update send_buffer/receive_buffer functions in sender/receiver
authorRazvan Deaconescu <razvan.deaconescu@cs.pub.ro>
Thu, 11 Nov 2010 15:55:17 +0000 (17:55 +0200)
committerRazvan Deaconescu <razvan.deaconescu@cs.pub.ro>
Thu, 11 Nov 2010 15:55:17 +0000 (17:55 +0200)
Utils/test-socket-signal/receiver.c
Utils/test-socket-signal/sender.c

index d519b7f..f046a46 100644 (file)
@@ -99,7 +99,21 @@ static void fill_send_buffer(void)
 
 static ssize_t send_buffer(int sockfd)
 {
-       return send(sockfd, snd_buf, PACKET_SIZE, 0);
+       ssize_t nbytes = 0;
+       ssize_t n;
+
+       while (nbytes < (ssize_t) PACKET_SIZE) {
+               printf("before send\n");
+               n = send(sockfd, rcv_buf, PACKET_SIZE - nbytes, 0);
+               printf("after send\n");
+               DIE(n < 0, "send");
+
+               if (n == 0)
+                       break;
+               nbytes += n;
+       }
+
+       return nbytes;
 }
 
 static ssize_t receive_buffer(int sockfd)
index c69a062..65abfe9 100644 (file)
@@ -94,17 +94,21 @@ static void fill_send_buffer(void)
 
 static ssize_t send_buffer(int sockfd)
 {
+       ssize_t nbytes = 0;
        ssize_t n;
 
-       printf("before send\n");
-       n = send(sockfd, snd_buf, PACKET_SIZE, 0);
-       printf("after send\n");
-       if (n < 0)
-               perror("send");
+       while (nbytes < (ssize_t) PACKET_SIZE) {
+               printf("before send\n");
+               n = send(sockfd, rcv_buf, PACKET_SIZE - nbytes, 0);
+               printf("after send\n");
+               DIE(n < 0, "send");
 
-       printf ("n = %ld, send\n", n);
+               if (n == 0)
+                       break;
+               nbytes += n;
+       }
 
-       return n;
+       return nbytes;
 }
 
 static ssize_t receive_buffer(int sockfd)
@@ -114,7 +118,9 @@ static ssize_t receive_buffer(int sockfd)
 
        while (nbytes < (ssize_t) PACKET_SIZE) {
                n = recv(sockfd, rcv_buf, PACKET_SIZE - nbytes, 0);
-               if (n <= 0)
+               DIE(n < 0, "recv");
+
+               if (n == 0)
                        break;
                nbytes += n;
        }