diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-09-20 08:09:35 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-09-20 11:07:42 -0400 |
commit | b54a5e704ff4d3585bdd8459b83d4c522d070fba (patch) | |
tree | f0b6b54b67438528f5adecf2cc16cc6e435891af /src/core | |
parent | 08e3b88f0774fedb41a6b1c170a710dd12a7cb90 (diff) | |
download | tor-b54a5e704ff4d3585bdd8459b83d4c522d070fba.tar.gz tor-b54a5e704ff4d3585bdd8459b83d4c522d070fba.zip |
Split most of dirserv.c into several new modules
In dirauth:
* bwauth.c reads and uses bandwidth files
* guardfraction.c reads and uses the guardfraction file
* reachability.c tests relay reachability
* recommend_pkg.c handles the recommended-packages lines.
* recv_descs.c handles fingerprint files and processing incoming
routerinfos that relays upload to us
* voteflag.c computes flag thresholds and sets those thresholds on
routerstatuses when computing votes
In control:
* fmt_serverstatus.c generates the ancient "v1 server status"
format that controllers expect.
In nodelist:
* routerstatus_fmt.c formats routerstatus entries for a consensus,
a vote, or for the controller.
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/include.am | 20 | ||||
-rw-r--r-- | src/core/mainloop/main.c | 5 | ||||
-rw-r--r-- | src/core/or/connection_or.c | 2 | ||||
-rw-r--r-- | src/core/or/policies.c | 4 |
4 files changed, 29 insertions, 2 deletions
diff --git a/src/core/include.am b/src/core/include.am index 7adcc0d9df..04e27b00d5 100644 --- a/src/core/include.am +++ b/src/core/include.am @@ -56,6 +56,7 @@ LIBTOR_APP_A_SOURCES = \ src/feature/client/entrynodes.c \ src/feature/client/transports.c \ src/feature/control/control.c \ + src/feature/control/fmt_serverstatus.c \ src/feature/dirauth/keypin.c \ src/feature/dircache/conscache.c \ src/feature/dircache/consdiffmgr.c \ @@ -90,6 +91,7 @@ LIBTOR_APP_A_SOURCES = \ src/feature/nodelist/routerlist.c \ src/feature/nodelist/routerparse.c \ src/feature/nodelist/routerset.c \ + src/feature/nodelist/fmt_routerstatus.c \ src/feature/nodelist/torcert.c \ src/feature/relay/dns.c \ src/feature/relay/ext_orport.c \ @@ -103,6 +105,16 @@ LIBTOR_APP_A_SOURCES = \ src/feature/stats/geoip.c \ src/feature/stats/rephist.c +# These should eventually move into module_dirauth_sources, but for now +# the separation is only in the code location. +LIBTOR_APP_A_SOURCES += \ + src/feature/dirauth/bwauth.c \ + src/feature/dirauth/guardfraction.c \ + src/feature/dirauth/reachability.c \ + src/feature/dirauth/recommend_pkg.c \ + src/feature/dirauth/process_descs.c \ + src/feature/dirauth/voteflags.c + if BUILD_NT_SERVICES LIBTOR_APP_A_SOURCES += src/app/main/ntmain.c endif @@ -222,14 +234,21 @@ noinst_HEADERS += \ src/feature/client/transports.h \ src/feature/control/control.h \ src/feature/control/control_connection_st.h \ + src/feature/control/fmt_serverstatus.h \ + src/feature/dirauth/bwauth.h \ src/feature/dirauth/dircollate.h \ src/feature/dirauth/dirvote.h \ + src/feature/dirauth/guardfraction.h \ src/feature/dirauth/keypin.h \ src/feature/dirauth/mode.h \ src/feature/dirauth/ns_detached_signatures_st.h \ + src/feature/dirauth/reachability.h \ + src/feature/dirauth/recommend_pkg.h \ + src/feature/dirauth/process_descs.h \ src/feature/dirauth/shared_random.h \ src/feature/dirauth/shared_random_state.h \ src/feature/dirauth/vote_microdesc_hash_st.h \ + src/feature/dirauth/voteflags.h \ src/feature/dircache/cached_dir_st.h \ src/feature/dircache/conscache.h \ src/feature/dircache/consdiffmgr.h \ @@ -280,6 +299,7 @@ noinst_HEADERS += \ src/feature/nodelist/routerlist_st.h \ src/feature/nodelist/routerparse.h \ src/feature/nodelist/routerset.h \ + src/feature/nodelist/fmt_routerstatus.h \ src/feature/nodelist/routerstatus_st.h \ src/feature/nodelist/signed_descriptor_st.h \ src/feature/nodelist/torcert.h \ diff --git a/src/core/mainloop/main.c b/src/core/mainloop/main.c index 6884021bb2..2a90192c95 100644 --- a/src/core/mainloop/main.c +++ b/src/core/mainloop/main.c @@ -74,6 +74,9 @@ #include "lib/crypt_ops/crypto_rand.h" #include "feature/dircache/directory.h" #include "feature/dircache/dirserv.h" +#include "feature/dirauth/bwauth.h" +#include "feature/dirauth/reachability.h" +#include "feature/dirauth/process_descs.h" #include "feature/relay/dns.h" #include "feature/client/dnsserv.h" #include "core/or/dos.h" @@ -3663,7 +3666,9 @@ tor_free_all(int postfork) routerlist_free_all(); networkstatus_free_all(); addressmap_free_all(); + dirserv_free_fingerprint_list(); dirserv_free_all(); + dirserv_clear_measured_bw_cache(); rend_cache_free_all(); rend_service_authorization_free_all(); rep_hist_free_all(); diff --git a/src/core/or/connection_or.c b/src/core/or/connection_or.c index de60660207..0f233a53af 100644 --- a/src/core/or/connection_or.c +++ b/src/core/or/connection_or.c @@ -41,7 +41,7 @@ #include "feature/control/control.h" #include "lib/crypt_ops/crypto_rand.h" #include "lib/crypt_ops/crypto_util.h" -#include "feature/dircache/dirserv.h" +#include "feature/dirauth/reachability.h" #include "feature/client/entrynodes.h" #include "feature/stats/geoip.h" #include "core/mainloop/main.h" diff --git a/src/core/or/policies.c b/src/core/or/policies.c index 3cb5e53599..3443a17107 100644 --- a/src/core/or/policies.c +++ b/src/core/or/policies.c @@ -20,7 +20,6 @@ #include "core/or/or.h" #include "feature/client/bridges.h" #include "app/config/config.h" -#include "feature/dircache/dirserv.h" #include "feature/nodelist/microdesc.h" #include "feature/nodelist/networkstatus.h" #include "feature/nodelist/nodelist.h" @@ -39,6 +38,9 @@ #include "feature/nodelist/routerinfo_st.h" #include "feature/nodelist/routerstatus_st.h" +/** Maximum length of an exit policy summary. */ +#define MAX_EXITPOLICY_SUMMARY_LEN 1000 + /** Policy that addresses for incoming SOCKS connections must match. */ static smartlist_t *socks_policy = NULL; /** Policy that addresses for incoming directory connections must match. */ |