BUG/MINOR: mworker: section ignored in discovery after a post_section_parser

When a new section is discovered, the post_section_parser of the
previous section is called. However in the new master-worker mode the
discovery mode will skip the post_section_parser. But instead of
trying to parse the current section keyword after that, it would skip
completely the current line.

This is a minor bug since there isn't a lot of section with
post_section_parser, and not a lot of section to parse in discovery
mode.

But this could be reproduced like this:

	global
	        expose-deprecated-directives

	resolvers res
		parse-resolv-conf

	program foo
	        command sleep 10

	program bar
	       command sleep 10

Ths 'resolvers' section has a post_section_parser which will be ignored
in discovery mode with the consequence of ignoring the first program
section.

This must be backported in 3.1.
This commit is contained in:
William Lallemand 2025-02-12 12:09:05 +01:00
parent 731340afbd
commit 2c270a05f0

View File

@ -2578,7 +2578,7 @@ int parse_cfg(const struct cfgfile *cfg)
/* don't call post_section_parser in MODE_DISCOVERY, except program section */
if ((global.mode & MODE_DISCOVERY) && (strcmp(pcs->section_name, "program") != 0))
continue;
goto section_parser;
status = pcs->post_section_parser();
err_code |= status;
@ -2590,6 +2590,7 @@ int parse_cfg(const struct cfgfile *cfg)
}
pcs = NULL;
section_parser:
if (!cs) {
/* ignore unknown section names during the first read in MODE_DISCOVERY */
if (global.mode & MODE_DISCOVERY)