From 740404d48193dece09047608c7d8362c5a7536e8 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Thu, 21 Nov 2013 16:27:50 +0100 Subject: [PATCH] chunk: Fallback to recv() on Windows chunk_from_fd() when operating on socket --- src/libstrongswan/utils/chunk.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libstrongswan/utils/chunk.c b/src/libstrongswan/utils/chunk.c index dd84d5106..7958931d0 100644 --- a/src/libstrongswan/utils/chunk.c +++ b/src/libstrongswan/utils/chunk.c @@ -269,6 +269,12 @@ bool chunk_from_fd(int fd, chunk_t *out) while (TRUE) { len = read(fd, buf + total, bufsize - total); +#ifdef WIN32 + if (len == -1 && errno == EBADF) + { /* operating on a Winsock socket? */ + len = recv(fd, buf + total, bufsize - total, 0); + } +#endif if (len < 0) { free(buf);