MEDIUM: mworker: does not create the CLI proxy when no listener

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.
diff --git a/src/cli.c b/src/cli.c
index 32eaf46..e20e0c5 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -2105,7 +2105,8 @@
  */
 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 03b267f..741aa7a 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -1736,6 +1736,8 @@
 			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);
@@ -1745,22 +1747,25 @@
 		}
 		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();