From 12e7f65ab9b6a14b3d59094f4d305b3150e0e7b7 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 10 Sep 2023 18:49:47 +0000 Subject: sock_for_fd: drop 1.8/1.9/2.x/3.0-specific hacks The generic version works for all Rubies --- ext/kgio/sock_for_fd.h | 58 +------------------------------------------------- 1 file changed, 1 insertion(+), 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 -#ifdef HAVE_RUBY_IO_H -# include -#else -# include -# include -#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 */ -- cgit v1.2.3-24-ge0c7