diff options
| author | Brian Somers <brian@FreeBSD.org> | 2000-12-21 01:30:47 +0000 |
|---|---|---|
| committer | Brian Somers <brian@FreeBSD.org> | 2000-12-21 01:30:47 +0000 |
| commit | 3bebe991351ce7bc49d0e0c2737fe8e266da81d0 (patch) | |
| tree | f315f36c8bcd6599c0e930ca3a3885187c0e67a2 /usr.bin/finger | |
| parent | d9f8912333fc601fad6eae7676e11406ec92f4b0 (diff) | |
Notes
Diffstat (limited to 'usr.bin/finger')
| -rw-r--r-- | usr.bin/finger/util.c | 8 |
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); |
