aboutsummaryrefslogtreecommitdiff
path: root/sockutils.c
diff options
context:
space:
mode:
Diffstat (limited to 'sockutils.c')
-rw-r--r--sockutils.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sockutils.c b/sockutils.c
index 4bb97a71..7ed7d298 100644
--- a/sockutils.c
+++ b/sockutils.c
@@ -838,6 +838,7 @@ int sock_bufferize(const char *buffer, int size, char *tempbuf, int *offset, int
int sock_recv(SOCKET sock, void *buffer, size_t size, int flags,
char *errbuf, int errbuflen)
{
+ int recv_flags = 0;
char *bufp = buffer;
int remaining;
ssize_t nread;
@@ -858,6 +859,9 @@ int sock_recv(SOCKET sock, void *buffer, size_t size, int flags,
return -1;
}
+ if (flags & SOCK_MSG_PEEK)
+ recv_flags |= MSG_PEEK;
+
bufp = (char *) buffer;
remaining = (int) size;
@@ -866,7 +870,7 @@ int sock_recv(SOCKET sock, void *buffer, size_t size, int flags,
* Win32.
*/
for (;;) {
- nread = recv(sock, bufp, remaining, 0);
+ nread = recv(sock, bufp, remaining, recv_flags);
if (nread == -1)
{