From a0b22b1a39ec127d12689de200faf4addc2b5300 Mon Sep 17 00:00:00 2001 From: nagachika Date: Thu, 3 Nov 2011 13:14:48 +0000 Subject: * ext/socket/init.c (rsock_socket): set close-on-exec flag when SOCK_CLOEXEC is not available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/socket/init.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'ext') diff --git a/ext/socket/init.c b/ext/socket/init.c index ad25ccb080..92cca7c057 100644 --- a/ext/socket/init.c +++ b/ext/socket/init.c @@ -270,8 +270,16 @@ rsock_socket(int domain, int type0, int proto) fd = socket(domain, type, proto); } } +#ifdef SOCK_CLOEXEC if (0 <= fd) - rb_update_max_fd(fd); + if (try_sock_cloexec) + rb_update_max_fd(fd); + else + rb_fd_fix_cloexec(fd); +#else + if (0 <= fd) + rb_fd_fix_cloexec(fd); +#endif return fd; } -- cgit v1.2.3