aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/finger
diff options
context:
space:
mode:
authorBrian Somers <brian@FreeBSD.org>2000-12-21 01:30:47 +0000
committerBrian Somers <brian@FreeBSD.org>2000-12-21 01:30:47 +0000
commit3bebe991351ce7bc49d0e0c2737fe8e266da81d0 (patch)
treef315f36c8bcd6599c0e930ca3a3885187c0e67a2 /usr.bin/finger
parentd9f8912333fc601fad6eae7676e11406ec92f4b0 (diff)
Notes
Diffstat (limited to 'usr.bin/finger')
-rw-r--r--usr.bin/finger/util.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/usr.bin/finger/util.c b/usr.bin/finger/util.c
index dbf5e5f6fe9f..7823ef4dcd1c 100644
--- a/usr.bin/finger/util.c
+++ b/usr.bin/finger/util.c
@@ -323,13 +323,19 @@ find_idle_and_ttywrite(w)
{
extern time_t now;
struct stat sb;
+ time_t touched;
(void)snprintf(tbuf, sizeof(tbuf), "%s/%s", _PATH_DEV, w->tty);
if (stat(tbuf, &sb) < 0) {
warn("%s", tbuf);
return;
}
- w->idletime = now < sb.st_atime ? 0 : now - sb.st_atime;
+ touched = sb.st_atime;
+ if (touched < w->loginat) {
+ /* tty untouched since before login */
+ touched = w->loginat;
+ }
+ w->idletime = now < touched ? 0 : now - touched;
#define TALKABLE 0220 /* tty is writable if 220 mode */
w->writable = ((sb.st_mode & TALKABLE) == TALKABLE);