From: Valentine Krasnobaeva Date: Thu, 10 Oct 2024 21:50:59 +0000 (+0200) Subject: MINOR: mworker: parse program only in MODE_DISCOVERY X-Git-Tag: v3.1-dev10~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=45a284895ae6fcb6f9d3c8efa713008d7c7ffc56;p=thirdparty%2Fhaproxy.git MINOR: mworker: parse program only in MODE_DISCOVERY This patch is a part of series to reintroduce the program support in the new master-worker architecture. Master process launches external programs, so it needs to read program section. Thus, it should be parsed in MODE_DISCOVERY. Worker does not need program settings, so let's check the runtime mode in cfg_parse_program. Worker should always skip this section. --- diff --git a/src/mworker-prog.c b/src/mworker-prog.c index e15dc16e04..59c0fee1d9 100644 --- a/src/mworker-prog.c +++ b/src/mworker-prog.c @@ -137,6 +137,9 @@ int cfg_parse_program(const char *file, int linenum, char **args, int kwm) struct mworker_proc *child; int err_code = 0; + if (!(global.mode & MODE_DISCOVERY)) + return err_code; + if (strcmp(args[0], "program") == 0) { if (alertif_too_many_args(1, file, linenum, args, &err_code)) { err_code |= ERR_ABORT; @@ -331,6 +334,9 @@ int cfg_program_postparser() int err_code = 0; struct mworker_proc *child; + if (!(global.mode & MODE_DISCOVERY)) + return err_code; + list_for_each_entry(child, &proc_list, list) { if (child->reloads == 0 && (child->options & PROC_O_TYPE_PROG)) { if (child->command == NULL) {