aboutsummaryrefslogtreecommitdiff
path: root/server-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'server-client.c')
-rw-r--r--server-client.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/server-client.c b/server-client.c
index aa0f838e..87f40018 100644
--- a/server-client.c
+++ b/server-client.c
@@ -161,7 +161,7 @@ server_client_is_default_key_table(struct client *c, struct key_table *table)
}
/* Create a new client. */
-void
+struct client *
server_client_create(int fd)
{
struct client *c;
@@ -214,6 +214,7 @@ server_client_create(int fd)
TAILQ_INSERT_TAIL(&clients, c, entry);
log_debug("new client %p", c);
+ return (c);
}
/* Open client terminal if needed. */
@@ -1550,6 +1551,9 @@ server_client_dispatch_command(struct client *c, struct imsg *imsg)
int argc;
char **argv, *cause;
+ if (c->flags & CLIENT_EXIT)
+ return;
+
if (imsg->hdr.len - IMSG_HEADER_SIZE < sizeof data)
fatalx("bad MSG_COMMAND size");
memcpy(&data, imsg->data, sizeof data);