From bebd2120649f0a3cc907ca207e76175979f77e55 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Wed, 15 Apr 2020 16:06:11 +0200 Subject: [PATCH] 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. --- doc/management.txt | 2 +- include/types/global.h | 9 ++------- src/haproxy.c | 3 +++ src/log.c | 2 ++ 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/management.txt b/doc/management.txt index 4da9a03b0..a1d8c9c91 100644 --- a/doc/management.txt +++ b/doc/management.txt @@ -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 diff --git a/include/types/global.h b/include/types/global.h index 82f101155..718cfd814 100644 --- a/include/types/global.h +++ b/include/types/global.h @@ -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_* */ diff --git a/src/haproxy.c b/src/haproxy.c index 278476c3e..359b97093 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -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; diff --git a/src/log.c b/src/log.c index 2cac07486..50b5080c4 100644 --- a/src/log.c +++ b/src/log.c @@ -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);