about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <bofh@yhbt.net>2023-09-10 18:49:47 +0000
committerEric Wong <bofh@yhbt.net>2023-09-10 20:11:22 +0000
commit12e7f65ab9b6a14b3d59094f4d305b3150e0e7b7 (patch)
tree3155b2f398599044a02e26a097a4462c40f211f4
parent586ab4d80f44592914e5e0505ceeb630c68432f3 (diff)
downloadkgio-12e7f65ab9b6a14b3d59094f4d305b3150e0e7b7.tar.gz
The generic version works for all Rubies
-rw-r--r--ext/kgio/sock_for_fd.h58
1 files changed, 1 insertions, 57 deletions
diff --git a/ext/kgio/sock_for_fd.h b/ext/kgio/sock_for_fd.h
index 55f9ccb..cfec302 100644
--- a/ext/kgio/sock_for_fd.h
+++ b/ext/kgio/sock_for_fd.h
@@ -1,71 +1,15 @@
 #ifndef SOCK_FOR_FD_H
 #define SOCK_FOR_FD_H
 #include <ruby.h>
-#ifdef HAVE_RUBY_IO_H
-#  include <ruby/io.h>
-#else
-#  include <stdio.h>
-#  include <rubyio.h>
-#endif
 
-#if defined(MakeOpenFile) && \
-    defined(HAVE_RB_IO_T) && (HAVE_RB_IO_T == 1) && \
-    defined(HAVE_RB_IO_ASCII8BIT_BINMODE) && \
-    defined(HAVE_ST_FD) && \
-    defined(HAVE_ST_MODE)
-#  define SOCK_FOR_FD (19)
-#  define FMODE_NOREVLOOKUP 0x100
-#elif defined(MakeOpenFile) && \
-      (defined(OpenFile) || defined(HAVE_RB_IO_T)) && \
-      defined(HAVE_RB_FDOPEN) && \
-      defined(HAVE_ST_F) && \
-      defined(HAVE_ST_F2) && \
-      defined(HAVE_ST_MODE)
-#  define SOCK_FOR_FD (18)
-#else
-#  define SOCK_FOR_FD (-1)
-#endif
-
-#if SOCK_FOR_FD == 19  /* modeled after ext/socket/init.c */
-static VALUE sock_for_fd(VALUE klass, int fd)
-{
-        VALUE sock;
-        rb_io_t *fp;
-
-        rb_update_max_fd(fd); /* 1.9.3+ API */
-        sock = rb_obj_alloc(klass);
-        MakeOpenFile(sock, fp);
-        fp->fd = fd;
-        fp->mode = FMODE_READWRITE|FMODE_DUPLEX|FMODE_NOREVLOOKUP;
-        rb_io_ascii8bit_binmode(sock);
-        rb_io_synchronized(fp);
-        return sock;
-}
-#elif SOCK_FOR_FD == 18 /* modeled after init_sock() in ext/socket/socket.c */
-static VALUE sock_for_fd(VALUE klass, int fd)
-{
-        VALUE sock = rb_obj_alloc(klass);
-        OpenFile *fp;
-
-        MakeOpenFile(sock, fp);
-        fp->f = rb_fdopen(fd, "r");
-        fp->f2 = rb_fdopen(fd, "w");
-        fp->mode = FMODE_READWRITE;
-        rb_io_synchronized(fp);
-        return sock;
-}
-#else /* Rubinius, et al. */
 static ID id_for_fd;
 static VALUE sock_for_fd(VALUE klass, int fd)
 {
         return rb_funcall(klass, id_for_fd, 1, INT2NUM(fd));
 }
+
 static void init_sock_for_fd(void)
 {
         id_for_fd = rb_intern("for_fd");
 }
-#endif /* sock_for_fd */
-#if SOCK_FOR_FD > 0
-#  define init_sock_for_fd() for (;0;)
-#endif
 #endif /* SOCK_FOR_FD_H */