summaryrefslogtreecommitdiffstats
path: root/usr.bin/w/w.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/w/w.c')
-rw-r--r--usr.bin/w/w.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/usr.bin/w/w.c b/usr.bin/w/w.c
index 0ead030..6ab256a 100644
--- a/usr.bin/w/w.c
+++ b/usr.bin/w/w.c
@@ -134,6 +134,7 @@ main(argc, argv)
struct stat *stp;
FILE *ut;
u_long l;
+ time_t touched;
int ch, i, nentries, nusers, wcmd, longidle, dropgid;
char *memf, *nlistf, *p, *x;
char buf[MAXHOSTNAMELEN], errbuf[256];
@@ -246,7 +247,12 @@ main(argc, argv)
(void)sysctl(mib, 2, &ep->tdev, &size, NULL, 0);
}
#endif
- if ((ep->idle = now - stp->st_atime) < 0)
+ touched = stp->st_atime;
+ if (touched < ep->utmp.ut_time) {
+ /* tty untouched since before login */
+ touched = ep->utmp.ut_time;
+ }
+ if ((ep->idle = now - touched) < 0)
ep->idle = 0;
}
(void)fclose(ut);
OpenPOWER on IntegriCloud