about summary refs log tree commit homepage
path: root/ext/raindrops/linux_inet_diag.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/raindrops/linux_inet_diag.c')
-rw-r--r--ext/raindrops/linux_inet_diag.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/raindrops/linux_inet_diag.c b/ext/raindrops/linux_inet_diag.c
index 2a2360c..e1ae62a 100644
--- a/ext/raindrops/linux_inet_diag.c
+++ b/ext/raindrops/linux_inet_diag.c
@@ -627,8 +627,8 @@ static VALUE tcp_listener_stats(int argc, VALUE *argv, VALUE self)
         args.iov[2].iov_len = OPLEN;
         args.iov[2].iov_base = alloca(page_size);
         args.table = NULL;
-        if (NIL_P(sock))
-                sock = rb_funcall(cIDSock, id_new, 0);
+        sock = NIL_P(sock) ? rb_funcall(cIDSock, id_new, 0)
+                        : rb_io_get_io(sock);
         args.fd = my_fileno(sock);
 
         switch (TYPE(addrs)) {