MINOR/BUG: mworker/cli: do not use the unix_bind prefix for the master CLI socket

If the configuration file contains a 'unix-bind prefix' directive, and
if we use the -S option and specify a UNIX socket path, the path of the
socket will be prepended with the value of the unix-bind prefix.

For instance, if we have 'unix-bind prefix /tmp/sockets/' and we use
'-S /tmp/master-socket' on the command line, we will get this error:

Starting proxy MASTER:
cannot bind UNIX socket (No such file or directory) [/tmp/sockets/tmp/master-socket]

So this patch adds an exception, and will ignore the unix-bind prefix
for the master CLI socket.

This patch can be backported as far as 1.9.

(cherry picked from commit 1b8dacc858d7cb43488fb2ffca053274c571da1d)
[wt: cli_fe was called stats_fe in 2.3 and older]
Signed-off-by: Willy Tarreau <w@1wt.eu>
(cherry picked from commit 2af5bc482c4cf6ff71f633bf6b78f31bc4637d79)
[wt: context adjustments]
Signed-off-by: Willy Tarreau <w@1wt.eu>
(cherry picked from commit d746589321fabaf227c0029d59c7c9a2d4b669b2)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/cfgparse.c b/src/cfgparse.c
index c6e4b12..2523e21 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -123,6 +123,8 @@
 
 struct list postparsers = LIST_HEAD_INIT(postparsers);
 
+extern struct proxy *mworker_proxy;
+
 char *cursection = NULL;
 struct proxy defproxy = { };		/* fake proxy used to assign default values on all instances */
 int cfg_maxpconn = 0;                   /* # of simultaneous connections per proxy (-N) */
@@ -164,7 +166,7 @@
 		}
 
 		ss2 = str2sa_range(str, NULL, &port, &end, err,
-		                   curproxy == global.stats_fe ? NULL : global.unix_bind.prefix,
+		                   (curproxy == global.stats_fe || curproxy == mworker_proxy) ? NULL : global.unix_bind.prefix,
 		                   NULL, 1);
 		if (!ss2)
 			goto fail;
diff --git a/src/cli.c b/src/cli.c
index 4ae2cfd..b6be8f1 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -96,7 +96,7 @@
 
 extern const char *stat_status_codes[];
 
-static struct proxy *mworker_proxy; /* CLI proxy of the master */
+struct proxy *mworker_proxy; /* CLI proxy of the master */
 
 static char *cli_gen_usage_msg(struct appctx *appctx)
 {