Merge branch 'ticket30452_035_v3' into ticket30452_041_v3

This commit is contained in:
Nick Mathewson 2019-05-14 19:20:53 -04:00
commit 1c95bdb83b
4 changed files with 24 additions and 0 deletions

3
changes/bug30452 Normal file
View File

@ -0,0 +1,3 @@
o Minor features (compile-time modules):
- Add a --list-modules command to print a list of which compile-time
modules are enabled. Closes ticket 30452.

View File

@ -88,6 +88,10 @@ COMMAND-LINE OPTIONS
List all valid options that are scheduled to become obsolete in a
future version. (This is a warning, not a promise.)
[[opt-list-modules]] **--list-modules**::
For each optional module, list whether or not it has been compiled
into Tor. (Any module not listed is not optional in this version of Tor.)
[[opt-version]] **--version**::
Display Tor version and exit. The output is a single line of the format
"Tor version [version number]." (The version number format

View File

@ -2449,6 +2449,7 @@ static const struct {
{ "--quiet", TAKES_NO_ARGUMENT },
{ "--hush", TAKES_NO_ARGUMENT },
{ "--version", TAKES_NO_ARGUMENT },
{ "--list-modules", TAKES_NO_ARGUMENT },
{ "--library-versions", TAKES_NO_ARGUMENT },
{ "-h", TAKES_NO_ARGUMENT },
{ "--help", TAKES_NO_ARGUMENT },
@ -2670,6 +2671,13 @@ list_deprecated_options(void)
}
}
/** Print all compile-time modules and their enabled/disabled status. */
static void
list_enabled_modules(void)
{
printf("%s: %s\n", "dirauth", have_module_dirauth() ? "yes" : "no");
}
/** Last value actually set by resolve_my_address. */
static uint32_t last_resolved_addr = 0;
@ -5195,6 +5203,11 @@ options_init_from_torrc(int argc, char **argv)
return 1;
}
if (config_line_find(cmdline_only_options, "--list-modules")) {
list_enabled_modules();
return 1;
}
if (config_line_find(cmdline_only_options, "--library-versions")) {
printf("Tor version %s. \n", get_version());
printf("Library versions\tCompiled\t\tRuntime\n");

View File

@ -27,6 +27,8 @@ authdir_mode_v3(const or_options_t *options)
return authdir_mode(options) && options->V3AuthoritativeDir != 0;
}
#define have_module_dirauth() (1)
#else /* HAVE_MODULE_DIRAUTH */
#define authdir_mode(options) (((void)(options)),0)
@ -37,6 +39,8 @@ authdir_mode_v3(const or_options_t *options)
#define authdir_mode_bridge(options) (((void)(options)),0)
#define authdir_mode_v3(options) (((void)(options)),0)
#define have_module_dirauth() (0)
#endif /* HAVE_MODULE_DIRAUTH */
#endif /* TOR_MODE_H */