From 7a4aa146187cc60d2df66333b3e7dd5a5176f793 Mon Sep 17 00:00:00 2001 From: nicm Date: Wed, 28 Oct 2020 10:09:10 +0000 Subject: [PATCH] Do not require that there be no other clients before loading the config, being the first client is enough. GitHub issue 2438. --- server-client.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/server-client.c b/server-client.c index 5749ba94..e9587e4c 100644 --- a/server-client.c +++ b/server-client.c @@ -2237,7 +2237,7 @@ server_client_dispatch_identify(struct client *c, struct imsg *imsg) c->fd = open(c->ttyname, O_RDWR|O_NOCTTY); #endif - if (c->flags & CLIENT_CONTROL) + if (c->flags & CLIENT_CONTROL) control_start(c); else if (c->fd != -1) { if (tty_init(&c->tty, c) != 0) { @@ -2252,13 +2252,13 @@ server_client_dispatch_identify(struct client *c, struct imsg *imsg) } /* - * If this is the first client that has finished identifying, load - * configuration files. + * If this is the first client, load configuration files. Any later + * clients are allowed to continue with their command even if the + * config has not been loaded - they might have been run from inside it */ if ((~c->flags & CLIENT_EXIT) && - !cfg_finished && - c == TAILQ_FIRST(&clients) && - TAILQ_NEXT(c, entry) == NULL) + !cfg_finished && + c == TAILQ_FIRST(&clients)) start_cfg(); }