From c0fef53b1e038a29ea57825af88fceeebdab874e Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 5 Apr 1995 04:39:51 +0000 Subject: * misc/login_tty.c [! TIOCSCTTY]: Try an emulation using ttyname and open. --- misc/login_tty.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'misc/login_tty.c') diff --git a/misc/login_tty.c b/misc/login_tty.c index 6ea2b9b07f..e4e075c6ed 100644 --- a/misc/login_tty.c +++ b/misc/login_tty.c @@ -38,14 +38,34 @@ static char sccsid[] = "@(#)login_tty.c 8.1 (Berkeley) 6/4/93"; #include #include #include +#include int login_tty(fd) int fd; { (void) setsid(); +#ifdef TIOCSCTTY if (ioctl(fd, TIOCSCTTY, (char *)NULL) == -1) return (-1); +#else + { + /* This might work. */ + char *fdname = ttyname (fd); + int newfd; + if (fdname) + { + if (fd != 0) + (void) close (0); + if (fd != 1) + (void) close (1); + if (fd != 2) + (void) close (2); + newfd = open (fdname, O_RDWR); + (void) close (newfd); + } + } +#endif (void) dup2(fd, 0); (void) dup2(fd, 1); (void) dup2(fd, 2); -- cgit v1.2.3