diff options
Diffstat (limited to 'login')
-rw-r--r-- | login/logout.c | 9 | ||||
-rw-r--r-- | login/logwtmp.c | 7 |
2 files changed, 8 insertions, 8 deletions
diff --git a/login/logout.c b/login/logout.c index d0d421c..b8b38df 100644 --- a/login/logout.c +++ b/login/logout.c @@ -19,6 +19,7 @@ #include <errno.h> #include <string.h> #include <utmp.h> +#include <time.h> #include <sys/time.h> int @@ -45,10 +46,10 @@ logout (const char *line) /* Clear information about who & from where. */ memset (ut->ut_name, '\0', sizeof ut->ut_name); memset (ut->ut_host, '\0', sizeof ut->ut_host); - struct timeval tv; - __gettimeofday (&tv, NULL); - ut->ut_tv.tv_sec = tv.tv_sec; - ut->ut_tv.tv_usec = tv.tv_usec; + + struct timespec ts; + __clock_gettime (CLOCK_REALTIME, &ts); + TIMESPEC_TO_TIMEVAL (&ut->ut_tv, &ts); ut->ut_type = DEAD_PROCESS; if (pututline (ut) != NULL) diff --git a/login/logwtmp.c b/login/logwtmp.c index 654f412..eddba96 100644 --- a/login/logwtmp.c +++ b/login/logwtmp.c @@ -36,10 +36,9 @@ logwtmp (const char *line, const char *name, const char *host) strncpy (ut.ut_name, name, sizeof ut.ut_name); strncpy (ut.ut_host, host, sizeof ut.ut_host); - struct timeval tv; - __gettimeofday (&tv, NULL); - ut.ut_tv.tv_sec = tv.tv_sec; - ut.ut_tv.tv_usec = tv.tv_usec; + struct timespec ts; + __clock_gettime (CLOCK_REALTIME, &ts); + TIMESPEC_TO_TIMEVAL (&ut.ut_tv, &ts); updwtmp (_PATH_WTMP, &ut); } |