1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* ext/pty/pty.c (get_device_once): FreeBSD 10-current and 9-stable

added O_CLOEXEC support to posix_openpt, so assume FreeBSD 9.2 or
  later supports it.
  http://www.freebsd.org/cgi/query-pr.cgi?pr=162374

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2013-05-25 12:34:50 +00:00
parent 9b119ab456
commit 0ea40b2294
2 changed files with 13 additions and 2 deletions

View file

@ -1,3 +1,10 @@
Sat May 25 21:29:34 2013 NARUSE, Yui <naruse@ruby-lang.org>
* ext/pty/pty.c (get_device_once): FreeBSD 10-current and 9-stable
added O_CLOEXEC support to posix_openpt, so assume FreeBSD 9.2 or
later supports it.
http://www.freebsd.org/cgi/query-pr.cgi?pr=162374
Sat May 25 18:46:23 2013 Yusuke Endoh <mame@tsg.ne.jp>
* proc.c (rb_method_entry_min_max_arity): fix missing break in switch.

View file

@ -22,6 +22,10 @@
#ifdef HAVE_PTY_H
#include <pty.h>
#endif
#if defined(HAVE_SYS_PARAM_H)
/* for __FreeBSD_version */
# include <sys/param.h>
#endif
#ifdef HAVE_SYS_WAIT_H
#include <sys/wait.h>
#else
@ -228,9 +232,9 @@ get_device_once(int *master, int *slave, char SlaveName[DEVICELEN], int nomesg,
dfl.sa_flags = 0;
sigemptyset(&dfl.sa_mask);
#if defined(__sun) || defined(__FreeBSD__)
#if defined(__sun) || (defined(__FreeBSD__) && __FreeBSD_version < 902000)
/* workaround for Solaris 10: grantpt() doesn't work if FD_CLOEXEC is set. [ruby-dev:44688] */
/* FreeBSD 8 supported O_CLOEXEC for posix_openpt, but FreeBSD 9 removed it.
/* FreeBSD 9.2 or later supports O_CLOEXEC
* http://www.freebsd.org/cgi/query-pr.cgi?pr=162374 */
if ((masterfd = posix_openpt(O_RDWR|O_NOCTTY)) == -1) goto error;
if (sigaction(SIGCHLD, &dfl, &old) == -1) goto error;