From: Martin Willi Date: Thu, 27 Nov 2014 17:15:45 +0000 (+0100) Subject: windows: Properly set errno for read/write functions using Winsock X-Git-Tag: 5.2.2dr1~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=02fd29acc14630a553ec67f008865859e30859e9;p=thirdparty%2Fstrongswan.git windows: Properly set errno for read/write functions using Winsock --- diff --git a/src/libstrongswan/utils/compat/windows.c b/src/libstrongswan/utils/compat/windows.c index e2be64d50d..1f22ffa028 100644 --- a/src/libstrongswan/utils/compat/windows.c +++ b/src/libstrongswan/utils/compat/windows.c @@ -651,8 +651,8 @@ ssize_t windows_read(int fd, void *buf, size_t count) { ssize_t ret; - ret = recv(fd, buf, count, 0); - if (ret == -1 && WSAGetLastError() == WSAENOTSOCK) + ret = wserr(recv(fd, buf, count, 0)); + if (ret == -1 && errno == ENOTSOCK) { ret = read(fd, buf, count); } @@ -667,8 +667,8 @@ ssize_t windows_write(int fd, void *buf, size_t count) { ssize_t ret; - ret = send(fd, buf, count, 0); - if (ret == -1 && WSAGetLastError() == WSAENOTSOCK) + ret = wserr(send(fd, buf, count, 0)); + if (ret == -1 && errno == ENOTSOCK) { ret = write(fd, buf, count); }