From b01dcd79715d968cb39dc892215c2f6921d43974 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Wed, 23 Sep 2009 06:18:47 +0000 Subject: Remove the internal tmux locking and instead detach each client and run the command specified by a new option "lock-command" (by default "lock -np") in each client. This means each terminal has to be unlocked individually but simplifies the code and allows the system password to be used to unlock. Note that the set-password command is gone, so it will need to be removed from configuration files, and the -U command line flag has been removed. This is the third protocol version change so again it is best to stop the tmux server before upgrading. --- server-msg.c | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) (limited to 'server-msg.c') diff --git a/server-msg.c b/server-msg.c index 7f88e262..0b9b2a90 100644 --- a/server-msg.c +++ b/server-msg.c @@ -40,7 +40,6 @@ server_msg_dispatch(struct client *c) struct imsg imsg; struct msg_command_data commanddata; struct msg_identify_data identifydata; - struct msg_unlock_data unlockdata; struct msg_environ_data environdata; ssize_t n, datalen; @@ -95,31 +94,15 @@ server_msg_dispatch(struct client *c) tty_close(&c->tty); server_write_client(c, MSG_EXITED, NULL, 0); break; - case MSG_UNLOCK: - if (datalen != sizeof unlockdata) - fatalx("bad MSG_UNLOCK size"); - memcpy(&unlockdata, imsg.data, sizeof unlockdata); - - unlockdata.pass[(sizeof unlockdata.pass) - 1] = '\0'; - switch (server_unlock(unlockdata.pass)) { - case -1: - server_write_error(c, "bad password"); - break; - case -2: - server_write_error(c, - "too many bad passwords, sleeping"); - break; - } - memset(&unlockdata, 0, sizeof unlockdata); - server_write_client(c, MSG_EXIT, NULL, 0); - break; case MSG_WAKEUP: + case MSG_UNLOCK: if (datalen != 0) fatalx("bad MSG_WAKEUP size"); c->flags &= ~CLIENT_SUSPENDED; tty_start_tty(&c->tty); server_redraw_client(c); + server_activity = time(NULL); break; case MSG_ENVIRON: if (datalen != sizeof environdata) -- cgit