BUG/MINOR: diag: run the final diags before quitting when using -c
authorWilly Tarreau <w@1wt.eu>
Sat, 3 Feb 2024 11:05:08 +0000 (12:05 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 7 Feb 2024 10:42:04 +0000 (11:42 +0100)
Final diags were added in 2.4 by commit 5a6926dcf ("MINOR: diag: create
cfgdiag module"), but it's called too late in the startup process,
because when "-c" is passed, the call is not made, while it's its primary
use case. Let's just move the call earlier.

Note that currently the check in this function is limited to verifying
unicity of server cookies in a backend, so it can be backported as far
as 2.4, but there is little value in insisting if it doesn't backport
easily.

(cherry picked from commit 75d64c0d4c9c3efb0e0c9048175231887460e8af)
Signed-off-by: Willy Tarreau <w@1wt.eu>

src/haproxy.c

index 5e13ae6..f56efa0 100644 (file)
@@ -2380,6 +2380,10 @@ static void init(int argc, char **argv)
        if (global.mode & MODE_DUMP_KWD)
                dump_registered_keywords();
 
+       if (global.mode & MODE_DIAG) {
+               cfg_run_diagnostics();
+       }
+
        if (global.mode & MODE_CHECK) {
                struct peers *pr;
                struct proxy *px;
@@ -2415,10 +2419,6 @@ static void init(int argc, char **argv)
        if (global.mode & MODE_DUMP_CFG)
                deinit_and_exit(0);
 
-       if (global.mode & MODE_DIAG) {
-               cfg_run_diagnostics();
-       }
-
 #ifdef USE_OPENSSL
 
        /* Initialize SSL random generator. Must be called before chroot for