summaryrefslogtreecommitdiffstats
path: root/server.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2011-01-01 01:12:09 +0000
committerNicholas Marriott <nicm@openbsd.org>2011-01-01 01:12:09 +0000
commit04b32fa734d491e7ae9b915dc309858310d96185 (patch)
tree877284af9511a2c46a1f9a949ca6cbab3184a0be /server.c
parent91218f8714dafa83f49ece4435cc3d26a738a02e (diff)
Don't reset the activity timer for unattached sessions every second,
this screws up the choice of most-recently-used. Instead, break the time update into a little function and do it when the session is attached. Pointed out by joshe@.
Diffstat (limited to 'server.c')
-rw-r--r--server.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/server.c b/server.c
index b9b4a290..3b35454d 100644
--- a/server.c
+++ b/server.c
@@ -494,12 +494,8 @@ server_lock_server(void)
t = time(NULL);
RB_FOREACH(s, sessions, &sessions) {
- if (s->flags & SESSION_UNATTACHED) {
- if (gettimeofday(&s->activity_time, NULL) != 0)
- fatal("gettimeofday failed");
+ if (s->flags & SESSION_UNATTACHED)
continue;
- }
-
timeout = options_get_number(&s->options, "lock-after-time");
if (timeout <= 0 || t <= s->activity_time.tv_sec + timeout)
return; /* not timed out */
@@ -519,12 +515,8 @@ server_lock_sessions(void)
t = time(NULL);
RB_FOREACH(s, sessions, &sessions) {
- if (s->flags & SESSION_UNATTACHED) {
- if (gettimeofday(&s->activity_time, NULL) != 0)
- fatal("gettimeofday failed");
+ if (s->flags & SESSION_UNATTACHED)
continue;
- }
-
timeout = options_get_number(&s->options, "lock-after-time");
if (timeout > 0 && t > s->activity_time.tv_sec + timeout) {
server_lock_session(s);