diff options
author | Nick Mathewson <nickm@torproject.org> | 2019-12-15 18:10:11 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2019-12-19 07:54:56 -0500 |
commit | 5e2318165dba782f6daa6620b17e0fa1e72b4b11 (patch) | |
tree | 3f2beaef55248c114d6d36083ded4989e186dfbb | |
parent | 1d0ccda5955957c6c09a081502b315ba21c7c62e (diff) | |
download | tor-5e2318165dba782f6daa6620b17e0fa1e72b4b11.tar.gz tor-5e2318165dba782f6daa6620b17e0fa1e72b4b11.zip |
Add "stub" files for disabled modules.
These modules are only built when the selected modules are disabled.
The provide stub implementations of the subsystem blocks. Later,
other stub implementations could move here.
Having real subsystem blocks here will let us handle disabled
configuration options better.
-rw-r--r-- | src/app/main/subsystem_list.c | 4 | ||||
-rw-r--r-- | src/core/include.am | 13 | ||||
-rw-r--r-- | src/feature/dirauth/dirauth_stub.c | 19 | ||||
-rw-r--r-- | src/feature/dirauth/dirauth_sys.h | 4 | ||||
-rw-r--r-- | src/feature/relay/relay_stub.c | 20 | ||||
-rw-r--r-- | src/feature/relay/relay_sys.h | 4 |
6 files changed, 51 insertions, 13 deletions
diff --git a/src/app/main/subsystem_list.c b/src/app/main/subsystem_list.c index a343207c1c..8b217715a5 100644 --- a/src/app/main/subsystem_list.c +++ b/src/app/main/subsystem_list.c @@ -66,13 +66,9 @@ const subsys_fns_t *tor_subsystems[] = { &sys_mainloop, &sys_or, -#ifdef HAVE_MODULE_RELAY &sys_relay, -#endif -#ifdef HAVE_MODULE_DIRAUTH &sys_dirauth, -#endif }; const unsigned n_tor_subsystems = ARRAY_LENGTH(tor_subsystems); diff --git a/src/core/include.am b/src/core/include.am index 83230fb3ca..ab4adeaf66 100644 --- a/src/core/include.am +++ b/src/core/include.am @@ -157,6 +157,11 @@ LIBTOR_APP_A_SOURCES = \ src/feature/stats/rephist.c \ src/feature/stats/predict_ports.c +# +# Sources that we only add for the real libtor_a, and not for testing. +# +LIBTOR_APP_A_STUB_SOURCES = + if BUILD_NT_SERVICES LIBTOR_APP_A_SOURCES += src/app/main/ntmain.c endif @@ -199,13 +204,19 @@ MODULE_DIRAUTH_SOURCES = \ if BUILD_MODULE_RELAY LIBTOR_APP_A_SOURCES += $(MODULE_RELAY_SOURCES) +else +LIBTOR_APP_A_STUB_SOURCES += src/feature/relay/relay_stub.c endif if BUILD_MODULE_DIRAUTH LIBTOR_APP_A_SOURCES += $(MODULE_DIRAUTH_SOURCES) +else +LIBTOR_APP_A_STUB_SOURCES += src/feature/dirauth/dirauth_stub.c endif -src_core_libtor_app_a_SOURCES = $(LIBTOR_APP_A_SOURCES) +src_core_libtor_app_a_SOURCES = \ + $(LIBTOR_APP_A_SOURCES) \ + $(LIBTOR_APP_A_STUB_SOURCES) if UNITTESTS_ENABLED # Add the sources of the modules that are needed for tests to work here. diff --git a/src/feature/dirauth/dirauth_stub.c b/src/feature/dirauth/dirauth_stub.c new file mode 100644 index 0000000000..fac68edd09 --- /dev/null +++ b/src/feature/dirauth/dirauth_stub.c @@ -0,0 +1,19 @@ +/* Copyright (c) 2001 Matej Pfajfar. + * Copyright (c) 2001-2004, Roger Dingledine. + * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. + * Copyright (c) 2007-2019, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +/** + * @file dirauth_stub.c + * @brief Stub declarations for use when dirauth module is disabled. + **/ + +#include "orconfig.h" +#include "feature/dirauth/dirauth_sys.h" + +const struct subsys_fns_t sys_dirauth = { + .name = "dirauth", + .supported = false, + .level = 70, +}; diff --git a/src/feature/dirauth/dirauth_sys.h b/src/feature/dirauth/dirauth_sys.h index 86c8d8ba3e..2d5a0cb3e7 100644 --- a/src/feature/dirauth/dirauth_sys.h +++ b/src/feature/dirauth/dirauth_sys.h @@ -12,10 +12,6 @@ #ifndef DIRAUTH_SYS_H #define DIRAUTH_SYS_H -#ifdef HAVE_MODULE_DIRAUTH - extern const struct subsys_fns_t sys_dirauth; -#endif - #endif /* !defined(DIRAUTH_SYS_H) */ diff --git a/src/feature/relay/relay_stub.c b/src/feature/relay/relay_stub.c new file mode 100644 index 0000000000..a23b991862 --- /dev/null +++ b/src/feature/relay/relay_stub.c @@ -0,0 +1,20 @@ +/* Copyright (c) 2001 Matej Pfajfar. + * Copyright (c) 2001-2004, Roger Dingledine. + * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. + * Copyright (c) 2007-2019, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +/** + * @file relay_stub.c + * @brief Stub declarations for use when relay module is disabled. + **/ + +#include "orconfig.h" +#include "feature/relay/relay_sys.h" +#include "lib/subsys/subsys.h" + +const struct subsys_fns_t sys_relay = { + .name = "relay", + .supported = false, + .level = 50, +}; diff --git a/src/feature/relay/relay_sys.h b/src/feature/relay/relay_sys.h index aa387369b5..32e21d90d8 100644 --- a/src/feature/relay/relay_sys.h +++ b/src/feature/relay/relay_sys.h @@ -12,10 +12,6 @@ #ifndef TOR_FEATURE_RELAY_RELAY_SYS_H #define TOR_FEATURE_RELAY_RELAY_SYS_H -#ifdef HAVE_MODULE_RELAY - extern const struct subsys_fns_t sys_relay; -#endif - #endif /* !defined(TOR_FEATURE_RELAY_RELAY_SYS_H) */ |