summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ext/socket/socket.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index cf84bf89c..3c1ba5d4b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri Dec 10 08:39:27 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ext/socket/socket.c (sock_listen): get OpenFile just before calling
+ listen(2). fixed: [ruby-dev:25149]
+
Thu Dec 9 17:00:00 2004 Akiyoshi, Masamichi <akiyoshi@hp.com>
* ext/socket/socket.c, ext/socket/getaddrinfo.c: port to VMS
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index c2f5dfdbb..09355b473 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -1937,10 +1937,12 @@ sock_listen(sock, log)
VALUE sock, log;
{
OpenFile *fptr;
+ int backlog;
rb_secure(4);
+ backlog = NUM2INT(log);
GetOpenFile(sock, fptr);
- if (listen(fileno(fptr->f), NUM2INT(log)) < 0)
+ if (listen(fileno(fptr->f), backlog) < 0)
rb_sys_fail("listen(2)");
return INT2FIX(0);