diff --git a/include/utmp.h b/include/utmp.h index e9ba23e2de059f832e1bf8297dfe4987b3b82aca..24e2da7bf9964407fe1afb283033289843f818bd 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 0000000000000000000000000000000000000000..f0be0a09a35533519dbdf4a65c76a895c3ce34e5 --- /dev/null +++ b/src/misc/login_tty.c @@ -0,0 +1,14 @@ +#include +#include +#include + +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; +}