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:
Willy Tarreau 2012-02-02 17:48:18 +01:00
parent 6f9b003c2b
commit 8b15ba19c3
2 changed files with 18 additions and 8 deletions

View File

@ -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;

View File

@ -548,8 +548,24 @@ void init(int argc, char **argv)
}
if (global.mode & MODE_CHECK) {
qfprintf(stdout, "Configuration file is valid\n");
exit(0);
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();