summaryrefslogtreecommitdiffstats
path: root/server.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-10-13 06:14:08 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-10-13 06:14:08 +0000
commit9294cb099ff371998055410bb3cfd7be0a518368 (patch)
tree1d28b9dd84264bc64f4d2befecdc17e1d8fd9a4b /server.c
parent4dcb5040a0bdf73ecbf504ed887600ec2f100d4c (diff)
When a session is unattached, reset its activity timer to prevent it locking
instantly when reattached.
Diffstat (limited to 'server.c')
-rw-r--r--server.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/server.c b/server.c
index 2906fb87..6fdcf940 100644
--- a/server.c
+++ b/server.c
@@ -1377,6 +1377,11 @@ server_lock_server(void)
if ((s = ARRAY_ITEM(&sessions, i)) == NULL)
continue;
+ if (s->flags & SESSION_UNATTACHED) {
+ s->activity = time(NULL);
+ continue;
+ }
+
timeout = options_get_number(&s->options, "lock-after-time");
if (timeout <= 0 || t <= s->activity + timeout)
return; /* not timed out */
@@ -1400,6 +1405,11 @@ server_lock_sessions(void)
if ((s = ARRAY_ITEM(&sessions, i)) == NULL)
continue;
+ if (s->flags & SESSION_UNATTACHED) {
+ s->activity = time(NULL);
+ continue;
+ }
+
timeout = options_get_number(&s->options, "lock-after-time");
if (timeout > 0 && t > s->activity + timeout) {
server_lock_session(s);