mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 15:17:01 +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;
|
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) {
|
if (global.mode & MODE_CHECK_CONDITION) {
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
@ -2144,6 +2124,25 @@ static void init(int argc, char **argv)
|
|||||||
exit(result ? 0 : 1);
|
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 */
|
/* in wait mode, we don't try to read the configuration files */
|
||||||
if (!(global.mode & MODE_MWORKER_WAIT)) {
|
if (!(global.mode & MODE_MWORKER_WAIT)) {
|
||||||
char *env_cfgfiles = NULL;
|
char *env_cfgfiles = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user