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@.
This commit is contained in:
Nicholas Marriott
2011-01-01 01:12:09 +00:00
parent 91218f8714
commit 04b32fa734
8 changed files with 20 additions and 16 deletions

View File

@@ -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);