24692 Commits

Author SHA1 Message Date
naruse
cd3445ca6e * vsnprintf.c (BSD_vfprintf): support 'll' prefix.
* vsnprintf.c (__sfeof): rename to avoid the collision with NetBSD's
  one.

* vsnprintf.c (__sferror): ditto.

* vsnprintf.c (__sclearerr): ditto.

* vsnprintf.c (__sfileno): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33601 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-01 04:31:52 +00:00
akr
b7d397348e * internal.h (rb_maygvl_fd_fix_cloexec): change the visibility for
ext/socket.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33600 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-01 03:37:01 +00:00
akr
1bbae2431f add comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-01 03:04:53 +00:00
akr
c16f98ab0a * io.c (rb_maygvl_fd_fix_cloexec): renamed from fd_set_cloexec.
* internal.h (rb_maygvl_fd_fix_cloexec): declared.

* ext/socket/init.c (cloexec_accept): use rb_maygvl_fd_fix_cloexec.
  (rsock_s_accept_nonblock): use rb_update_max_fd.
  (rsock_s_accept): use rb_update_max_fd.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-01 03:04:03 +00:00
naruse
632f448827 On some platforms, object_id can be negative value like NetBSD.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33597 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-01 00:42:41 +00:00
akr
5dbc3d1e79 * ext/socket/init.c (cloexec_accept): new function to use accept4 if
available.
  (rsock_s_accept_nonblock): use cloexec_accept.
  (accept_blocking): ditto.

* ext/socket/extconf.rb: check accept4.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 23:26:19 +00:00
akr
24176a8d5d add comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33595 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 23:24:25 +00:00
akr
7ae60a6b0d * ext/socket/ancdata.c (nogvl_recvmsg_func): use MSG_CMSG_CLOEXEC if
available.

* ext/socket/unixsocket.c (recvmsg_blocking): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 22:32:49 +00:00
akr
ee5ae134dd * ext/socket/socket.c (rsock_socketpair): use SOCK_CLOEXEC if
available.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 21:01:18 +00:00
svn
17f068b6a6 * 2011-11-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 18:05:07 +00:00
usa
9b8aca6ae5 * ruby.c (load_file_internal): convert the encoding of load path if
needed by platform.  calling open() was replaced by rb_cloexec_open()
  at r33549, but the function expected UTF-8 pathname on Windows.
  (open() expected "locale" pathname.)
  reported by taco via IRC.

* ruby.c (load_file): change the type of the 2nd parameter to pass its
  encoding to load_file_internal().

* ruby.c (process_options, rb_load_file): follow above change.
  NOTE: we should pass encoding information to rb_load_file().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 18:05:03 +00:00
akr
8ce4a284e4 * ext/socket/socket.c (rsock_socketpair): extracted from
rsock_sock_s_socketpair.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 14:49:57 +00:00
akr
1a8fbff3db * ext/socket/init.c (rsock_socket): use SOCK_CLOEXEC if available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33589 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 14:38:50 +00:00
naruse
6a96646de2 Fix previous commit (r33586).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33588 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 13:50:32 +00:00
naruse
ca6311b0b5 * io.c (rb_cloexec_pipe): NetBSD 6.0 will support pipe2(2),
but its return value is -1 or larger than 0.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 13:21:03 +00:00
akr
a16c2745fe * ext/dbm/dbm.c (fdbm_initialize): use O_CLOEXEC if available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33586 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 13:07:26 +00:00
akr
1a70dfe6f4 * include/ruby/intern.h (rb_fd_fix_cloexec): renamed from
rb_fd_set_cloexec.

* io.c: follow the above renaming.

* ext/pty/pty.c: ditto.

* ext/socket/init.c: ditto.

* ext/socket/socket.c: ditto.

* ext/socket/ancdata.c: ditto.

* ext/socket/unixsocket.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 12:49:16 +00:00
akr
6533f070ba * lib/resolv.rb (Resolv::DNS): retry IO.select for premature wakeup.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 12:03:49 +00:00
akr
687c41dc4d * io.c (fd_set_cloexec): clear CLOEXEC flag for standard file
descriptors.
  (rb_cloexec_dup): use rb_cloexec_fcntl_dupfd.
  (rb_cloexec_fcntl_dupfd): use F_DUPFD_CLOEXEC if available.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 11:17:15 +00:00
akr
c4dd8ca7b3 * test/resolv/test_dns.rb: don't check maximum sleeped time.
ruby doesn't guarantee the maximum time because it is not a
  realtime application.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 10:15:27 +00:00
usa
b2a1af1547 * win32/win32.c (setfl): extract from fcntl().
* win32/win32.c (dupfd): new function to support F_DUPFD. base on a
  patch written by akr.

* win32/win32.c (fcntl): use above functions.

* include/ruby/win32.h (F_DUPFD): define. [experimental]

* include/ruby/win32.h (F_SETFL): change the value to correspond with
  other platforms.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 04:16:11 +00:00
akr
92a8bfacd9 * ext/pty/pty.c (get_device_once): use O_CLOEXEC for posix_openpt if
available.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 03:39:01 +00:00
akr
da5ae5544d * io.c (rb_cloexec_dup2): check oldfd == newfd at first.
pointed by KOSAKI Motohiro.  [ruby-dev:44713]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 03:07:26 +00:00
usa
bdc85361e4 * io.c (rb_cloexec_fcntl_dupfd): this function needs F_DUPFD.
* io.c (nogvl_io_cntl): use rb_cloexec_fcntl_dupfd() only if the
  platform has F_DUPFD.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 01:52:21 +00:00
luislavena
0bbb8e8975 * configure.in: check -fno-omit-frame-pointer acceptance and usage
under MinGW. [ruby-core:39957] [Bug #5407]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 15:51:33 +00:00
svn
64d4f3a45a * 2011-10-31
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 15:17:32 +00:00
akr
5c19f07700 * include/ruby/intern.h (rb_cloexec_fcntl_dupfd): declared.
* io.c (rb_cloexec_fcntl_dupfd): new function.
  (nogvl_io_cntl): use rb_cloexec_fcntl_dupfd.

* process.c (move_fds_to_avoid_crash): use rb_cloexec_fcntl_dupfd.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 15:17:27 +00:00
akr
e7f8c03818 * configure.in: check pipe2.
* io.c (rb_cloexec_pipe): use pipe2 if available.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 13:48:35 +00:00
akr
a3efca16a1 * ruby.c (fill_standard_fds): use fstat() instead of fcntl(F_GETFD)
for MinGW.  reported by Luis Lavena.  [ruby-core:40526] [Bug #5516]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 13:34:04 +00:00
akr
0d2a92e0b3 * include/ruby/intern.h (rb_cloexec_pipe): declared.
* io.c (rb_cloexec_pipe): new function.
  (rb_pipe): use rb_cloexec_pipe.

* thread_pthread.c (rb_thread_create_timer_thread): use
  rb_cloexec_pipe.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 12:13:05 +00:00
akr
6e0ed044b6 * io.c (rb_cloexec_dup): refine control flow.
(rb_cloexec_dup2): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 11:07:09 +00:00
akr
7c43d8523c * ruby.c (fill_standard_fds): new function to open closed standard
file descriptors.
  (ruby_sysinit): call fill_standard_fds.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 09:46:56 +00:00
nobu
d67ac15c86 * tool/rbinstall.rb (install_recursive, bin-comm): split mere
string not path name.  [ruby-core:40462] [Bug #5492]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 01:50:38 +00:00
nobu
54816d10eb * io.c (rb_cloexec_dup, rb_cloexec_dup2): CLOEXEC has been set if
dup3 succeeded.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 01:47:23 +00:00
akr
f0b021c0ce * io.c (rb_cloexec_dup): don't allocate standard file descriptors.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-30 01:02:46 +00:00
akr
e745a03cfa * io.c (rb_cloexec_dup2): don't set CLOEXEC for standard file
descriptors.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 23:30:34 +00:00
svn
503e5c9750 * 2011-10-30
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 22:48:45 +00:00
akr
cb9f3040d7 * configure.in: check dup3.
* io.c (rb_cloexec_dup2): use dup3 if available.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 22:48:41 +00:00
ktsj
71804183a3 * ChangeLog: style fix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 14:56:13 +00:00
akr
0a9cb21e62 * include/ruby/intern.h (rb_cloexec_dup2): declared.
* io.c (rb_cloexec_dup2): new function.
  (io_reopen): use rb_cloexec_dup2.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 13:11:01 +00:00
arton
195fbd18d6 * win32/Makefile.sub (CONFIG_H): have stdint.h if VC2010. [Bug #5243]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 12:08:47 +00:00
akr
54d7e82613 * io.c (rb_cloexec_dup): use F_DUPFD_CLOEXEC if available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 11:59:46 +00:00
akr
a9648d1e58 add a comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 11:58:30 +00:00
akr
4ae2b92576 * include/ruby/intern.h (rb_cloexec_dup): declared.
* io.c (rb_cloexec_dup): new function.
  (ruby_dup): use rb_cloexec_dup.

* ext/pty/pty.c (pty_getpty): use rb_cloexec_dup.
  
* ext/openssl/ossl_bio.c (ossl_obj2bio): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 11:02:32 +00:00
akr
3bffb5f306 * ext/sdbm/_sdbm.c (sdbm_prep): use O_CLOEXEC if available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 07:12:09 +00:00
akr
baa2d74dae * io.c (rb_cloexec_open): use O_CLOEXEC if available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 05:27:32 +00:00
akr
da74bc7552 * process.c (ruby_setsid): use rb_cloexec_open.
(rb_daemon): ditto.

* ruby.c (load_file_internal): ditto.

* file.c (rb_file_s_truncate): ditto.
  (file_load_ok): ditto.

* random.c (fill_random_seed): ditto.

* ext/pty/pty.c (chfunc): ditto.
  (get_device_once): ditto.

* ext/io/console/console.c (console_dev): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 04:01:54 +00:00
akr
3ae3cd741d * include/ruby/intern.h (rb_cloexec_open): declared.
* io.c (fd_set_cloexec): extracted from rb_fd_set_cloexec.
  (rb_cloexec_open): new function.
  (sysopen_func): use rb_cloexec_open.
  (rb_sysopen_internal): use rb_update_max_fd instead of
  rb_fd_set_cloexec.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 02:33:28 +00:00
nobu
d498620a7b * ChangeLog: commit miss.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 00:06:05 +00:00
svn
b9c3a33b40 * 2011-10-29
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-29 00:05:15 +00:00