aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Cunha <tcunha@gmx.com>2009-10-15 01:43:16 +0000
committerTiago Cunha <tcunha@gmx.com>2009-10-15 01:43:16 +0000
commit941032b707e0478504c167a5151306db277644bb (patch)
treea8e6dd251c5657bdacf31d460470584f6c9b5143
parentfe99f6fa116c74396ba102c5dc90e62171f256fb (diff)
downloadrtmux-941032b707e0478504c167a5151306db277644bb.tar.gz
rtmux-941032b707e0478504c167a5151306db277644bb.tar.bz2
rtmux-941032b707e0478504c167a5151306db277644bb.zip
Sync OpenBSD patchset 403:
When a session is unattached, reset its activity timer to prevent it locking instantly when reattached.
-rw-r--r--server.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/server.c b/server.c
index fa587e4c..f59c1664 100644
--- a/server.c
+++ b/server.c
@@ -1,4 +1,4 @@
-/* $Id: server.c,v 1.209 2009-10-15 01:30:00 tcunha Exp $ */
+/* $Id: server.c,v 1.210 2009-10-15 01:43:16 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -1380,6 +1380,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 */
@@ -1403,6 +1408,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);