[master] 1fa2d2288 Emit valid json from `vcl.list -j` when no VCL is loaded.

Poul-Henning Kamp phk at FreeBSD.org
Sat Aug 28 06:34:07 UTC 2021


commit 1fa2d2288db3fd0007eb5551390180df3e39aa99
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Sat Aug 28 06:32:36 2021 +0000

    Emit valid json from `vcl.list -j` when no VCL is loaded.
    
    Fixes #3677

diff --git a/bin/varnishd/mgt/mgt_vcl.c b/bin/varnishd/mgt/mgt_vcl.c
index 69cd27ec5..df77dd0c8 100644
--- a/bin/varnishd/mgt/mgt_vcl.c
+++ b/bin/varnishd/mgt/mgt_vcl.c
@@ -870,8 +870,8 @@ mcf_vcl_list_json(struct cli *cli, const char * const *av, void *priv)
 		free(p);
 	} else {
 		VCLI_JSON_begin(cli, 2, av);
-		VCLI_Out(cli, ",\n");
 		VTAILQ_FOREACH(vp, &vclhead, list) {
+			VCLI_Out(cli, ",\n");
 			VCLI_Out(cli, "{\n");
 			VSB_indent(cli->sb, 2);
 			VCLI_Out(cli, "\"status\": \"%s\",\n",
@@ -899,8 +899,6 @@ mcf_vcl_list_json(struct cli *cli, const char * const *av, void *priv)
 			}
 			VSB_indent(cli->sb, -2);
 			VCLI_Out(cli, "\n}");
-			if (VTAILQ_NEXT(vp, list) != NULL)
-				VCLI_Out(cli, ",\n");
 		}
 		VCLI_JSON_end(cli);
 	}
diff --git a/bin/varnishtest/tests/b00032.vtc b/bin/varnishtest/tests/b00032.vtc
index 7fd326289..1222339a3 100644
--- a/bin/varnishtest/tests/b00032.vtc
+++ b/bin/varnishtest/tests/b00032.vtc
@@ -8,6 +8,10 @@ server s1 {
 	txresp
 } -start
 
+varnish v1 
+varnish v1 -cliok vcl.list
+varnish v1 -clijson "vcl.list -j"
+
 varnish v1 -vcl+backend {}
 varnish v1 -vcl+backend {}
 


More information about the varnish-commit mailing list