diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2011-01-27 14:26:42 +0100 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2011-01-27 14:26:42 +0100 |
| commit | bb2a0902e047e90a857bf189ad057662759e3a40 (patch) | |
| tree | 7c512dfe035025ccf8a3016b2e348f8bd6f0ce2a | |
| parent | 7c5a0f2179cad03692ce3b47328a91e4817567fc (diff) | |
specify MSG_WAITALL flag on recv operations to really get requested amount of data
| -rw-r--r-- | src/net/comm.c | 6 |
1 files changed, 3 insertions, 3 deletions
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); |
