summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2009-11-03 20:29:47 +0000
committernicm <nicm@openbsd.org>2009-11-03 20:29:47 +0000
commita18122f87d1be1bb6c3e4edde905492843e55c90 (patch)
tree5db7be6eee6a80e0e8faba0234d3f632e4cc6dee
parent- remove a useless member of struct cond (diff)
downloadwireguard-openbsd-a18122f87d1be1bb6c3e4edde905492843e55c90.tar.xz
wireguard-openbsd-a18122f87d1be1bb6c3e4edde905492843e55c90.zip
Change session and client activity and creation time members to have more
meaningful names. Also, remove the code to try and update the session activity time for the command client when a command message is received as is pointless because it des not have a session.
-rw-r--r--usr.bin/tmux/cmd-list-sessions.c4
-rw-r--r--usr.bin/tmux/cmd-server-info.c4
-rw-r--r--usr.bin/tmux/cmd.c10
-rw-r--r--usr.bin/tmux/server-client.c37
-rw-r--r--usr.bin/tmux/server.c12
-rw-r--r--usr.bin/tmux/session.c6
-rw-r--r--usr.bin/tmux/tmux.h10
7 files changed, 44 insertions, 39 deletions
diff --git a/usr.bin/tmux/cmd-list-sessions.c b/usr.bin/tmux/cmd-list-sessions.c
index 74ecc6e2682..7caa943c080 100644
--- a/usr.bin/tmux/cmd-list-sessions.c
+++ b/usr.bin/tmux/cmd-list-sessions.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd-list-sessions.c,v 1.4 2009/10/10 10:02:48 nicm Exp $ */
+/* $OpenBSD: cmd-list-sessions.c,v 1.5 2009/11/03 20:29:47 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -61,7 +61,7 @@ cmd_list_sessions_exec(unused struct cmd *self, struct cmd_ctx *ctx)
xsnprintf(tmp, sizeof tmp, " (group %u)", idx);
}
- t = s->tv.tv_sec;
+ t = s->creation_time.tv_sec;
tim = ctime(&t);
*strchr(tim, '\n') = '\0';
diff --git a/usr.bin/tmux/cmd-server-info.c b/usr.bin/tmux/cmd-server-info.c
index 3436d0a6616..f17644e47c3 100644
--- a/usr.bin/tmux/cmd-server-info.c
+++ b/usr.bin/tmux/cmd-server-info.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd-server-info.c,v 1.13 2009/11/01 23:20:37 nicm Exp $ */
+/* $OpenBSD: cmd-server-info.c,v 1.14 2009/11/03 20:29:47 nicm Exp $ */
/*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -105,7 +105,7 @@ cmd_server_info_exec(unused struct cmd *self, struct cmd_ctx *ctx)
if (s == NULL)
continue;
- t = s->tv.tv_sec;
+ t = s->creation_time.tv_sec;
tim = ctime(&t);
*strchr(tim, '\n') = '\0';
diff --git a/usr.bin/tmux/cmd.c b/usr.bin/tmux/cmd.c
index 2b761f256a9..66298cf053b 100644
--- a/usr.bin/tmux/cmd.c
+++ b/usr.bin/tmux/cmd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd.c,v 1.28 2009/11/02 16:24:29 nicm Exp $ */
+/* $OpenBSD: cmd.c,v 1.29 2009/11/03 20:29:47 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -362,9 +362,9 @@ cmd_newest_session(struct sessions *ss)
if ((s = ARRAY_ITEM(ss, i)) == NULL)
continue;
- if (tv == NULL || timercmp(&s->tv, tv, >)) {
+ if (tv == NULL || timercmp(&s->creation_time, tv, >)) {
snewest = s;
- tv = &s->tv;
+ tv = &s->creation_time;
}
}
@@ -386,9 +386,9 @@ cmd_newest_client(void)
if (c->session == NULL)
continue;
- if (tv == NULL || timercmp(&c->tv, tv, >)) {
+ if (tv == NULL || timercmp(&c->creation_time, tv, >)) {
cnewest = c;
- tv = &c->tv;
+ tv = &c->creation_time;
}
}
diff --git a/usr.bin/tmux/server-client.c b/usr.bin/tmux/server-client.c
index 8b169661f4d..7c1de8b314e 100644
--- a/usr.bin/tmux/server-client.c
+++ b/usr.bin/tmux/server-client.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: server-client.c,v 1.9 2009/10/27 13:03:33 nicm Exp $ */
+/* $OpenBSD: server-client.c,v 1.10 2009/11/03 20:29:47 nicm Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -61,7 +61,7 @@ server_client_create(int fd)
c->references = 0;
imsg_init(&c->ibuf, fd);
- if (gettimeofday(&c->tv, NULL) != 0)
+ if (gettimeofday(&c->creation_time, NULL) != 0)
fatal("gettimeofday failed");
ARRAY_INIT(&c->prompt_hdata);
@@ -261,18 +261,19 @@ server_client_handle_data(struct client *c)
struct window_pane *wp;
struct screen *s;
struct options *oo;
- struct timeval tv;
+ struct timeval tv_add, tv_now;
struct key_binding *bd;
struct keylist *keylist;
struct mouse_event mouse;
int key, status, xtimeout, mode, isprefix;
u_int i;
+ /* Check and update repeat flag. */
+ if (gettimeofday(&tv_now, NULL) != 0)
+ fatal("gettimeofday failed");
xtimeout = options_get_number(&c->session->options, "repeat-time");
if (xtimeout != 0 && c->flags & CLIENT_REPEAT) {
- if (gettimeofday(&tv, NULL) != 0)
- fatal("gettimeofday failed");
- if (timercmp(&tv, &c->repeat_timer, >))
+ if (timercmp(&tv_now, &c->repeat_timer, >))
c->flags &= ~(CLIENT_PREFIX|CLIENT_REPEAT);
}
@@ -281,12 +282,14 @@ server_client_handle_data(struct client *c)
while (tty_keys_next(&c->tty, &key, &mouse) == 0) {
if (c->session == NULL)
return;
-
- c->session->activity = time(NULL);
w = c->session->curw->window;
wp = w->active; /* could die */
oo = &c->session->options;
+ /* Update activity timer. */
+ memcpy(&c->session->activity_time,
+ &tv_now, sizeof c->session->activity_time);
+
/* Special case: number keys jump to pane in identify mode. */
if (c->flags & CLIENT_IDENTIFY && key >= '0' && key <= '9') {
wp = window_pane_at_index(w, key - '0');
@@ -364,11 +367,9 @@ server_client_handle_data(struct client *c)
if (xtimeout != 0 && bd->can_repeat) {
c->flags |= CLIENT_PREFIX|CLIENT_REPEAT;
- tv.tv_sec = xtimeout / 1000;
- tv.tv_usec = (xtimeout % 1000) * 1000L;
- if (gettimeofday(&c->repeat_timer, NULL) != 0)
- fatal("gettimeofday failed");
- timeradd(&c->repeat_timer, &tv, &c->repeat_timer);
+ tv_add.tv_sec = xtimeout / 1000;
+ tv_add.tv_usec = (xtimeout % 1000) * 1000L;
+ timeradd(&tv_now, &tv_add, &c->repeat_timer);
}
/* Dispatch the command. */
@@ -581,11 +582,14 @@ server_client_msg_dispatch(struct client *c)
if (!(c->flags & CLIENT_SUSPENDED))
break;
c->flags &= ~CLIENT_SUSPENDED;
+
+ if (c->session != NULL &&
+ gettimeofday(&c->session->activity_time, NULL) != 0)
+ fatal("gettimeofday failed");
+
tty_start_tty(&c->tty);
server_redraw_client(c);
recalculate_sizes();
- if (c->session != NULL)
- c->session->activity = time(NULL);
break;
case MSG_ENVIRON:
if (datalen != sizeof environdata)
@@ -665,9 +669,6 @@ server_client_msg_command(struct client *c, struct msg_command_data *data)
int argc;
char **argv, *cause;
- if (c->session != NULL)
- c->session->activity = time(NULL);
-
ctx.error = server_client_msg_error;
ctx.print = server_client_msg_print;
ctx.info = server_client_msg_info;
diff --git a/usr.bin/tmux/server.c b/usr.bin/tmux/server.c
index 19d795b7c5d..e20c9df9a00 100644
--- a/usr.bin/tmux/server.c
+++ b/usr.bin/tmux/server.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: server.c,v 1.64 2009/11/02 12:48:44 nicm Exp $ */
+/* $OpenBSD: server.c,v 1.65 2009/11/03 20:29:47 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -565,12 +565,13 @@ server_lock_server(void)
continue;
if (s->flags & SESSION_UNATTACHED) {
- s->activity = time(NULL);
+ if (gettimeofday(&s->activity_time, NULL) != 0)
+ fatal("gettimeofday failed");
continue;
}
timeout = options_get_number(&s->options, "lock-after-time");
- if (timeout <= 0 || t <= s->activity + timeout)
+ if (timeout <= 0 || t <= s->activity_time.tv_sec + timeout)
return; /* not timed out */
}
@@ -593,12 +594,13 @@ server_lock_sessions(void)
continue;
if (s->flags & SESSION_UNATTACHED) {
- s->activity = time(NULL);
+ if (gettimeofday(&s->activity_time, NULL) != 0)
+ fatal("gettimeofday failed");
continue;
}
timeout = options_get_number(&s->options, "lock-after-time");
- if (timeout > 0 && t > s->activity + timeout) {
+ if (timeout > 0 && t > s->activity_time.tv_sec + timeout) {
server_lock_session(s);
recalculate_sizes();
}
diff --git a/usr.bin/tmux/session.c b/usr.bin/tmux/session.c
index f7f3096bc71..4151c0c8f0e 100644
--- a/usr.bin/tmux/session.c
+++ b/usr.bin/tmux/session.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: session.c,v 1.11 2009/10/10 10:02:48 nicm Exp $ */
+/* $OpenBSD: session.c,v 1.12 2009/11/03 20:29:47 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -126,10 +126,10 @@ session_create(const char *name, const char *cmd, const char *cwd,
s = xmalloc(sizeof *s);
s->references = 0;
s->flags = 0;
- s->activity = time(NULL);
- if (gettimeofday(&s->tv, NULL) != 0)
+ if (gettimeofday(&s->creation_time, NULL) != 0)
fatal("gettimeofday failed");
+ memcpy(&s->activity_time, &s->creation_time, sizeof s->activity_time);
s->curw = NULL;
TAILQ_INIT(&s->lastw);
diff --git a/usr.bin/tmux/tmux.h b/usr.bin/tmux/tmux.h
index 2813480138a..e4d3f472fe8 100644
--- a/usr.bin/tmux/tmux.h
+++ b/usr.bin/tmux/tmux.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: tmux.h,v 1.155 2009/11/03 17:17:24 nicm Exp $ */
+/* $OpenBSD: tmux.h,v 1.156 2009/11/03 20:29:47 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -922,8 +922,9 @@ TAILQ_HEAD(session_groups, session_group);
struct session {
char *name;
- struct timeval tv;
- time_t activity;
+
+ struct timeval creation_time;
+ struct timeval activity_time;
u_int sx;
u_int sy;
@@ -1061,7 +1062,8 @@ struct mouse_event {
/* Client connection. */
struct client {
struct imsgbuf ibuf;
- struct timeval tv;
+
+ struct timeval creation_time;
struct environ environ;