mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-23 14:51:27 +02:00
MEDIUM: improve config check return codes
When checking a configuration file using "-c -f xxx", sometimes it is reported that a config is valid while it will later fail (eg: no enabled listener). Instead, let's improve the return values : - return 0 if config is 100% OK - return 1 if config has errors - return 2 if config is OK but no listener nor peer is enabled
This commit is contained in:
parent
6f9b003c2b
commit
8b15ba19c3
@ -5574,12 +5574,6 @@ int check_config_validity()
|
||||
proxy = next;
|
||||
}
|
||||
|
||||
if ((curproxy = proxy) == NULL) {
|
||||
Alert("config : no <listen> line. Nothing to do !\n");
|
||||
err_code |= ERR_ALERT | ERR_FATAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
while (curproxy != NULL) {
|
||||
struct switching_rule *rule;
|
||||
struct sticking_rule *mrule;
|
||||
|
@ -548,9 +548,25 @@ void init(int argc, char **argv)
|
||||
}
|
||||
|
||||
if (global.mode & MODE_CHECK) {
|
||||
struct peers *pr;
|
||||
struct proxy *px;
|
||||
|
||||
for (pr = peers; pr; pr = pr->next)
|
||||
if (pr->peers_fe)
|
||||
break;
|
||||
|
||||
for (px = proxy; px; px = px->next)
|
||||
if (px->state == PR_STNEW && px->listen)
|
||||
break;
|
||||
|
||||
if (pr || px) {
|
||||
/* At least one peer or one listener has been found */
|
||||
qfprintf(stdout, "Configuration file is valid\n");
|
||||
exit(0);
|
||||
}
|
||||
qfprintf(stdout, "Configuration file has no error but will not start (no listener) => exit(2).\n");
|
||||
exit(2);
|
||||
}
|
||||
|
||||
global_listener_queue_task = task_new();
|
||||
if (!global_listener_queue_task) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user