[master] 09df260 Allow and ignore a leading '-' on cli commands.

Poul-Henning Kamp phk at FreeBSD.org
Sun Feb 26 00:52:05 CET 2017


commit 09df2607c0acc409e4f68f20badb175c5853d3a7
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Sat Feb 25 23:21:51 2017 +0000

    Allow and ignore a leading '-' on cli commands.

diff --git a/bin/varnishtest/tests/b00008.vtc b/bin/varnishtest/tests/b00008.vtc
index 19bc2d9..e536a81 100644
--- a/bin/varnishtest/tests/b00008.vtc
+++ b/bin/varnishtest/tests/b00008.vtc
@@ -4,6 +4,8 @@ varnish v1 -arg "-b ${bad_ip}:9080"
 
 varnish v1 -cliok "help"
 
+varnish v1 -cliok "-help"
+
 varnish v1 -cliok "help -a"
 
 varnish v1 -cliok "help -d"
diff --git a/include/vcli_serve.h b/include/vcli_serve.h
index 1d7d5f9..994de9d 100644
--- a/include/vcli_serve.h
+++ b/include/vcli_serve.h
@@ -70,6 +70,7 @@ struct cli_proto {
 struct cli {
 	unsigned                magic;
 #define CLI_MAGIC		0x4038d570
+	void			*priv;
 	struct vsb              *sb;
 	enum VCLI_status_e      result;
 	char                    *cmd;
diff --git a/lib/libvarnish/vcli_serve.c b/lib/libvarnish/vcli_serve.c
index 9a6cf3e..b501d96 100644
--- a/lib/libvarnish/vcli_serve.c
+++ b/lib/libvarnish/vcli_serve.c
@@ -344,7 +344,10 @@ cls_vlu(void *priv, const char *p)
 			return (0);
 		REPLACE(cli->cmd, p);
 
-		av = VAV_Parse(p, NULL, 0);
+		if (p[0] == '-')
+			av = VAV_Parse(p + 1, NULL, 0);
+		else
+			av = VAV_Parse(p, NULL, 0);
 		AN(av);
 		if (av[0] != NULL) {
 			i = cls_vlu2(priv, av);
@@ -429,6 +432,7 @@ VCLS_AddFd(struct VCLS *cs, int fdi, int fdo, cls_cb_f *closefunc, void *priv)
 	cfd->cli->vlu = VLU_New(cfd, cls_vlu, *cs->maxlen);
 	cfd->cli->sb = VSB_new_auto();
 	cfd->cli->limit = cs->limit;
+	cfd->cli->priv = priv;
 	cfd->closefunc = closefunc;
 	cfd->priv = priv;
 	AN(cfd->cli->sb);



More information about the varnish-commit mailing list