Commit 6afc5a44 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Make it possible to truly change a parameters default value, rather

than hackishly just setting its value to the wanted default.

Fixes	#1244
parent 6def8cf5
......@@ -67,7 +67,9 @@ struct choice {
const void *pick(const struct choice *cp, const char *which, const char *kind);
/* mgt_param.c */
void MCF_ParamInit(struct cli *);
void MCF_InitParams(struct cli *);
void MCF_CollectParams(void);
void MCF_SetDefault(const char *param, const char *def);
void MCF_ParamSet(struct cli *, const char *param, const char *val);
void MCF_ParamProtect(struct cli *, const char *arg);
void MCF_DumpRstParam(void);
......
......@@ -378,29 +378,22 @@ main(int argc, char * const *argv)
VTAILQ_INIT(&heritage.socks);
MCF_ParamInit(cli);
MCF_CollectParams();
if (sizeof(void *) < 8) {
/*
* Adjust default parameters for 32 bit systems to conserve
* VM space.
*/
MCF_ParamSet(cli, "workspace_client", "24k");
cli_check(cli);
MCF_ParamSet(cli, "workspace_backend", "16k");
cli_check(cli);
MCF_ParamSet(cli, "http_resp_size", "8k");
cli_check(cli);
MCF_ParamSet(cli, "http_req_size", "12k");
cli_check(cli);
MCF_ParamSet(cli, "gzip_buffer", "4k");
cli_check(cli);
MCF_SetDefault("workspace_client", "24k");
MCF_SetDefault("workspace_backend", "16k");
MCF_SetDefault("http_resp_size", "8k");
MCF_SetDefault("http_req_size", "12k");
MCF_SetDefault("gzip_buffer", "4k");
}
MCF_InitParams(cli);
cli_check(cli);
while ((o = getopt(argc, argv,
......
......@@ -879,12 +879,19 @@ MCF_SetDefaults(struct cli *cli)
/*--------------------------------------------------------------------*/
void
MCF_ParamInit(struct cli *cli)
MCF_CollectParams(void)
{
MCF_AddParams(mgt_parspec);
MCF_AddParams(WRK_parspec);
MCF_AddParams(VSL_parspec);
}
/*--------------------------------------------------------------------*/
void
MCF_InitParams(struct cli *cli)
{
/* XXX: We do this twice, to get past any interdependencies */
MCF_SetDefaults(NULL);
......@@ -893,6 +900,25 @@ MCF_ParamInit(struct cli *cli)
/*--------------------------------------------------------------------*/
void
MCF_SetDefault(const char *param, const char *def)
{
struct parspec *pn;
int i;
for (i = 0; i < nparspec; i++)
if (!strcmp(parspecs[i]->name, param))
break;
assert(i < nparspec);
pn = malloc(sizeof *pn);
AN(pn);
*pn = *(parspecs[i]);
pn->def = def;
parspecs[i] = pn;
}
/*--------------------------------------------------------------------*/
void
MCF_DumpRstParam(void)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment