summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorYoann Vandoorselaere <yoann.v@prelude-ids.com>2008-09-11 18:09:17 +0200
committerPaolo Bonzini <bonzini@gnu.org>2008-09-11 18:09:17 +0200
commit2075aae40d2ce87695428cfbe1c5f00ec27e1f55 (patch)
tree863dbdf3ecc87fd7253982e10e7537d9482deca0 /lib
parent2493eaad3d7c73cf929ec072ae0807fee9afe8e5 (diff)
downloadgnulib-2075aae40d2ce87695428cfbe1c5f00ec27e1f55.tar.gz
poll: fix polling unconnected server sockets on WIN32
2008-09-11 Yoann Vandoorselaere <yoann.v@prelude-ids.com> * lib/poll.c (poll): Fix polling unconnected server sockets on WIN32.
Diffstat (limited to 'lib')
-rw-r--r--lib/poll.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/poll.c b/lib/poll.c
index 4a62dc1df1..e0714f09a9 100644
--- a/lib/poll.c
+++ b/lib/poll.c
@@ -180,6 +180,12 @@ poll (pfd, nfd, timeout)
#else
char data[64];
r = recv (pfd[i].fd, data, sizeof (data), MSG_PEEK);
+
+# ifdef WIN32
+ if (r < 0 && GetLastError() == 10057) /* server socket */
+ socket_errno = ENOTCONN;
+ else
+# endif
socket_errno = (r < 0) ? errno : 0;
#endif
if (r == 0)