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
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
5153fd2a5e
* ext/pty/pty.c (get_device_once): delay rb_fd_set_cloexec() until
...
grantpt() on Solaris. grantpt() doesn't work with CLOEXEC on
Solaris 10.
reported by Naohisa GOTO. [ruby-dev:44688] [Bug #5475 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-24 13:40:13 +00:00
akr
b574a4d4a1
* include/ruby/intern.h (rb_fd_set_cloexec): declared.
...
* io.c (rb_fd_set_cloexec): new function.
(ruby_dup): call rb_fd_set_cloexec to set close-on-exec flag.
(rb_sysopen_internal): ditto.
(rb_pipe): ditto.
(io_reopen): ditto.
(io_cntl): ditto.
* process.c (rb_f_exec): change the default :close_others option to
true.
(rb_f_system): ditto.
(move_fds_to_avoid_crash): call rb_fd_set_cloexec to set
close-on-exec flag.
(ruby_setsid): ditto.
(rb_daemon): ditto.
* thread_pthread.c (rb_thread_create_timer_thread): call
rb_fd_set_cloexec to set close-on-exec flag.
* 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/openssl/ossl_bio.c (ossl_obj2bio): ditto.
* ext/socket/init.c (rsock_socket): ditto.
(rsock_s_accept_nonblock): ditto.
(rsock_s_accept): ditto.
* ext/socket/socket.c (rsock_sock_s_socketpair): ditto.
* ext/socket/ancdata.c (discard_cmsg): ditto.
(make_io_for_unix_rights): ditto.
* ext/socket/unixsocket.c (unix_recv_io): ditto.
* ext/io/console/console.c (console_dev): ditto.
[ruby-core:38140] [Feature #5041 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-22 09:58:15 +00:00
nobu
039f12b5bb
* ext/pty/pty.c (pty_check): should return nil until the child
...
terminates or stops. [ruby-dev:44600] [Bug #2642 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-14 03:14:00 +00:00
akr
b41ccc4a9c
* include/ruby/intern.h (rb_update_max_fd): declaration moved from
...
internal.h.
* file.c: ditto.
* io.c: call rb_update_max_fd for each new fds.
* process.c: ditto.
* random.c: ditto.
* ruby.c: ditto.
* ext/io/console/console.c: ditto.
* ext/openssl/ossl_bio.c: ditto.
* 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@32587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-20 13:26:10 +00:00
drbrain
161cdee265
* ext/pty/pty.c (pty_check): Restore "not reached" comment.
...
[Ruby 1.9 - Bug #4756 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31877 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-31 22:27:35 +00:00
nobu
0d6d23b25d
* ext: remove trailing spaces.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-22 09:26:02 +00:00
drbrain
87dbea7bbf
* ext/pty/pty.c: Improve documentaton. Patch by David Copeland.
...
[Ruby 1.9 - Bug #4756 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31688 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-22 02:45:12 +00:00
akr
2cc0240078
* ext/pty/pty.c: parenthesize macro arguments.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-02-09 14:12:02 +00:00
nobu
088474a20d
* ext/pty/pty.c (chfunc): suppress a warning.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-02-06 05:38:11 +00:00
kosaki
402402741d
* ext/pty/pty.c (chfunc): Added rb_thread_atfork_before_exec().
...
We must reinitialize GVL when new process creation. Otherwise
we may meet an insane deadlock. [Bug #4121 ][ruby-dev:42686]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-25 05:31:04 +00:00
nobu
aa5c05b8ba
* ext/pty/pty.c (chfunc): pass through exceptions.
...
* io.c (rb_io_bufwrite, rb_io_bufread): added.
* process.c (rb_fork_err): protect from exceptions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-02 21:40:55 +00:00
nobu
185e9705ab
* ext/pty/pty.c (chfunc): restore errno from SystemCallError and
...
propagate proper exception to the parent. [ruby-dev:41965]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-02 21:14:51 +00:00
nobu
9afb0f0837
* ext/pty/pty.c (establishShell): chfunc must not raise any
...
exceptions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-13 12:01:45 +00:00
nobu
c7d001465c
* NEWS (ptr): new method and deprecated methods. [ruby-dev:41681]
...
* ext/pty/{README,README.ja}: ditto.
* ext/pty/pty.c (pty_check): add rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-23 08:12:54 +00:00
akr
cb61fcb988
update doc.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-09 16:32:52 +00:00
akr
c8892037c7
revert previous doc. change.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-09 00:36:38 +00:00
akr
f491696f4b
update doc.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-08 08:08:29 +00:00
akr
e1c33162cf
* ext/pty/pty.c (pty_open): refine the path for master IO.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-01 14:28:04 +00:00
nobu
deaba5567d
* ext/pty/pty.c (get_device_once): raise on error when fail is
...
non-zero.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-28 12:32:39 +00:00
nobu
b148948982
* ext/pty/pty.c (pty_check): needs WNOHANG to poll, return $?, and
...
call raise_from_check() with pid_t. [ruby-dev:40141]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-25 08:47:04 +00:00
akr
c86115e996
* ext/pty/pty.c (pty_getpty): check dup failure.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-26 13:01:16 +00:00
akr
1d9f6c92b7
update rdoc.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-22 12:32:30 +00:00
akr
1bd6111488
* ext/pty/pty.c (chfunc): type fixed.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-05 22:53:44 +00:00
akr
74063bf4d3
* include/ruby/intern.h (rb_run_exec_options_err): renamed from
...
rb_run_exec_options.
(rb_exec_err): renamed from rb_exec.
(rb_fork_err): renamed from rb_fork.
(rb_spawn_err): renamed from rb_spawn.
(rb_run_exec_options): declared with 1.9.1 compatible signature.
(rb_exec): ditto.
(rb_fork): ditto.
(rb_spawn): ditto.
* process.c (rb_run_exec_options_err): renamed from
rb_run_exec_options.
(rb_exec_err): renamed from rb_exec.
(rb_fork_err): renamed from rb_fork.
(rb_spawn_err): renamed from rb_spawn.
(rb_run_exec_options): defined.
(rb_exec): ditto.
(rb_fork): ditto.
(rb_spawn): ditto.
* io.c: follow above change.
* ext/pty/pty.c: follow above change.
[ruby-dev:37893]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-05 11:33:19 +00:00
akr
423bbf80d5
* process.c (rb_fork): propagete an error message from child to parent.
...
(rb_f_exec): show details of error in child process on
exception.
(save_redirect_fd): add error message arguments.
(run_exec_dup2): ditto.
(run_exec_close): ditto.
(run_exec_open): ditto.
(run_exec_dup2_child): ditto.
(run_exec_pgroup): ditto.
(run_exec_rlimit): ditto.
(rb_run_exec_options): ditto.
(rb_exec): ditto.
(rb_exec_atfork): ditto.
(rb_spawn_internal): ditto.
(rb_spawn): ditto.
(rb_f_system): follow arguments change.
(proc_daemon): ditto.
(rb_f_spawn): show details of error in child process on exception.
* io.c (popen_exec): add error message arguments.
(pipe_open): show details of error in child process on exception.
* include/ruby/intern.h (rb_run_exec_options): add error message
arguments.
(rb_exec): ditto.
(rb_fork): ditto.
(rb_spawn): ditto.
* ext/pty/pty.c (chfunc): add error message arguments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-23 13:15:54 +00:00
akr
cad0fbddf8
rdoc update.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-18 14:33:31 +00:00
akr
d74d2d13cb
rdoc update.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-17 15:48:22 +00:00
akr
8ae0a40d02
* ext/pty/extconf.rb: check util.h for OpenBSD.
...
* ext/pty/pty.c: include util.h if available. fix variable name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-17 10:38:19 +00:00
akr
e27fbfbc98
* ext/pty/pty.c (getDevice): add nomesg argument.
...
(get_device_once): add nomesg argument. chmod slave tty to 0600
if nomesg. more error tests.
(no_mesg): new function.
(pty_open): make slave tty's mode 0600.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-16 11:39:17 +00:00
akr
56709edc89
* ext/pty/extconf.rb: check posix_openpt.
...
* ext/pty/pty.c (get_device_once): use posix_openpt if available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-16 10:49:12 +00:00
akr
bfaef6a336
* ext/pty/pty.c (pty_open): set FMODE_SYNC and FMODE_DUPLEX.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-15 14:35:00 +00:00
akr
4da3316ca3
* ext/pty/pty.c (pty_open): new method PTY.open.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-15 13:48:51 +00:00
akr
005e756537
* ext/pty/pty.c (get_device_once): use DEVICELEN instead of
...
sizeof SlaveName.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-15 12:25:03 +00:00
akr
67e43bfdf3
* ext/pty/pty.c (chfunc): make it static.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-15 12:02:09 +00:00
akr
9bfd822bd1
* ext/pty/pty.c (child_info): add slavename.
...
(chfunc): use slavename.
(establishShell): set slavename.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-15 12:01:08 +00:00
akr
6e03277db0
* process.c (forked_child): new variable.
...
(before_exec): don't call rb_thread_stop_timer_thread if
forked_child.
(after_exec): reset forked_child after rb_thread_start_timer_thread.
(rb_fork): set forked_child just after fork in child.
* ext/pty/pty.c (chfunc): extracted from establishShell.
(establishShell): use rb_fork.
[ruby-dev:37418]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-13 16:40:01 +00:00
mame
0646c1e0d6
* ext/pty/pty.c (Init_pty): fix typo.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20449 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-02 17:05:46 +00:00
matz
1e1d2b2639
* ext/pty/pty.c (get_device_once): abandon asynchronous exception
...
that might cause serious problem if a program terminated early.
asynchronous exception is a very bad thing anyway. use
Process.waitpid(pid) or PTY.check(pid) to poll program
termination. if PTY.check is called with optional second
argument being true, it raises an exception same as one from
previous behavior. [incompatible] fix: [ruby-core:19583]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-21 18:45:01 +00:00
akr
3721df734c
* ext/pty/pty.c (pty_getpty): follow rb_io_t's path -> pathv change.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-23 01:49:56 +00:00
nobu
b7000ccfa0
* ext/pty/pty.c (raise_from_wait, pty_syswait, get_device_once):
...
constified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-12 21:57:11 +00:00
nobu
27b103f37a
* ext/pty/pty.c (establishShell): handshaking before close slave
...
device. [ruby-talk:263410]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-07 05:58:41 +00:00
nobu
a37d419c5d
* ext/pty/pty.c (MasterDevice, SlaveDevice, deviceNo): constified.
...
* ext/pty/pty.c (SlaveName): removed static buffer.
* ext/pty/expect_sample.rb: support for autologin.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-07 05:56:52 +00:00
nobu
2b592580bf
* include/ruby: moved public headers.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-10 03:06:15 +00:00
nobu
5b10c170e5
* file.c, gc.c, io.c, ruby.h, rubyio.h, win32/win32.h (rb_io_t):
...
renamed from OpenFile.
* ext/dl/cptr.c, ext/io/wait/wait.c, ext/openssl/ossl.h,
ext/openssl/ossl_bio.c, ext/openssl/ossl_ssl.c, ext/pty/pty.c,
ext/readline/readline.c, ext/socket/socket.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-24 10:30:50 +00:00
nobu
562f256c54
* configure.in (pid_t, uid_t, gid_t): check if defined.
...
* intern.h, process.c, rubyio.h, ext/etc/etc.c, ext/pty/pty.c: use
rb_{pid,uid,gid}_t instead of plain int. [ruby-dev:30376]
* ext/etc/extconf.rb (PIDT2NUM, NUM2PIDT, UIDT2NUM, NUM2UIDT, GIDT2NUM,
NUM2GIDT): moved to configure.in.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-18 04:13:09 +00:00
ko1
27172b8e6f
* intern.h: prepare rb_last_status_get() and rb_last_status_set().
...
Use these functions instead of rb_last_status ([ruby-dev:30264]).
* process.c: define above functions.
* ext/pty/pty.c: use above functins.
* io.c (pipe_finalize): ditto.
* process.c: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-05 16:22:38 +00:00
nobu
b1ad30b2f7
* ext/pty/pty.c (establishShell): parent pid is not used.
...
* ext/pty/pty.c (freeDevice): not used.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-16 07:21:02 +00:00
nobu
0cd59e5b59
* ext/pty/pty.c (getDevice): retry once after GC on failure.
...
[ruby-core:08282]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-26 09:15:31 +00:00