[master] 1fa2d44 Make it possible to name -a arguments

Poul-Henning Kamp phk at FreeBSD.org
Sat Aug 12 23:08:16 CEST 2017


commit 1fa2d446c80359163989f56c99caac9afdea4749
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Sat Aug 12 21:07:17 2017 +0000

    Make it possible to name -a arguments

diff --git a/bin/varnishd/common/heritage.h b/bin/varnishd/common/heritage.h
index 987b072..528bc1e 100644
--- a/bin/varnishd/common/heritage.h
+++ b/bin/varnishd/common/heritage.h
@@ -39,6 +39,7 @@ struct listen_arg {
 #define LISTEN_ARG_MAGIC		0xbb2fc333
 	VTAILQ_ENTRY(listen_arg)	list;
 	const char			*endpoint;
+	const char			*name;
 	VTAILQ_HEAD(,listen_sock)	socks;
 	const struct transport		*transport;
 };
@@ -50,6 +51,7 @@ struct listen_sock {
 	VTAILQ_ENTRY(listen_sock)	arglist;
 	int				sock;
 	char				*endpoint;
+	const char			*name;
 	struct suckaddr			*addr;
 	const struct transport		*transport;
 };
diff --git a/bin/varnishd/mgt/mgt_acceptor.c b/bin/varnishd/mgt/mgt_acceptor.c
index 83969b4..a4e7e41 100644
--- a/bin/varnishd/mgt/mgt_acceptor.c
+++ b/bin/varnishd/mgt/mgt_acceptor.c
@@ -122,6 +122,7 @@ mac_callback(void *priv, const struct suckaddr *sa)
 	AN(ls->addr);
 	ls->endpoint = strdup(la->endpoint);
 	AN(ls->endpoint);
+	la->name = ls->name;
 	ls->transport = la->transport;
 	VJ_master(JAIL_MASTER_PRIVPORT);
 	fail = mac_opensocket(ls);
@@ -154,25 +155,24 @@ mac_callback(void *priv, const struct suckaddr *sa)
 }
 
 void
-MAC_Arg(const char *arg)
+MAC_Arg(const char *spec)
 {
 	char **av;
 	struct listen_arg *la;
 	const char *err;
 	int error;
 	const struct transport *xp;
+	const char *name;
 
-	av = VAV_Parse(arg, NULL, ARGV_COMMA);
-	if (av == NULL)
-		ARGV_ERR("Parse error: out of memory\n");
-	if (av[0] != NULL)
-		ARGV_ERR("%s\n", av[0]);
+	av = MGT_NamedArg(spec, &name, "-a");
+	AN(av);
 
 	ALLOC_OBJ(la, LISTEN_ARG_MAGIC);
 	AN(la);
 	VTAILQ_INIT(&la->socks);
 	VTAILQ_INSERT_TAIL(&listen_args, la, list);
 	la->endpoint = av[1];
+	la->name = name;
 
 	if (av[2] == NULL) {
 		xp = XPORT_Find("http/1");
diff --git a/bin/varnishd/mgt/mgt_main.c b/bin/varnishd/mgt/mgt_main.c
index 31f9bf7..8b6c643 100644
--- a/bin/varnishd/mgt/mgt_main.c
+++ b/bin/varnishd/mgt/mgt_main.c
@@ -838,7 +838,7 @@ main(int argc, char * const *argv)
 	}
 
 	if (VTAILQ_EMPTY(&heritage.socks))
-		MAC_Arg(":80");
+		MAC_Arg(":80\0");	// XXX: extra NUL for FlexeLint
 
 	assert(!VTAILQ_EMPTY(&heritage.socks));
 



More information about the varnish-commit mailing list