MINOR: init: report in "haproxy -c" whether there were warnings or not

This helps quickly checking if the config produces any warning. For
this we reuse the "warned" bit field to add a new WARN_ANY bit that is
set by ha_warning(). The rest of the bit field was also cleaned from
unused bits.
This commit is contained in:
Willy Tarreau 2020-04-15 16:06:11 +02:00
parent 8ba10fea69
commit bebd212064
4 changed files with 8 additions and 8 deletions

View File

@ -193,7 +193,7 @@ list of options is :
-c : only performs a check of the configuration files and exits before trying
to bind. The exit status is zero if everything is OK, or non-zero if an
error is encountered.
error is encountered. Presence of warnings will be reported if any.
-d : enable debug mode. This disables daemon mode, forces the process to stay
in foreground and to show incoming and outgoing events. It is equivalent to

View File

@ -242,13 +242,8 @@ extern int atexit_flag;
extern unsigned char boot_seed[20]; // per-boot random seed (160 bits initially)
/* bit values to go with "warned" above */
/* unassigned : 0x00000001 (previously: WARN_BLOCK_DEPRECATED) */
/* unassigned : 0x00000002 */
/* unassigned : 0x00000004 (previously: WARN_REDISPATCH_DEPRECATED) */
/* unassigned : 0x00000008 (previously: WARN_CLITO_DEPRECATED) */
/* unassigned : 0x00000010 (previously: WARN_SRVTO_DEPRECATED) */
/* unassigned : 0x00000020 (previously: WARN_CONTO_DEPRECATED) */
#define WARN_FORCECLOSE_DEPRECATED 0x00000040
#define WARN_ANY 0x00000001 /* any warning was emitted */
#define WARN_FORCECLOSE_DEPRECATED 0x00000002
/* to be used with warned and WARN_* */

View File

@ -2101,6 +2101,9 @@ static void init(int argc, char **argv)
struct peers *pr;
struct proxy *px;
if (warned & WARN_ANY)
qfprintf(stdout, "Warnings were found.\n");
for (pr = cfg_peers; pr; pr = pr->next)
if (pr->peers_fe)
break;

View File

@ -1123,6 +1123,8 @@ void ha_warning(const char *fmt, ...)
{
va_list argp;
warned |= WARN_ANY;
if (!(global.mode & MODE_QUIET) || (global.mode & MODE_VERBOSE)) {
va_start(argp, fmt);
print_message("WARNING", fmt, argp);