summaryrefslogtreecommitdiffstats
path: root/ext/socket
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-02-09 07:34:56 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-02-09 07:34:56 +0000
commitead7ae9ba8a7941f31413fe06a727a5cb6b75167 (patch)
tree342d1d263016d18b48b4d1c0355efad8d54c6ec0 /ext/socket
parent9b739655594db0f5e5ba1ea71b696249232d06f7 (diff)
downloadruby-ead7ae9ba8a7941f31413fe06a727a5cb6b75167.tar.gz
ruby-ead7ae9ba8a7941f31413fe06a727a5cb6b75167.tar.xz
ruby-ead7ae9ba8a7941f31413fe06a727a5cb6b75167.zip
* ext/socket/socket.c (wait_connectable): fixed wrong condition.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@7931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket')
-rw-r--r--ext/socket/socket.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index 2ffa84b29..53d4506b7 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -825,8 +825,11 @@ wait_connectable(fd)
else if (FD_ISSET(fd, &fds_e)) {
sockerrlen = sizeof(sockerr);
if (getsockopt(fd, SOL_SOCKET, SO_ERROR, (void *)&sockerr,
- &sockerrlen))
+ &sockerrlen) == 0) {
+ if (sockerr == 0)
+ continue; /* workaround for winsock */
errno = sockerr;
+ }
return -1;
}
}