aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd-attach-session.c4
-rw-r--r--cmd-new-session.c4
-rw-r--r--cmd-switch-client.c3
-rw-r--r--server-client.c9
-rw-r--r--server-fn.c3
-rw-r--r--server.c14
-rw-r--r--session.c12
-rw-r--r--tmux.h3
8 files changed, 28 insertions, 24 deletions
diff --git a/cmd-attach-session.c b/cmd-attach-session.c
index 86fe53f0..32ac58a9 100644
--- a/cmd-attach-session.c
+++ b/cmd-attach-session.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-attach-session.c,v 1.37 2010-12-22 15:36:44 tcunha Exp $ */
+/* $Id: cmd-attach-session.c,v 1.38 2011-01-03 23:27:54 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -74,6 +74,7 @@ cmd_attach_session_exec(struct cmd *self, struct cmd_ctx *ctx)
}
ctx->curclient->session = s;
+ session_update_activity(s);
server_redraw_client(ctx->curclient);
} else {
if (!(ctx->cmdclient->flags & CLIENT_TERMINAL)) {
@@ -96,6 +97,7 @@ cmd_attach_session_exec(struct cmd *self, struct cmd_ctx *ctx)
server_write_session(s, MSG_DETACH, NULL, 0);
ctx->cmdclient->session = s;
+ session_update_activity(s);
server_write_client(ctx->cmdclient, MSG_READY, NULL, 0);
update = options_get_string(&s->options, "update-environment");
diff --git a/cmd-new-session.c b/cmd-new-session.c
index 4e5192bd..b82f6b31 100644
--- a/cmd-new-session.c
+++ b/cmd-new-session.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-new-session.c,v 1.80 2010-12-22 15:31:00 tcunha Exp $ */
+/* $Id: cmd-new-session.c,v 1.81 2011-01-03 23:27:54 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -284,12 +284,14 @@ cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx)
if (old_s != NULL)
ctx->cmdclient->last_session = old_s;
ctx->cmdclient->session = s;
+ session_update_activity(s);
server_redraw_client(ctx->cmdclient);
} else {
old_s = ctx->curclient->session;
if (old_s != NULL)
ctx->curclient->last_session = old_s;
ctx->curclient->session = s;
+ session_update_activity(s);
server_redraw_client(ctx->curclient);
}
}
diff --git a/cmd-switch-client.c b/cmd-switch-client.c
index e12bd1d6..809dff48 100644
--- a/cmd-switch-client.c
+++ b/cmd-switch-client.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-switch-client.c,v 1.23 2010-12-22 15:31:00 tcunha Exp $ */
+/* $Id: cmd-switch-client.c,v 1.24 2011-01-03 23:27:54 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -173,6 +173,7 @@ cmd_switch_client_exec(struct cmd *self, struct cmd_ctx *ctx)
if (c->session != NULL)
c->last_session = c->session;
c->session = s;
+ session_update_activity(s);
recalculate_sizes();
server_check_unattached();
diff --git a/server-client.c b/server-client.c
index 7a7e88bc..046f9f51 100644
--- a/server-client.c
+++ b/server-client.c
@@ -1,4 +1,4 @@
-/* $Id: server-client.c,v 1.49 2010-12-30 22:27:38 tcunha Exp $ */
+/* $Id: server-client.c,v 1.50 2011-01-03 23:27:54 tcunha Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -760,11 +760,8 @@ server_client_msg_dispatch(struct client *c)
if (gettimeofday(&c->activity_time, NULL) != 0)
fatal("gettimeofday");
- if (c->session != NULL) {
- memcpy(&c->session->activity_time,
- &c->activity_time,
- sizeof c->session->activity_time);
- }
+ if (c->session != NULL)
+ session_update_activity(c->session);
tty_start_tty(&c->tty);
server_redraw_client(c);
diff --git a/server-fn.c b/server-fn.c
index 6d556695..fa470e5a 100644
--- a/server-fn.c
+++ b/server-fn.c
@@ -1,4 +1,4 @@
-/* $Id: server-fn.c,v 1.117 2010-12-25 23:44:37 tcunha Exp $ */
+/* $Id: server-fn.c,v 1.118 2011-01-03 23:27:54 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -396,6 +396,7 @@ server_destroy_session(struct session *s)
} else {
c->last_session = NULL;
c->session = s_new;
+ session_update_activity(s_new);
server_redraw_client(c);
}
}
diff --git a/server.c b/server.c
index 20cad7c5..6095bdd3 100644
--- a/server.c
+++ b/server.c
@@ -1,4 +1,4 @@
-/* $Id: server.c,v 1.250 2010-12-30 22:39:49 tcunha Exp $ */
+/* $Id: server.c,v 1.251 2011-01-03 23:27:54 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -495,12 +495,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 */
@@ -520,12 +516,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);
diff --git a/session.c b/session.c
index da2adbe1..22572016 100644
--- a/session.c
+++ b/session.c
@@ -1,4 +1,4 @@
-/* $Id: session.c,v 1.84 2010-12-30 22:39:49 tcunha Exp $ */
+/* $Id: session.c,v 1.85 2011-01-03 23:27:54 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -96,7 +96,7 @@ session_create(const char *name, const char *cmd, const char *cwd,
if (gettimeofday(&s->creation_time, NULL) != 0)
fatal("gettimeofday failed");
- memcpy(&s->activity_time, &s->creation_time, sizeof s->activity_time);
+ session_update_activity(s);
s->cwd = xstrdup(cwd);
@@ -163,6 +163,14 @@ session_destroy(struct session *s)
RB_INSERT(sessions, &dead_sessions, s);
}
+/* Update session active time. */
+void
+session_update_activity(struct session *s)
+{
+ if (gettimeofday(&s->activity_time, NULL) != 0)
+ fatal("gettimeofday");
+}
+
/* Find the next usable session. */
struct session *
session_next_session(struct session *s)
diff --git a/tmux.h b/tmux.h
index 1a307eac..ac79f84f 100644
--- a/tmux.h
+++ b/tmux.h
@@ -1,4 +1,4 @@
-/* $Id: tmux.h,v 1.596 2010-12-31 22:12:33 nicm Exp $ */
+/* $Id: tmux.h,v 1.597 2011-01-03 23:27:54 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -1974,6 +1974,7 @@ struct session *session_create(const char *, const char *, const char *,
struct environ *, struct termios *, int, u_int, u_int,
char **);
void session_destroy(struct session *);
+void session_update_activity(struct session *);
struct session *session_next_session(struct session *);
struct session *session_previous_session(struct session *);
struct winlink *session_new(struct session *,