From 8f3bcc3d41bf14a80e439c82a4de7bfe11487ec0 Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Wed, 2 Sep 2020 21:29:57 -0400 Subject: [PATCH] Use posix_openpt() for creating pseudo TTY pairs Use posix_openpt() for creating pseudo TTY pairs, rather than depending on the presence of /dev/ptmx, which is not a portable assumption --- examples/daemon.c | 6 +++++- src/sock.c | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/examples/daemon.c b/examples/daemon.c index ba2a41f..8a51fb1 100644 --- a/examples/daemon.c +++ b/examples/daemon.c @@ -51,7 +51,11 @@ int main(int argc, char **argv) { usage(argc, argv, "Too many arguments provided"); } - if ((info.fd = open(argv[1], O_RDWR)) < 0) { + info.fd = strcmp(argv[1], "/dev/ptmx") == 0? + posix_openpt(O_RDWR | O_NOCTTY): + open(argv[1], O_RDWR | O_NOCTTY); + + if (info.fd < 0) { fprintf(stderr, "%s: %s: %s: %s\n", argv[0], "open()", argv[1], strerror(errno)); diff --git a/src/sock.c b/src/sock.c index 695d6e2..7226716 100644 --- a/src/sock.c +++ b/src/sock.c @@ -19,7 +19,7 @@ struct slot { static int bind_pty(patty_ax25_sock *sock) { char *pty; - if ((sock->fd = open("/dev/ptmx", O_RDWR)) < 0) { + if ((sock->fd = posix_openpt(O_RDWR | O_NOCTTY)) < 0) { goto error_open; }