MEDIUM: cfgparse: parse only "global" section in MODE_DISCOVERY

This commit is a part of the series to add a support of discovery mode in the
configuration parser and in initialization sequence.

So, in discovery mode, when we read the configuration the first time, we
parse for the moment only the "global" section. Unknown section names will be
ignored.
This commit is contained in:
Valentine Krasnobaeva 2024-10-01 16:11:01 +02:00 committed by Willy Tarreau
parent 699be6a55d
commit e2b4768224

View File

@ -2565,6 +2565,10 @@ int parse_cfg(const struct cfgfile *cfg)
if (pcs && pcs->post_section_parser) {
int status;
/* for the moment don't call post_section_parser in MODE_DISCOVERY */
if (global.mode & MODE_DISCOVERY)
continue;
status = pcs->post_section_parser();
err_code |= status;
if (status & ERR_FATAL)
@ -2576,12 +2580,19 @@ int parse_cfg(const struct cfgfile *cfg)
pcs = NULL;
if (!cs) {
/* ignore unknown section names during the first read in MODE_DISCOVERY */
if (global.mode & MODE_DISCOVERY)
continue;
ha_alert("parsing [%s:%d]: unknown keyword '%s' out of section.\n", file, linenum, args[0]);
err_code |= ERR_ALERT | ERR_FATAL;
fatal++;
} else {
int status;
/* for the moment read only the "global" section in MODE_DISCOVERY */
if ((global.mode & MODE_DISCOVERY) && (strcmp(cs->section_name, "global") != 0))
continue;
status = cs->section_parser(file, linenum, args, kwm);
err_code |= status;
if (status & ERR_FATAL)