From: Valentine Krasnobaeva Date: Tue, 1 Oct 2024 14:11:01 +0000 (+0200) Subject: MEDIUM: cfgparse: parse only "global" section in MODE_DISCOVERY X-Git-Tag: v3.1-dev10~39 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e2b47682243130b502ff835c6ed2e50b65451738;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/cfgparse.c b/src/cfgparse.c index 85b74f0d6b..c53e48def5 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -2565,6 +2565,10 @@ next_line: 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 @@ next_line: 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)