diff options
Diffstat (limited to 'libutil/login.c')
-rw-r--r-- | libutil/login.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/libutil/login.c b/libutil/login.c index 636ce9608..2e9a5cb25 100644 --- a/libutil/login.c +++ b/libutil/login.c @@ -8,7 +8,18 @@ /* Write the given entry into utmp and wtmp. */ void login (const struct utmp *entry) { - return; + struct utmp copy = *entry; + + utmpname(_PATH_UTMP); + setutent(); +#if _HAVE_UT_TYPE - 0 + copy.ut_type = USER_PROCESS; +#endif +#if _HAVE_UT_PID - 0 + copy.ut_pid = getpid(); +#endif + strncpy (copy.ut_line, entry->ut_line, UT_LINESIZE); + pututline(entry); + endutent(); } -link_warning (login, "the `login' function is stubbed out and will not write utmp or wtmp.") |