MINOR: systemd wrapper: add support for passing the -x option.

Make the systemd wrapper chech if HAPROXY_STATS_SOCKET if set.
If set, it will use it as an argument to the "-x" option, which makes
haproxy asks for any listening socket, on the stats socket, in order
to achieve reloads with no new connection lost.
diff --git a/contrib/systemd/haproxy.service.in b/contrib/systemd/haproxy.service.in
index dca81a2..05bb716 100644
--- a/contrib/systemd/haproxy.service.in
+++ b/contrib/systemd/haproxy.service.in
@@ -3,6 +3,8 @@
 After=network.target
 
 [Service]
+# You can point the environment variable HAPROXY_STATS_SOCKET to a stats
+# socket if you want seamless reloads.
 Environment="CONFIG=/etc/haproxy/haproxy.cfg" "PIDFILE=/run/haproxy.pid"
 ExecStartPre=@SBINDIR@/haproxy -f $CONFIG -c -q
 ExecStart=@SBINDIR@/haproxy-systemd-wrapper -f $CONFIG -p $PIDFILE
diff --git a/src/haproxy-systemd-wrapper.c b/src/haproxy-systemd-wrapper.c
index f6a9c85..457f5bd 100644
--- a/src/haproxy-systemd-wrapper.c
+++ b/src/haproxy-systemd-wrapper.c
@@ -92,11 +92,15 @@
 	pid = fork();
 	if (!pid) {
 		char **argv;
+		char *stats_socket = NULL;
 		int i;
 		int argno = 0;
 
 		/* 3 for "haproxy -Ds -sf" */
-		argv = calloc(4 + main_argc + nb_pid + 1, sizeof(char *));
+		if (nb_pid > 0)
+			stats_socket = getenv("HAPROXY_STATS_SOCKET");
+		argv = calloc(4 + main_argc + nb_pid + 1 +
+		    (stats_socket != NULL ? 2 : 0), sizeof(char *));
 		if (!argv) {
 			fprintf(stderr, SD_NOTICE "haproxy-systemd-wrapper: failed to calloc(), please try again later.\n");
 			exit(1);
@@ -121,6 +125,10 @@
 			argv[argno++] = "-sf";
 			for (i = 0; i < nb_pid; ++i)
 				argv[argno++] = pid_strv[i];
+			if (stats_socket != NULL) {
+				argv[argno++] = "-x";
+				argv[argno++] = stats_socket;
+			}
 		}
 		argv[argno] = NULL;