]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: cfgparse: Add a global option to expose deprecated directives
authorChristopher Faulet <cfaulet@haproxy.com>
Fri, 15 Mar 2024 08:01:11 +0000 (09:01 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 15 Mar 2024 10:31:48 +0000 (11:31 +0100)
Similarly to "expose-exprimental-directives" option, there is no a global
option to expose some deprecated directives. Idea is to have a way to silent
warnings about deprecated directives when there is no alternative solution.

Of course, deprecated directives covered by this option are not listed and
may change. It is only a best effort to let users upgrade smoothly.

doc/configuration.txt
include/haproxy/global.h
src/cfgparse-global.c
src/haproxy.c

index 34db076bb0c2d17274f33ed234670221c8728e30..5b8188d61a0590a2bc7022465e43fb549f1a2eb8 100644 (file)
@@ -1262,6 +1262,7 @@ The following keywords are supported in the "global" section :
    - deviceatlas-log-level
    - deviceatlas-properties-cookie
    - deviceatlas-separator
+   - expose-deprecated-directives
    - expose-experimental-directives
    - external-check
    - fd-hard-limit
@@ -1738,6 +1739,12 @@ deviceatlas-separator <char>
   Sets the character separator for the API properties results. This directive
   is optional and set to | by default if not set.
 
+expose-deprecated-directives
+  This statement must appear before using some directives tagged as deprecated
+  to silent warnings and make sure the config file will not be rejected. Not
+  all deprecated directives are concerned, only those without any alternative
+  solution.
+
 expose-experimental-directives
   This statement must appear before using directives tagged as experimental or
   the config file will be rejected.
index 2e7fa6bffeaec294fa02fe26143fe6e03cc75c2e..55534687864004a8fbf901a1ca415b9249996250 100644 (file)
@@ -78,6 +78,7 @@ static inline int already_warned(unsigned int warning)
 }
 
 extern unsigned int experimental_directives_allowed;
+extern unsigned int deprecated_directives_allowed;
 
 struct cfg_keyword;
 int check_kw_experimental(struct cfg_keyword *kw, const char *file, int linenum,
index f31e7a05a73af5c7428acc7f5413afa84971b630..b173511c9b844f82c95c555403bfe4e23abd61d8 100644 (file)
@@ -75,6 +75,9 @@ int cfg_parse_global(const char *file, int linenum, char **args, int kwm)
                alertif_too_many_args(0, file, linenum, args, &err_code);
                goto out;
        }
+       else if (strcmp(args[0], "expose-deprecated-directives") == 0) {
+               deprecated_directives_allowed = 1;
+       }
        else if (strcmp(args[0], "expose-experimental-directives") == 0) {
                experimental_directives_allowed = 1;
        }
index b83c20eb8bfce38b0389472043d0630d952d9d10..723335a6eb7153af74ea8738170a06a049a9b433 100644 (file)
@@ -267,6 +267,7 @@ unsigned int warned = 0;
 unsigned int tainted = 0;
 
 unsigned int experimental_directives_allowed = 0;
+unsigned int deprecated_directives_allowed = 0;
 
 int check_kw_experimental(struct cfg_keyword *kw, const char *file, int linenum,
                           char **errmsg)