diff options
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/server-tty.c | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac index 4803a9a..8d19c13 100644 --- a/configure.ac +++ b/configure.ac @@ -53,7 +53,7 @@ AC_FUNC_FORK AC_FUNC_MALLOC AC_FUNC_SELECT_ARGTYPES AC_TYPE_SIGNAL -AC_CHECK_FUNCS([dup2 gethostbyname memset select socket strcspn strdup strerror]) +AC_CHECK_FUNCS([dup2 gethostbyname memset select socket strcspn strdup strerror posix_openpt]) # Checks for header files. AC_HEADER_STDC diff --git a/src/server-tty.c b/src/server-tty.c index 7325bfa..6886810 100644 --- a/src/server-tty.c +++ b/src/server-tty.c @@ -50,7 +50,12 @@ struct stream* stream_server_tty(const char *args) { assert(s); memset(s, 0, sizeof(struct stream)); - if ((fd = open("/dev/ptmx", O_RDWR|O_NOCTTY)) < 0) { +#ifdef HAVE_POSIX_OPENPT + fd = posix_openpt(O_RDWR|O_NOCTTY); +#else + fd = open("/dev/ptmx", O_RDWR|O_NOCTTY); +#endif + if (fd < 0) { fprintf(stderr, "open('/dev/ptmx', O_RDWR|O_NOCTTY): %s\n", strerror(errno)); goto fail; } |