mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-05 14:47:07 +02:00
REORG: init: do MODE_CHECK_CONDITION logic first
In MODE_CHECK_CONDITION we only parse check_condition string, provided by '-cc', and then we evaluate it. Haproxy process terminates at the end of {if..else} block anyway, if the test has failed or passed. So, it will be more appropriate to perform MODE_CHECK_CONDITION test first and then do all other process runtime mode verifications.
This commit is contained in:
parent
ad946a704d
commit
10de58fbfb
@ -2063,26 +2063,6 @@ static void init(int argc, char **argv)
|
||||
global.mode &= ~MODE_MWORKER;
|
||||
}
|
||||
|
||||
/* set the atexit functions when not doing configuration check */
|
||||
if (!(global.mode & (MODE_CHECK | MODE_CHECK_CONDITION))
|
||||
&& (getenv("HAPROXY_MWORKER_REEXEC") != NULL)) {
|
||||
|
||||
if (global.mode & MODE_MWORKER) {
|
||||
atexit_flag = 1;
|
||||
atexit(reexec_on_failure);
|
||||
} else if (global.mode & MODE_MWORKER_WAIT) {
|
||||
atexit_flag = 1;
|
||||
atexit(exit_on_waitmode_failure);
|
||||
}
|
||||
}
|
||||
|
||||
if (change_dir && chdir(change_dir) < 0) {
|
||||
ha_alert("Could not change to directory %s : %s\n", change_dir, strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
usermsgs_clr("config");
|
||||
|
||||
if (global.mode & MODE_CHECK_CONDITION) {
|
||||
int result;
|
||||
|
||||
@ -2144,6 +2124,25 @@ static void init(int argc, char **argv)
|
||||
exit(result ? 0 : 1);
|
||||
}
|
||||
|
||||
/* set the atexit functions when not doing configuration check */
|
||||
if (!(global.mode & MODE_CHECK) && (getenv("HAPROXY_MWORKER_REEXEC") != NULL)) {
|
||||
|
||||
if (global.mode & MODE_MWORKER) {
|
||||
atexit_flag = 1;
|
||||
atexit(reexec_on_failure);
|
||||
} else if (global.mode & MODE_MWORKER_WAIT) {
|
||||
atexit_flag = 1;
|
||||
atexit(exit_on_waitmode_failure);
|
||||
}
|
||||
}
|
||||
|
||||
if (change_dir && chdir(change_dir) < 0) {
|
||||
ha_alert("Could not change to directory %s : %s\n", change_dir, strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
usermsgs_clr("config");
|
||||
|
||||
/* in wait mode, we don't try to read the configuration files */
|
||||
if (!(global.mode & MODE_MWORKER_WAIT)) {
|
||||
char *env_cfgfiles = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user