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


Reply via email to