mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-01 11:32:48 -05:00
Patch from Brad Smith to use posix_openpt() instead of
open("/dev/ptmx"), where the former is available. Improves portability, since at least one OS (OpenBSD) supports the POSIX pty functions but does it via an underlying mechanism which doesn't involving having a /dev/ptmx. [originally from svn r9728]
This commit is contained in:
@ -118,7 +118,7 @@ AC_CHECK_LIB(X11, XOpenDisplay,
|
|||||||
[GTK_LIBS="-lX11 $GTK_LIBS"
|
[GTK_LIBS="-lX11 $GTK_LIBS"
|
||||||
AC_DEFINE([HAVE_LIBX11],[],[Define if libX11.a is available])])
|
AC_DEFINE([HAVE_LIBX11],[],[Define if libX11.a is available])])
|
||||||
|
|
||||||
AC_CHECK_FUNCS([getaddrinfo ptsname setresuid strsignal updwtmpx])
|
AC_CHECK_FUNCS([getaddrinfo posix_openpt ptsname setresuid strsignal updwtmpx])
|
||||||
AC_CHECK_DECLS([CLOCK_MONOTONIC], [], [], [[#include <time.h>]])
|
AC_CHECK_DECLS([CLOCK_MONOTONIC], [], [], [[#include <time.h>]])
|
||||||
AC_SEARCH_LIBS([clock_gettime], [rt], [AC_DEFINE([HAVE_CLOCK_GETTIME],[],[Define if clock_gettime() is available])])
|
AC_SEARCH_LIBS([clock_gettime], [rt], [AC_DEFINE([HAVE_CLOCK_GETTIME],[],[Define if clock_gettime() is available])])
|
||||||
|
|
||||||
|
@ -342,12 +342,21 @@ static void pty_open_master(Pty pty)
|
|||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
|
||||||
|
#ifdef HAVE_POSIX_OPENPT
|
||||||
|
pty->master_fd = posix_openpt(flags);
|
||||||
|
|
||||||
|
if (pty->master_fd < 0) {
|
||||||
|
perror("posix_openpt");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
#else
|
||||||
pty->master_fd = open("/dev/ptmx", flags);
|
pty->master_fd = open("/dev/ptmx", flags);
|
||||||
|
|
||||||
if (pty->master_fd < 0) {
|
if (pty->master_fd < 0) {
|
||||||
perror("/dev/ptmx: open");
|
perror("/dev/ptmx: open");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (grantpt(pty->master_fd) < 0) {
|
if (grantpt(pty->master_fd) < 0) {
|
||||||
perror("grantpt");
|
perror("grantpt");
|
||||||
|
Reference in New Issue
Block a user