[master] a5d2273fa Keep track of dynamic param bounds

Poul-Henning Kamp phk at FreeBSD.org
Mon Oct 21 11:56:06 UTC 2019


commit a5d2273fa8cb892f4e98f4b0094f291263d9baf0
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date:   Wed Oct 16 10:48:04 2019 +0200

    Keep track of dynamic param bounds

diff --git a/bin/varnishd/mgt/mgt_param.c b/bin/varnishd/mgt/mgt_param.c
index 3a0b57f61..b65884eae 100644
--- a/bin/varnishd/mgt/mgt_param.c
+++ b/bin/varnishd/mgt/mgt_param.c
@@ -708,16 +708,22 @@ MCF_ParamConf(enum mcf_which_e which, const char * const param,
 	AZ(VSB_finish(vsb));
 	switch (which) {
 	case MCF_DEFAULT:
-		pp->def = strdup(VSB_data(vsb));
-		AN(pp->def);
+		free(pp->dyn_def);
+		pp->dyn_def = strdup(VSB_data(vsb));
+		AN(pp->dyn_def);
+		pp->def = pp->dyn_def;
 		break;
 	case MCF_MINIMUM:
-		pp->min = strdup(VSB_data(vsb));
-		AN(pp->min);
+		free(pp->dyn_min);
+		pp->dyn_min = strdup(VSB_data(vsb));
+		AN(pp->dyn_min);
+		pp->min = pp->dyn_min;
 		break;
 	case MCF_MAXIMUM:
-		pp->max = strdup(VSB_data(vsb));
-		AN(pp->max);
+		free(pp->dyn_max);
+		pp->dyn_max = strdup(VSB_data(vsb));
+		AN(pp->dyn_max);
+		pp->max = pp->dyn_max;
 		break;
 	default:
 		WRONG("bad 'which'");
diff --git a/bin/varnishd/mgt/mgt_param.h b/bin/varnishd/mgt/mgt_param.h
index 7188b64e1..0e5258728 100644
--- a/bin/varnishd/mgt/mgt_param.h
+++ b/bin/varnishd/mgt/mgt_param.h
@@ -55,6 +55,10 @@ struct parspec {
 
 	const char	*def;
 	const char	*units;
+
+	char		*dyn_min;
+	char		*dyn_max;
+	char		*dyn_def;
 };
 
 tweak_t tweak_bool;


More information about the varnish-commit mailing list