From 88f161fbb4baa398a929a6e294f28a16a6b2c3d6 Mon Sep 17 00:00:00 2001 From: Razvan Deaconescu Date: Thu, 11 Nov 2010 17:55:17 +0200 Subject: [PATCH] test-socket-signal: update send_buffer/receive_buffer functions in sender/receiver --- Utils/test-socket-signal/receiver.c | 16 +++++++++++++++- Utils/test-socket-signal/sender.c | 22 ++++++++++++++-------- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/Utils/test-socket-signal/receiver.c b/Utils/test-socket-signal/receiver.c index d519b7f..f046a46 100644 --- a/Utils/test-socket-signal/receiver.c +++ b/Utils/test-socket-signal/receiver.c @@ -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) diff --git a/Utils/test-socket-signal/sender.c b/Utils/test-socket-signal/sender.c index c69a062..65abfe9 100644 --- a/Utils/test-socket-signal/sender.c +++ b/Utils/test-socket-signal/sender.c @@ -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; } -- 2.20.1