commit 888a0be0b913bea33d9b2ba635b7f27db5fc1b95
parent a48cb9fa436720c263dd41ce501076185aeb5872
Author: Nick Mathewson <nickm@torproject.org>
Date: Wed, 8 Jan 2020 21:03:20 -0500
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.
Diffstat:
2 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/configure.ac b/configure.ac
@@ -278,7 +278,7 @@ dnl Tor modules options. These options are namespaced with --disable-module-XXX
dnl ---
dnl All our modules.
-m4_define(MODULES, relay dirauth)
+m4_define(MODULES, relay dirauth dircache)
dnl Relay module.
AC_ARG_ENABLE([module-relay],
@@ -289,6 +289,14 @@ AM_COND_IF(BUILD_MODULE_RELAY,
AC_DEFINE([HAVE_MODULE_RELAY], [1],
[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.
AC_ARG_ENABLE([module-dirauth],
AS_HELP_STRING([--disable-module-dirauth],
diff --git a/doc/HACKING/Module.md b/doc/HACKING/Module.md
@@ -11,12 +11,18 @@ selectively enable or disable, at `configure` time.
Currently, tor has these modules:
- Relay subsystem (relay)
+ - Directory cache system (dircache).
- 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`,
-which are being progressively refactored and disabled.
+The relay code is located in a directory named `src/*/*relay`, which is
+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
time. All modules are currently enabled by default.