version 1.71, 2013/10/10 11:46:28 |
version 1.72, 2013/10/10 12:13:29 |
|
|
void |
void |
server_lock_client(struct client *c) |
server_lock_client(struct client *c) |
{ |
{ |
const char *cmd; |
const char *cmd; |
size_t cmdlen; |
size_t cmdlen; |
struct msg_lock_data lockdata; |
|
|
|
if (c->flags & CLIENT_CONTROL) |
if (c->flags & CLIENT_CONTROL) |
return; |
return; |
|
|
return; |
return; |
|
|
cmd = options_get_string(&c->session->options, "lock-command"); |
cmd = options_get_string(&c->session->options, "lock-command"); |
cmdlen = strlcpy(lockdata.cmd, cmd, sizeof lockdata.cmd); |
if (strlen(cmd) + 1 > MAX_IMSGSIZE - IMSG_HEADER_SIZE) |
if (cmdlen >= sizeof lockdata.cmd) |
|
return; |
return; |
|
|
tty_stop_tty(&c->tty); |
tty_stop_tty(&c->tty); |
|
|
tty_raw(&c->tty, tty_term_string(c->tty.term, TTYC_E3)); |
tty_raw(&c->tty, tty_term_string(c->tty.term, TTYC_E3)); |
|
|
c->flags |= CLIENT_SUSPENDED; |
c->flags |= CLIENT_SUSPENDED; |
server_write_client(c, MSG_LOCK, &lockdata, sizeof lockdata); |
server_write_client(c, MSG_LOCK, cmd, strlen(cmd) + 1); |
} |
} |
|
|
void |
void |