Define a "dircache" module.

For now, this module is enabled whenever the relay module is
enabled, and disabled whenever the relay module is disabled.  Though
they are logically separate, the use cases for running one without
the other are rare enough that we don't really want to support
compiling them independently.
This commit is contained in:
Nick Mathewson 2020-01-08 21:03:20 -05:00
parent a48cb9fa43
commit 888a0be0b9
2 changed files with 18 additions and 4 deletions

View File

@ -278,7 +278,7 @@ dnl Tor modules options. These options are namespaced with --disable-module-XXX
dnl --- dnl ---
dnl All our modules. dnl All our modules.
m4_define(MODULES, relay dirauth) m4_define(MODULES, relay dirauth dircache)
dnl Relay module. dnl Relay module.
AC_ARG_ENABLE([module-relay], AC_ARG_ENABLE([module-relay],
@ -289,6 +289,14 @@ AM_COND_IF(BUILD_MODULE_RELAY,
AC_DEFINE([HAVE_MODULE_RELAY], [1], AC_DEFINE([HAVE_MODULE_RELAY], [1],
[Compile with Relay feature support])) [Compile with Relay feature support]))
dnl Dircache module. (This cannot be enabled or disabled independently of
dnl the relay module.)
AM_CONDITIONAL(BUILD_MODULE_DIRCACHE,
[test "x$enable_module_relay" != "xno"])
AM_COND_IF(BUILD_MODULE_DIRCACHE,
AC_DEFINE([HAVE_MODULE_DIRCACHE], [1],
[Compile with directory cache support]))
dnl Directory Authority module. dnl Directory Authority module.
AC_ARG_ENABLE([module-dirauth], AC_ARG_ENABLE([module-dirauth],
AS_HELP_STRING([--disable-module-dirauth], AS_HELP_STRING([--disable-module-dirauth],

View File

@ -11,12 +11,18 @@ selectively enable or disable, at `configure` time.
Currently, tor has these modules: Currently, tor has these modules:
- Relay subsystem (relay) - Relay subsystem (relay)
- Directory cache system (dircache).
- Directory Authority subsystem (dirauth) - Directory Authority subsystem (dirauth)
dirauth is located in its own directory in `src/feature/dirauth/`. The dirauth code is located in its own directory in `src/feature/dirauth/`.
Relay is located in directories named `src/*/*relay` and `src/*/*dircache`, The relay code is located in a directory named `src/*/*relay`, which is
which are being progressively refactored and disabled. being progressively refactored and disabled.
The dircache code is located in `src/*/*dircache`. Right now, it is
disabled if and only if the relay module is disabled. (We are treating
them as separate modules because they are logically independent, not
because you would actually want to run one without the other.)
To disable a module, pass `--disable-module-{dirauth,relay}` at configure To disable a module, pass `--disable-module-{dirauth,relay}` at configure
time. All modules are currently enabled by default. time. All modules are currently enabled by default.