mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-13 14:43:46 +01:00
Make "invisibility" and "undumpability" properties of variables.
Previously, these were magical things that we detected by checking whether a variable's name was prefixed with two or three underscores.
This commit is contained in:
parent
a7835202cf
commit
f3330d2be3
@ -265,6 +265,13 @@ DUMMY_TYPECHECK_INSTANCE(or_options_t);
|
|||||||
#define VAR_D(varname,conftype,member,initvalue) \
|
#define VAR_D(varname,conftype,member,initvalue) \
|
||||||
CONFIG_VAR_DEFN(or_options_t, varname, conftype, member, 0, initvalue)
|
CONFIG_VAR_DEFN(or_options_t, varname, conftype, member, 0, initvalue)
|
||||||
|
|
||||||
|
#define VAR_NODUMP(varname,conftype,member,initvalue) \
|
||||||
|
CONFIG_VAR_ETYPE(or_options_t, varname, conftype, member, \
|
||||||
|
CVFLAG_NODUMP, initvalue)
|
||||||
|
#define VAR_INVIS(varname,conftype,member,initvalue) \
|
||||||
|
CONFIG_VAR_ETYPE(or_options_t, varname, conftype, member, \
|
||||||
|
CVFLAG_NODUMP|CVFLAG_INVISIBLE, initvalue)
|
||||||
|
|
||||||
#define V(member,conftype,initvalue) \
|
#define V(member,conftype,initvalue) \
|
||||||
VAR(#member, conftype, member, initvalue)
|
VAR(#member, conftype, member, initvalue)
|
||||||
|
|
||||||
@ -285,7 +292,7 @@ DUMMY_TYPECHECK_INSTANCE(or_options_t);
|
|||||||
#define VPORT(member) \
|
#define VPORT(member) \
|
||||||
VAR(#member "Lines", LINELIST_V, member ## _lines, NULL), \
|
VAR(#member "Lines", LINELIST_V, member ## _lines, NULL), \
|
||||||
VAR(#member, LINELIST_S, member ## _lines, NULL), \
|
VAR(#member, LINELIST_S, member ## _lines, NULL), \
|
||||||
VAR("__" #member, LINELIST_S, member ## _lines, NULL)
|
VAR_NODUMP("__" #member, LINELIST_S, member ## _lines, NULL)
|
||||||
|
|
||||||
/** UINT64_MAX as a decimal string */
|
/** UINT64_MAX as a decimal string */
|
||||||
#define UINT64_MAX_STRING "18446744073709551615"
|
#define UINT64_MAX_STRING "18446744073709551615"
|
||||||
@ -682,15 +689,17 @@ static config_var_t option_vars_[] = {
|
|||||||
V(WarnPlaintextPorts, CSV, "23,109,110,143"),
|
V(WarnPlaintextPorts, CSV, "23,109,110,143"),
|
||||||
OBSOLETE("UseFilteringSSLBufferevents"),
|
OBSOLETE("UseFilteringSSLBufferevents"),
|
||||||
OBSOLETE("__UseFilteringSSLBufferevents"),
|
OBSOLETE("__UseFilteringSSLBufferevents"),
|
||||||
VAR("__ReloadTorrcOnSIGHUP", BOOL, ReloadTorrcOnSIGHUP, "1"),
|
VAR_NODUMP("__ReloadTorrcOnSIGHUP", BOOL, ReloadTorrcOnSIGHUP, "1"),
|
||||||
VAR("__AllDirActionsPrivate", BOOL, AllDirActionsPrivate, "0"),
|
VAR_NODUMP("__AllDirActionsPrivate", BOOL, AllDirActionsPrivate, "0"),
|
||||||
VAR("__DisablePredictedCircuits",BOOL,DisablePredictedCircuits, "0"),
|
VAR_NODUMP("__DisablePredictedCircuits",BOOL,DisablePredictedCircuits, "0"),
|
||||||
VAR("__DisableSignalHandlers", BOOL, DisableSignalHandlers, "0"),
|
VAR_NODUMP("__DisableSignalHandlers", BOOL, DisableSignalHandlers, "0"),
|
||||||
VAR("__LeaveStreamsUnattached",BOOL, LeaveStreamsUnattached, "0"),
|
VAR_NODUMP("__LeaveStreamsUnattached",BOOL, LeaveStreamsUnattached, "0"),
|
||||||
VAR("__HashedControlSessionPassword", LINELIST, HashedControlSessionPassword,
|
VAR_NODUMP("__HashedControlSessionPassword", LINELIST,
|
||||||
|
HashedControlSessionPassword,
|
||||||
NULL),
|
NULL),
|
||||||
VAR("__OwningControllerProcess",STRING,OwningControllerProcess, NULL),
|
VAR_NODUMP("__OwningControllerProcess",STRING,OwningControllerProcess, NULL),
|
||||||
VAR("__OwningControllerFD", UINT64, OwningControllerFD, UINT64_MAX_STRING),
|
VAR_NODUMP("__OwningControllerFD", UINT64, OwningControllerFD,
|
||||||
|
UINT64_MAX_STRING),
|
||||||
V(MinUptimeHidServDirectoryV2, INTERVAL, "96 hours"),
|
V(MinUptimeHidServDirectoryV2, INTERVAL, "96 hours"),
|
||||||
V(TestingServerDownloadInitialDelay, CSV_INTERVAL, "0"),
|
V(TestingServerDownloadInitialDelay, CSV_INTERVAL, "0"),
|
||||||
V(TestingClientDownloadInitialDelay, CSV_INTERVAL, "0"),
|
V(TestingClientDownloadInitialDelay, CSV_INTERVAL, "0"),
|
||||||
@ -743,7 +752,8 @@ static config_var_t option_vars_[] = {
|
|||||||
V(TestingDirAuthVoteGuardIsStrict, BOOL, "0"),
|
V(TestingDirAuthVoteGuardIsStrict, BOOL, "0"),
|
||||||
V_D(TestingDirAuthVoteHSDir, ROUTERSET, NULL),
|
V_D(TestingDirAuthVoteHSDir, ROUTERSET, NULL),
|
||||||
V(TestingDirAuthVoteHSDirIsStrict, BOOL, "0"),
|
V(TestingDirAuthVoteHSDirIsStrict, BOOL, "0"),
|
||||||
VAR("___UsingTestNetworkDefaults", BOOL, UsingTestNetworkDefaults_, "0"),
|
VAR_INVIS("___UsingTestNetworkDefaults", BOOL, UsingTestNetworkDefaults_,
|
||||||
|
"0"),
|
||||||
|
|
||||||
END_OF_CONFIG_VARS
|
END_OF_CONFIG_VARS
|
||||||
};
|
};
|
||||||
@ -783,7 +793,8 @@ static const config_var_t testing_tor_network_defaults[] = {
|
|||||||
V(TestingDirConnectionMaxStall, INTERVAL, "30 seconds"),
|
V(TestingDirConnectionMaxStall, INTERVAL, "30 seconds"),
|
||||||
V(TestingEnableConnBwEvent, BOOL, "1"),
|
V(TestingEnableConnBwEvent, BOOL, "1"),
|
||||||
V(TestingEnableCellStatsEvent, BOOL, "1"),
|
V(TestingEnableCellStatsEvent, BOOL, "1"),
|
||||||
VAR("___UsingTestNetworkDefaults", BOOL, UsingTestNetworkDefaults_, "1"),
|
VAR_INVIS("___UsingTestNetworkDefaults", BOOL, UsingTestNetworkDefaults_,
|
||||||
|
"1"),
|
||||||
V(RendPostPeriod, INTERVAL, "2 minutes"),
|
V(RendPostPeriod, INTERVAL, "2 minutes"),
|
||||||
|
|
||||||
END_OF_CONFIG_VARS
|
END_OF_CONFIG_VARS
|
||||||
@ -8180,7 +8191,7 @@ getinfo_helper_config(control_connection_t *conn,
|
|||||||
for (i = 0; option_vars_[i].member.name; ++i) {
|
for (i = 0; option_vars_[i].member.name; ++i) {
|
||||||
const config_var_t *var = &option_vars_[i];
|
const config_var_t *var = &option_vars_[i];
|
||||||
/* don't tell controller about triple-underscore options */
|
/* don't tell controller about triple-underscore options */
|
||||||
if (!strncmp(option_vars_[i].member.name, "___", 3))
|
if (option_vars_[i].flags & CVFLAG_INVISIBLE)
|
||||||
continue;
|
continue;
|
||||||
const char *type = struct_var_get_typename(&var->member);
|
const char *type = struct_var_get_typename(&var->member);
|
||||||
if (!type)
|
if (!type)
|
||||||
|
@ -642,7 +642,7 @@ config_dump(const config_format_t *fmt, const void *default_options,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* Don't save 'hidden' control variables. */
|
/* Don't save 'hidden' control variables. */
|
||||||
if (!strcmpstart(fmt->vars[i].member.name, "__"))
|
if (fmt->vars[i].flags & CVFLAG_NODUMP)
|
||||||
continue;
|
continue;
|
||||||
if (minimal && config_is_same(fmt, options, defaults,
|
if (minimal && config_is_same(fmt, options, defaults,
|
||||||
fmt->vars[i].member.name))
|
fmt->vars[i].member.name))
|
||||||
|
@ -110,6 +110,16 @@ typedef struct struct_magic_decl_t {
|
|||||||
* fetch this option should produce a warning.
|
* fetch this option should produce a warning.
|
||||||
**/
|
**/
|
||||||
#define CVFLAG_OBSOLETE (1u<<0)
|
#define CVFLAG_OBSOLETE (1u<<0)
|
||||||
|
/**
|
||||||
|
* Flag to indicate that an option is undumpable. An undumpable option is
|
||||||
|
* never saved to disk, and is prefixed with __.
|
||||||
|
**/
|
||||||
|
#define CVFLAG_NODUMP (1u<<1)
|
||||||
|
/**
|
||||||
|
* Flag to indicate that an option is "invisible". An invisible option
|
||||||
|
* is always undumpable, and we don't tell the controller about it.
|
||||||
|
**/
|
||||||
|
#define CVFLAG_INVISIBLE (1u<<2)
|
||||||
|
|
||||||
/** A variable allowed in the configuration file or on the command line. */
|
/** A variable allowed in the configuration file or on the command line. */
|
||||||
typedef struct config_var_t {
|
typedef struct config_var_t {
|
||||||
|
Loading…
Reference in New Issue
Block a user