aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--ext/socket/socket.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 18a1547934..3b840a7aad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Wed Feb 9 16:33:05 2005 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * ext/socket/socket.c (wait_connectable): fixed wrong condition.
+
Wed Feb 9 14:42:28 2005 URABE Shyouhei <shyouhei@ice.uec.ac.jp>
* eval.c (scope_dup): add volatile not to optimize tbl.
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;
}
}