Does not create the CLI proxy if no -S argument was specified. It prevents a warning that says that the MASTER proxy does not have any bind option. --- src/cli.c | 3 ++- src/haproxy.c | 25 +++++++++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/src/cli.c b/src/cli.c index 32eaf4688..e20e0c5bd 100644 --- a/src/cli.c +++ b/src/cli.c @@ -2105,7 +2105,8 @@ int pcli_wait_for_response(struct stream *s, struct channel *rep, int an_bit) */ void mworker_cli_proxy_stop() { - stop_proxy(mworker_proxy); + if (mworker_proxy) + stop_proxy(mworker_proxy); } /* diff --git a/src/haproxy.c b/src/haproxy.c index 81db3e0fd..b89be13f1 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -1734,6 +1734,8 @@ static void init(int argc, char **argv) tmproc->pid = -1; tmproc->reloads = 0; tmproc->relative_pid = 1 + proc; + tmproc->ipc_fd[0] = -1; + tmproc->ipc_fd[1] = -1; if (mworker_cli_sockpair_new(tmproc, proc) < 0) { exit(EXIT_FAILURE); @@ -1743,22 +1745,25 @@ static void init(int argc, char **argv) } mworker_env_to_proc_list(); /* get the info of the children in the env */ - if (mworker_cli_proxy_create() < 0) { - ha_alert("Can't create the master's CLI.\n"); - exit(EXIT_FAILURE); - } - list_for_each_entry_safe(c, it, &mworker_cli_conf, list) { + if (!LIST_ISEMPTY(&mworker_cli_conf)) { - if (mworker_cli_proxy_new_listener(c->s) < 0) { + if (mworker_cli_proxy_create() < 0) { ha_alert("Can't create the master's CLI.\n"); exit(EXIT_FAILURE); } - LIST_DEL(&c->list); - free(c->s); - free(c); - } + list_for_each_entry_safe(c, it, &mworker_cli_conf, list) { + + if (mworker_cli_proxy_new_listener(c->s) < 0) { + ha_alert("Can't create the master's CLI.\n"); + exit(EXIT_FAILURE); + } + LIST_DEL(&c->list); + free(c->s); + free(c); + } + } } pattern_finalize_config(); -- 2.16.4