version 1.28, 2016/10/10 21:51:39 |
version 1.29, 2016/10/16 19:04:05 |
|
|
* Detach a client. |
* Detach a client. |
*/ |
*/ |
|
|
static enum cmd_retval cmd_detach_client_exec(struct cmd *, struct cmd_q *); |
static enum cmd_retval cmd_detach_client_exec(struct cmd *, |
|
struct cmdq_item *); |
|
|
const struct cmd_entry cmd_detach_client_entry = { |
const struct cmd_entry cmd_detach_client_entry = { |
.name = "detach-client", |
.name = "detach-client", |
|
|
}; |
}; |
|
|
static enum cmd_retval |
static enum cmd_retval |
cmd_detach_client_exec(struct cmd *self, struct cmd_q *cmdq) |
cmd_detach_client_exec(struct cmd *self, struct cmdq_item *item) |
{ |
{ |
struct args *args = self->args; |
struct args *args = self->args; |
struct client *c = cmdq->state.c, *cloop; |
struct client *c = item->state.c, *cloop; |
struct session *s; |
struct session *s; |
enum msgtype msgtype; |
enum msgtype msgtype; |
|
|
|
|
msgtype = MSG_DETACH; |
msgtype = MSG_DETACH; |
|
|
if (args_has(args, 's')) { |
if (args_has(args, 's')) { |
s = cmdq->state.sflag.s; |
s = item->state.sflag.s; |
TAILQ_FOREACH(cloop, &clients, entry) { |
TAILQ_FOREACH(cloop, &clients, entry) { |
if (cloop->session == s) |
if (cloop->session == s) |
server_client_detach(cloop, msgtype); |
server_client_detach(cloop, msgtype); |