diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-02-09 07:34:56 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-02-09 07:34:56 +0000 |
commit | 816fa8d14d416d1a767a0fc762c48f215a8af4ed (patch) | |
tree | 342d1d263016d18b48b4d1c0355efad8d54c6ec0 /ext/socket | |
parent | bc983c9f3e06e8602d452d699c76da93a6ec4087 (diff) | |
download | ruby-816fa8d14d416d1a767a0fc762c48f215a8af4ed.tar.gz |
* ext/socket/socket.c (wait_connectable): fixed wrong condition.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket')
-rw-r--r-- | ext/socket/socket.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/socket/socket.c b/ext/socket/socket.c index 2ffa84b296..53d4506b79 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; } } |