diff options
| -rw-r--r-- | include/utmp.h | 2 | ||||
| -rw-r--r-- | src/misc/login_tty.c | 14 | 
2 files changed, 16 insertions, 0 deletions
diff --git a/include/utmp.h b/include/utmp.h index e9ba23e2..24e2da7b 100644 --- a/include/utmp.h +++ b/include/utmp.h @@ -35,6 +35,8 @@ void         setutent(void);  void updwtmp(const char *, const struct utmp *); +int login_tty(int); +  #define _PATH_UTMP "/dev/null/utmp"  #define _PATH_WTMP "/dev/null/wtmp" diff --git a/src/misc/login_tty.c b/src/misc/login_tty.c new file mode 100644 index 00000000..f0be0a09 --- /dev/null +++ b/src/misc/login_tty.c @@ -0,0 +1,14 @@ +#include <utmp.h> +#include <sys/ioctl.h> +#include <unistd.h> + +int login_tty(int fd) +{ +	setsid(); +	if (ioctl(fd, TIOCSCTTY, (char *)0)) return -1; +	dup2(fd, 0); +	dup2(fd, 1); +	dup2(fd, 2); +	if (fd>2) close(fd); +	return 0; +}  | 
