diff --git a/src/cfgparse.c b/src/cfgparse.c index 85b74f0d6..c53e48def 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -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)