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;
|
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) {
|
while (curproxy != NULL) {
|
||||||
struct switching_rule *rule;
|
struct switching_rule *rule;
|
||||||
struct sticking_rule *mrule;
|
struct sticking_rule *mrule;
|
||||||
|
@ -548,9 +548,25 @@ void init(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (global.mode & MODE_CHECK) {
|
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");
|
qfprintf(stdout, "Configuration file is valid\n");
|
||||||
exit(0);
|
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();
|
global_listener_queue_task = task_new();
|
||||||
if (!global_listener_queue_task) {
|
if (!global_listener_queue_task) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user