[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