From bb2a0902e047e90a857bf189ad057662759e3a40 Mon Sep 17 00:00:00 2001 From: Reiner Herrmann Date: Thu, 27 Jan 2011 14:26:42 +0100 Subject: specify MSG_WAITALL flag on recv operations to really get requested amount of data --- src/net/comm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/net/comm.c b/src/net/comm.c index 0c7d8e9..7a67c27 100644 --- a/src/net/comm.c +++ b/src/net/comm.c @@ -11,7 +11,7 @@ bool net_recv(const int sock, const msg_type_t type) { msg_t m; bool result; - ssize_t len = recv(sock, &m.hdr, sizeof(msg_header_t), MSG_PEEK); // just peek into packet to determine message header + ssize_t len = recv(sock, &m.hdr, sizeof(msg_header_t), MSG_PEEK|MSG_WAITALL); // just peek into packet to determine message header assert(len != -1); @@ -22,8 +22,8 @@ bool net_recv(const int sock, const msg_type_t type) } m.payload = malloc(m.hdr.payload_length); // Allocate space for message payload - recv(sock, &m.hdr, sizeof(msg_header_t), 0); // Remove message header from socket - recv(sock, m.payload, m.hdr.payload_length, 0);// And then receive the payload + recv(sock, &m.hdr, sizeof(msg_header_t), MSG_WAITALL); // Remove message header from socket + recv(sock, m.payload, m.hdr.payload_length, MSG_WAITALL);// And then receive the payload //printf("net_recv: received msg type %d with payload length %d\n", m.hdr.type, m.hdr.payload_length); -- cgit v1.2.3