From: Christopher Faulet Date: Fri, 15 Mar 2024 08:01:11 +0000 (+0100) Subject: MINOR: cfgparse: Add a global option to expose deprecated directives X-Git-Tag: v3.0-dev6~86 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=189f74d4ff7b89995a89191bed9f8ae795fdbccf;p=thirdparty%2Fhaproxy.git MINOR: cfgparse: Add a global option to expose deprecated directives 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. --- diff --git a/doc/configuration.txt b/doc/configuration.txt index 34db076bb0..5b8188d61a 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -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 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. diff --git a/include/haproxy/global.h b/include/haproxy/global.h index 2e7fa6bffe..5553468786 100644 --- a/include/haproxy/global.h +++ b/include/haproxy/global.h @@ -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, diff --git a/src/cfgparse-global.c b/src/cfgparse-global.c index f31e7a05a7..b173511c9b 100644 --- a/src/cfgparse-global.c +++ b/src/cfgparse-global.c @@ -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; } diff --git a/src/haproxy.c b/src/haproxy.c index b83c20eb8b..723335a6eb 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -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)