New configuration flag to warn that a variable is obsolete.

Part of 32404.
This commit is contained in:
Nick Mathewson 2019-11-07 09:14:44 -05:00
parent f6c9ca3a1d
commit 36af84ba50
2 changed files with 12 additions and 1 deletions

View File

@ -183,12 +183,18 @@ typedef struct struct_magic_decl_t {
* running.
**/
#define CFLG_IMMUTABLE (1u<<6)
/**
* Flag to indicate that we should warn that an option or type is obsolete
* whenever the user tries to use it.
**/
#define CFLG_WARN_OBSOLETE (1u<<7)
/**
* A group of flags that should be set on all obsolete options and types.
**/
#define CFLG_GROUP_OBSOLETE \
(CFLG_NOCOPY|CFLG_NOCMP|CFLG_NODUMP|CFLG_NOSET|CFLG_NOLIST)
(CFLG_NOCOPY|CFLG_NOCMP|CFLG_NODUMP|CFLG_NOSET|CFLG_NOLIST|\
CFLG_WARN_OBSOLETE)
/** A variable allowed in the configuration file or on the command line. */
typedef struct config_var_t {

View File

@ -657,6 +657,11 @@ config_assign_value(const config_mgr_t *mgr, void *options,
tor_assert(!strcmp(c->key, var->cvar->member.name));
void *object = config_mgr_get_obj_mutable(mgr, options, var->object_idx);
if (config_var_has_flag(var->cvar, CFLG_WARN_OBSOLETE)) {
log_warn(LD_GENERAL, "Skipping obsolete configuration option \"%s\".",
var->cvar->member.name);
}
return struct_var_kvassign(object, c, msg, &var->cvar->member);
}