diff --git a/src/app/config/config.c b/src/app/config/config.c index 68139a997f4d90b9c3e4363ca9dc8d52dc568252..65899b64000ac655971e9aca024bed0b300218e7 100644 --- a/src/app/config/config.c +++ b/src/app/config/config.c @@ -106,6 +106,7 @@ #include "feature/hs/hs_config.h" #include "feature/stats/rephist.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "lib/sandbox/sandbox.h" #include "feature/nodelist/dirlist.h" #include "feature/nodelist/routerset.h" diff --git a/src/app/config/statefile.c b/src/app/config/statefile.c index 208189db44de28367800a10bd90d33648861e0a3..510b8964b222d91479faf1df37fd0ec3d5e3563c 100644 --- a/src/app/config/statefile.c +++ b/src/app/config/statefile.c @@ -40,6 +40,7 @@ #include "feature/hibernate/hibernate.h" #include "feature/stats/rephist.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "lib/sandbox/sandbox.h" #include "app/config/statefile.h" #include "lib/encoding/confline.h" diff --git a/src/app/main/main.c b/src/app/main/main.c index c6d77927549901daeacfb2928deaf815582d3ed3..6c7312f676ad5cc0f29e4a63bf1e72270aef1d91 100644 --- a/src/app/main/main.c +++ b/src/app/main/main.c @@ -35,6 +35,7 @@ #include "feature/dirauth/bwauth.h" #include "feature/dirauth/process_descs.h" #include "feature/relay/dns.h" +#include "feature/relay/routermode.h" #include "feature/client/entrynodes.h" #include "feature/stats/geoip.h" #include "feature/hibernate/hibernate.h" diff --git a/src/core/include.am b/src/core/include.am index abbf89f69de089581234520aa9e877500e533ba8..ae37bef99dc27faadaa8b0b88dad8465555e27c8 100644 --- a/src/core/include.am +++ b/src/core/include.am @@ -105,6 +105,7 @@ LIBTOR_APP_A_SOURCES = \ src/feature/relay/onion_queue.c \ src/feature/relay/router.c \ src/feature/relay/routerkeys.c \ + src/feature/relay/routermode.c \ src/feature/relay/selftest.c \ src/feature/rend/rendcache.c \ src/feature/rend/rendclient.c \ @@ -326,6 +327,7 @@ noinst_HEADERS += \ src/feature/relay/onion_queue.h \ src/feature/relay/router.h \ src/feature/relay/routerkeys.h \ + src/feature/relay/routermode.h \ src/feature/relay/selftest.h \ src/feature/rend/rend_authorized_client_st.h \ src/feature/rend/rend_encoded_v2_service_descriptor_st.h \ diff --git a/src/core/mainloop/connection.c b/src/core/mainloop/connection.c index b858b94cd24911ede007a104a98cac65defffb5d..699e7f710a70684ffea413a4b6fec81f7ea9f9de 100644 --- a/src/core/mainloop/connection.c +++ b/src/core/mainloop/connection.c @@ -81,6 +81,7 @@ #include "feature/dircommon/directory.h" #include "feature/dircache/dirserv.h" #include "feature/relay/dns.h" +#include "feature/relay/routermode.h" #include "feature/client/dnsserv.h" #include "core/or/dos.h" #include "feature/client/entrynodes.h" diff --git a/src/core/mainloop/mainloop.c b/src/core/mainloop/mainloop.c index 6d60b779b843b640e645601e4198b249562d8ac9..fb405817d161ff90a355f5852022674a770a00ed 100644 --- a/src/core/mainloop/mainloop.c +++ b/src/core/mainloop/mainloop.c @@ -92,6 +92,7 @@ #include "feature/rend/rendservice.h" #include "feature/stats/rephist.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "feature/relay/routerkeys.h" #include "feature/relay/selftest.h" #include "feature/nodelist/routerlist.h" diff --git a/src/core/or/channelpadding.c b/src/core/or/channelpadding.c index 6a38d13e325b1fd7aba14c8e3f5fc849e025a3b5..db34f0f027d6193b41408bdc81b77bd353a04d82 100644 --- a/src/core/or/channelpadding.c +++ b/src/core/or/channelpadding.c @@ -20,6 +20,7 @@ #include "core/mainloop/mainloop.h" #include "feature/stats/rephist.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "lib/time/compat_time.h" #include "feature/rend/rendservice.h" #include "lib/evloop/timers.h" diff --git a/src/core/or/channeltls.c b/src/core/or/channeltls.c index c81a00b497921ace73e626952ea8db35e02f2705..883acacf3796e30da682070d60ebcd2a6851c042 100644 --- a/src/core/or/channeltls.c +++ b/src/core/or/channeltls.c @@ -53,6 +53,7 @@ #include "core/or/relay.h" #include "feature/stats/rephist.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "feature/nodelist/dirlist.h" #include "core/or/scheduler.h" #include "feature/nodelist/torcert.h" diff --git a/src/core/or/circuitbuild.c b/src/core/or/circuitbuild.c index b77a88f5f06875ed9e1a53d9056f9c8eaa2ccb05..f4e0776be038f4b33e0bda4e76f26af758bffe0f 100644 --- a/src/core/or/circuitbuild.c +++ b/src/core/or/circuitbuild.c @@ -61,6 +61,7 @@ #include "feature/rend/rendcommon.h" #include "feature/stats/rephist.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "feature/relay/selftest.h" #include "feature/nodelist/node_select.h" #include "feature/nodelist/routerlist.h" diff --git a/src/core/or/circuituse.c b/src/core/or/circuituse.c index f5919de5c51ca3ab2f0aa6d544eb784f1b78e833..34b51a5021ec66b3dbe1d155afbd4ca18a64b155 100644 --- a/src/core/or/circuituse.c +++ b/src/core/or/circuituse.c @@ -55,6 +55,7 @@ #include "feature/rend/rendservice.h" #include "feature/stats/rephist.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "feature/relay/selftest.h" #include "feature/nodelist/routerlist.h" #include "lib/math/fp.h" diff --git a/src/core/or/command.c b/src/core/or/command.c index f93eb8d85718fc8427daa857c8185ed64cacab8e..9e19d28c74dc18b019bd25c42c0ad1dc3539a830 100644 --- a/src/core/or/command.c +++ b/src/core/or/command.c @@ -55,6 +55,7 @@ #include "feature/stats/rephist.h" #include "core/or/relay.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "feature/nodelist/routerlist.h" #include "core/or/cell_st.h" diff --git a/src/core/or/connection_edge.c b/src/core/or/connection_edge.c index daf978b998ad4da1b5cc92311c935b87928ef43a..6dc0814b147943477dd977d8334a78075ad047b8 100644 --- a/src/core/or/connection_edge.c +++ b/src/core/or/connection_edge.c @@ -93,6 +93,7 @@ #include "feature/rend/rendservice.h" #include "feature/stats/rephist.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "feature/nodelist/routerlist.h" #include "feature/nodelist/routerset.h" #include "core/or/circuitbuild.h" diff --git a/src/core/or/connection_or.c b/src/core/or/connection_or.c index 7902b6c59d109eb93adf43bc2faa887ba43e963a..4a724a24d37faf15b9fafa72ec8499a824b0f302 100644 --- a/src/core/or/connection_or.c +++ b/src/core/or/connection_or.c @@ -56,6 +56,7 @@ #include "feature/stats/rephist.h" #include "feature/relay/router.h" #include "feature/relay/routerkeys.h" +#include "feature/relay/routermode.h" #include "feature/nodelist/dirlist.h" #include "feature/nodelist/routerlist.h" #include "feature/relay/ext_orport.h" diff --git a/src/core/or/dos.c b/src/core/or/dos.c index a75c2070d863cf8a2de62ae42c4d1ceca17aa304..c59e2f6361ceb663254d643bd923f58fef259873 100644 --- a/src/core/or/dos.c +++ b/src/core/or/dos.c @@ -19,7 +19,7 @@ #include "feature/nodelist/networkstatus.h" #include "feature/nodelist/nodelist.h" #include "core/or/relay.h" -#include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "core/or/dos.h" diff --git a/src/core/or/policies.c b/src/core/or/policies.c index 3443a17107d88168297dd3edd38a01878fc762b2..fc359627b929179eebe0d8b44f0a168f2fd15c58 100644 --- a/src/core/or/policies.c +++ b/src/core/or/policies.c @@ -25,6 +25,7 @@ #include "feature/nodelist/nodelist.h" #include "core/or/policies.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "feature/nodelist/routerparse.h" #include "feature/stats/geoip.h" #include "ht.h" diff --git a/src/core/or/status.c b/src/core/or/status.c index 45b8217d9abdb439dac10e6806792118c75ac6f7..d8a9da0a554736efd5aa5a79bb9374494c44c378 100644 --- a/src/core/or/status.c +++ b/src/core/or/status.c @@ -21,6 +21,7 @@ #include "feature/nodelist/nodelist.h" #include "core/or/relay.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "core/or/circuitlist.h" #include "core/mainloop/mainloop.h" #include "feature/stats/rephist.h" diff --git a/src/feature/control/control.c b/src/feature/control/control.c index c1fb7681299e22bc0972ab019ee7b8df09c0f95b..43ec0bd8b2d41860024b8cb41a000f4055da7754 100644 --- a/src/feature/control/control.c +++ b/src/feature/control/control.c @@ -81,6 +81,7 @@ #include "feature/rend/rendservice.h" #include "feature/stats/rephist.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "feature/relay/selftest.h" #include "feature/nodelist/authcert.h" #include "feature/nodelist/dirlist.h" diff --git a/src/feature/dircache/dircache.c b/src/feature/dircache/dircache.c index c58512814ea714e064842d50155036d68eda7636..76bde0b7878d7d5df81535c357b0ab41fc7476d8 100644 --- a/src/feature/dircache/dircache.c +++ b/src/feature/dircache/dircache.c @@ -23,7 +23,7 @@ #include "feature/nodelist/authcert.h" #include "feature/nodelist/networkstatus.h" #include "feature/nodelist/routerlist.h" -#include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "feature/rend/rendcache.h" #include "feature/stats/geoip.h" #include "feature/stats/rephist.h" diff --git a/src/feature/dircache/dirserv.c b/src/feature/dircache/dirserv.c index 65c3d6d91a4f90f9997248f367d3ea90242aa033..4fa3cd7f93faaa88f0cd47ab94c7420a271f10fb 100644 --- a/src/feature/dircache/dirserv.c +++ b/src/feature/dircache/dirserv.c @@ -15,6 +15,7 @@ #include "feature/nodelist/microdesc.h" #include "feature/nodelist/routerlist.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "feature/stats/rephist.h" #include "feature/dircache/cached_dir_st.h" diff --git a/src/feature/dirclient/dirclient.c b/src/feature/dirclient/dirclient.c index bd6800c74f1665e0d9f47ea963bec6036aa8d577..16d2e03b4cdcef4b5e6e62c599814a3ed18b2cf1 100644 --- a/src/feature/dirclient/dirclient.c +++ b/src/feature/dirclient/dirclient.c @@ -35,6 +35,7 @@ #include "feature/nodelist/nodelist.h" #include "feature/nodelist/routerlist.h" #include "feature/nodelist/routerset.h" +#include "feature/relay/routermode.h" #include "feature/relay/selftest.h" #include "feature/rend/rendcache.h" #include "feature/rend/rendclient.h" diff --git a/src/feature/dirclient/dlstatus.c b/src/feature/dirclient/dlstatus.c index 017281e00c572bef7103963bd20df1830f3f2d5b..aea17bdacb2ee137095d380236e4b8ab9848410f 100644 --- a/src/feature/dirclient/dlstatus.c +++ b/src/feature/dirclient/dlstatus.c @@ -11,7 +11,7 @@ #include "feature/client/entrynodes.h" #include "feature/dirclient/dlstatus.h" #include "feature/nodelist/networkstatus.h" -#include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "lib/crypt_ops/crypto_rand.h" #include "feature/dirclient/download_status_st.h" diff --git a/src/feature/nodelist/authcert.c b/src/feature/nodelist/authcert.c index 665105e6065e8a52514fe23e548a97cac886d1ff..2624ed5eefe8ca41d15f593dd20f07d773a4840e 100644 --- a/src/feature/nodelist/authcert.c +++ b/src/feature/nodelist/authcert.c @@ -35,7 +35,7 @@ #include "feature/nodelist/nodelist.h" #include "feature/nodelist/routerlist.h" #include "feature/nodelist/routerparse.h" -#include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "core/or/connection_st.h" #include "feature/dirclient/dir_server_st.h" diff --git a/src/feature/nodelist/networkstatus.c b/src/feature/nodelist/networkstatus.c index 2ce38e20462a63ddd948b1e67352fde7f45e3868..40457ef6898ea2a492ed882d7701066c840122ce 100644 --- a/src/feature/nodelist/networkstatus.c +++ b/src/feature/nodelist/networkstatus.c @@ -65,7 +65,7 @@ #include "feature/nodelist/nodelist.h" #include "core/or/protover.h" #include "core/or/relay.h" -#include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "feature/nodelist/authcert.h" #include "feature/nodelist/dirlist.h" #include "feature/nodelist/node_select.h" diff --git a/src/feature/nodelist/node_select.c b/src/feature/nodelist/node_select.c index aab0bbe9f5b37b9bf17895a5cc4cf3a784db62f5..6d58705ccb2345f2628826c4b26142f09b4f2cda 100644 --- a/src/feature/nodelist/node_select.c +++ b/src/feature/nodelist/node_select.c @@ -28,6 +28,7 @@ #include "feature/nodelist/routerlist.h" #include "feature/nodelist/routerset.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "lib/crypt_ops/crypto_rand.h" #include "lib/math/fp.h" diff --git a/src/feature/nodelist/routerlist.c b/src/feature/nodelist/routerlist.c index afecaa4fb58c9b9dc3114029e5a3be9c3fadf145..2bd6e5c6fbea344dd3d7ed4b5d5d3170c0b2740d 100644 --- a/src/feature/nodelist/routerlist.c +++ b/src/feature/nodelist/routerlist.c @@ -85,7 +85,7 @@ #include "feature/nodelist/routerparse.h" #include "feature/nodelist/routerset.h" #include "feature/nodelist/torcert.h" -#include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "feature/stats/rephist.h" #include "lib/crypt_ops/crypto_format.h" #include "lib/crypt_ops/crypto_rand.h" diff --git a/src/feature/relay/dns.c b/src/feature/relay/dns.c index 6e9be5e2e76f87ee8b6e940a58838248e8327cd9..52488ff94dca1ae6204d6d925646d61a50d65af4 100644 --- a/src/feature/relay/dns.c +++ b/src/feature/relay/dns.c @@ -62,6 +62,7 @@ #include "core/or/policies.h" #include "core/or/relay.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "ht.h" #include "lib/sandbox/sandbox.h" #include "lib/evloop/compat_libevent.h" diff --git a/src/feature/relay/router.c b/src/feature/relay/router.c index cc5c424fec7f8a1bda2e11a5fe1cc818ce4480b6..e145a8e4111010cde6c30d4381dc4815011f22f3 100644 --- a/src/feature/relay/router.c +++ b/src/feature/relay/router.c @@ -34,6 +34,7 @@ #include "feature/stats/rephist.h" #include "feature/relay/router.h" #include "feature/relay/routerkeys.h" +#include "feature/relay/routermode.h" #include "feature/relay/selftest.h" #include "feature/nodelist/authcert.h" #include "feature/nodelist/dirlist.h" @@ -1178,7 +1179,7 @@ init_keys(void) /** Return true iff we have enough configured bandwidth to advertise or * automatically provide directory services from cache directory * information. */ -static int +int router_has_bandwidth_to_be_dirserver(const or_options_t *options) { if (options->BandwidthRate < MIN_BW_TO_ADVERTISE_DIRSERVER) { @@ -1258,19 +1259,6 @@ router_should_be_dirserver(const or_options_t *options, int dir_port) return advertising; } -/** Return 1 if we are configured to accept either relay or directory requests - * from clients and we aren't at risk of exceeding our bandwidth limits, thus - * we should be a directory server. If not, return 0. - */ -int -dir_server_mode(const or_options_t *options) -{ - if (!options->DirCache) - return 0; - return options->DirPort_set || - (server_mode(options) && router_has_bandwidth_to_be_dirserver(options)); -} - /** Look at a variety of factors, and return 0 if we don't want to * advertise the fact that we have a DirPort open or begindir support, else * return 1. @@ -1348,24 +1336,6 @@ net_is_completely_disabled(void) return get_options()->DisableNetwork || we_are_fully_hibernating(); } -/** Return true iff we are trying to be a server. - */ -MOCK_IMPL(int, -server_mode,(const or_options_t *options)) -{ - if (options->ClientOnly) return 0; - return (options->ORPort_set); -} - -/** Return true iff we are trying to be a non-bridge server. - */ -MOCK_IMPL(int, -public_server_mode,(const or_options_t *options)) -{ - if (!server_mode(options)) return 0; - return (!options->BridgeRelay); -} - /** Return true iff the combination of options in <b>options</b> and parameters * in the consensus mean that we don't want to allow exits from circuits * we got from addresses not known to be servers. */ @@ -1379,42 +1349,6 @@ should_refuse_unknown_exits(const or_options_t *options) } } -/** Remember if we've advertised ourselves to the dirservers. */ -static int server_is_advertised=0; - -/** Return true iff we have published our descriptor lately. - */ -MOCK_IMPL(int, -advertised_server_mode,(void)) -{ - return server_is_advertised; -} - -/** - * Called with a boolean: set whether we have recently published our - * descriptor. - */ -static void -set_server_advertised(int s) -{ - server_is_advertised = s; -} - -/** Return true iff we are trying to proxy client connections. */ -int -proxy_mode(const or_options_t *options) -{ - (void)options; - SMARTLIST_FOREACH_BEGIN(get_configured_ports(), const port_cfg_t *, p) { - if (p->type == CONN_TYPE_AP_LISTENER || - p->type == CONN_TYPE_AP_TRANS_LISTENER || - p->type == CONN_TYPE_AP_DNS_LISTENER || - p->type == CONN_TYPE_AP_NATD_LISTENER) - return 1; - } SMARTLIST_FOREACH_END(p); - return 0; -} - /** Decide if we're a publishable server. We are a publishable server if: * - We don't have the ClientOnly option set * and diff --git a/src/feature/relay/router.h b/src/feature/relay/router.h index 7b33069aacf9a01055d68ca42c8039ace653b830..5e342cc49116b7fc84a8e1fb49cc2d64363f2920 100644 --- a/src/feature/relay/router.h +++ b/src/feature/relay/router.h @@ -56,8 +56,6 @@ int router_initialize_tls_context(void); int init_keys(void); int init_keys_client(void); -int dir_server_mode(const or_options_t *options); - int net_is_disabled(void); int net_is_completely_disabled(void); @@ -72,10 +70,6 @@ uint16_t router_get_advertised_dir_port(const or_options_t *options, int router_should_advertise_dirport(const or_options_t *options, uint16_t dir_port); -MOCK_DECL(int, server_mode, (const or_options_t *options)); -MOCK_DECL(int, public_server_mode, (const or_options_t *options)); -MOCK_DECL(int, advertised_server_mode, (void)); -int proxy_mode(const or_options_t *options); void consider_publishable_server(int force); int should_refuse_unknown_exits(const or_options_t *options); @@ -84,6 +78,7 @@ void mark_my_descriptor_dirty_if_too_old(time_t now); void mark_my_descriptor_dirty(const char *reason); void check_descriptor_bandwidth_changed(time_t now); void check_descriptor_ipaddress_changed(time_t now); +int router_has_bandwidth_to_be_dirserver(const or_options_t *options); void router_new_address_suggestion(const char *suggestion, const dir_connection_t *d_conn); int router_compare_to_my_exit_policy(const tor_addr_t *addr, uint16_t port); diff --git a/src/feature/relay/routerkeys.c b/src/feature/relay/routerkeys.c index c133597954331b08eb35ca0f8f783a497f3361f7..2499d7c8ff30f497989a20d40194bd6c03c3e24e 100644 --- a/src/feature/relay/routerkeys.c +++ b/src/feature/relay/routerkeys.c @@ -18,6 +18,7 @@ #include "app/config/config.h" #include "feature/relay/router.h" #include "feature/relay/routerkeys.h" +#include "feature/relay/routermode.h" #include "feature/keymgt/loadkey.h" #include "feature/nodelist/torcert.h" diff --git a/src/feature/relay/routermode.c b/src/feature/relay/routermode.c new file mode 100644 index 0000000000000000000000000000000000000000..3f87cda505673c49b036d6320c1974443b43adb4 --- /dev/null +++ b/src/feature/relay/routermode.c @@ -0,0 +1,80 @@ +/* Copyright (c) 2001 Matej Pfajfar. + * Copyright (c) 2001-2004, Roger Dingledine. + * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. + * Copyright (c) 2007-2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +#include "core/or/or.h" + +#include "app/config/config.h" +#include "core/mainloop/connection.h" +#include "core/or/port_cfg_st.h" +#include "feature/relay/router.h" +#include "feature/relay/routermode.h" + +/** Return 1 if we are configured to accept either relay or directory requests + * from clients and we aren't at risk of exceeding our bandwidth limits, thus + * we should be a directory server. If not, return 0. + */ +int +dir_server_mode(const or_options_t *options) +{ + if (!options->DirCache) + return 0; + return options->DirPort_set || + (server_mode(options) && router_has_bandwidth_to_be_dirserver(options)); +} + +/** Return true iff we are trying to proxy client connections. */ +int +proxy_mode(const or_options_t *options) +{ + (void)options; + SMARTLIST_FOREACH_BEGIN(get_configured_ports(), const port_cfg_t *, p) { + if (p->type == CONN_TYPE_AP_LISTENER || + p->type == CONN_TYPE_AP_TRANS_LISTENER || + p->type == CONN_TYPE_AP_DNS_LISTENER || + p->type == CONN_TYPE_AP_NATD_LISTENER) + return 1; + } SMARTLIST_FOREACH_END(p); + return 0; +} + +/** Return true iff we are trying to be a server. + */ +MOCK_IMPL(int, +server_mode,(const or_options_t *options)) +{ + if (options->ClientOnly) return 0; + return (options->ORPort_set); +} + +/** Return true iff we are trying to be a non-bridge server. + */ +MOCK_IMPL(int, +public_server_mode,(const or_options_t *options)) +{ + if (!server_mode(options)) return 0; + return (!options->BridgeRelay); +} + +/** Remember if we've advertised ourselves to the dirservers. */ +static int server_is_advertised=0; + +/** Return true iff we have published our descriptor lately. + */ +MOCK_IMPL(int, +advertised_server_mode,(void)) +{ + return server_is_advertised; +} + +/** + * Called with a boolean: set whether we have recently published our + * descriptor. + */ +void +set_server_advertised(int s) +{ + server_is_advertised = s; +} diff --git a/src/feature/relay/routermode.h b/src/feature/relay/routermode.h new file mode 100644 index 0000000000000000000000000000000000000000..1442d706dd5ac2d3c991f7e43c3100ed887ef3bf --- /dev/null +++ b/src/feature/relay/routermode.h @@ -0,0 +1,24 @@ +/* Copyright (c) 2001 Matej Pfajfar. + * Copyright (c) 2001-2004, Roger Dingledine. + * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. + * Copyright (c) 2007-2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +/** + * \file routermode.h + * \brief Header file for routermode.c. + **/ + +#ifndef TOR_ROUTERMODE_H +#define TOR_ROUTERMODE_H + +int dir_server_mode(const or_options_t *options); + +MOCK_DECL(int, server_mode, (const or_options_t *options)); +MOCK_DECL(int, public_server_mode, (const or_options_t *options)); +MOCK_DECL(int, advertised_server_mode, (void)); +int proxy_mode(const or_options_t *options); + +void set_server_advertised(int s); + +#endif /* !defined(TOR_ROUTERMODE_H) */ diff --git a/src/feature/stats/rephist.c b/src/feature/stats/rephist.c index 210576b9e904996f02b843e90c9fb3c7eea3740c..fa4bd0ba4eb824a40d597e1278fa817527d67df0 100644 --- a/src/feature/stats/rephist.c +++ b/src/feature/stats/rephist.c @@ -83,7 +83,7 @@ #include "feature/nodelist/networkstatus.h" #include "feature/nodelist/nodelist.h" #include "feature/stats/rephist.h" -#include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "feature/relay/selftest.h" #include "feature/nodelist/routerlist.h" #include "ht.h" diff --git a/src/test/test_config.c b/src/test/test_config.c index 4dc1b8c0ecb8f66951c2aacca5e377348f583a28..77c0d248c277d275c061e40a458abcef6f59b877 100644 --- a/src/test/test_config.c +++ b/src/test/test_config.c @@ -38,6 +38,7 @@ #include "feature/rend/rendclient.h" #include "feature/rend/rendservice.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "feature/nodelist/dirlist.h" #include "feature/nodelist/routerlist.h" #include "feature/nodelist/routerset.h" diff --git a/src/test/test_dir.c b/src/test/test_dir.c index 686b039492ad402c7aebe927c3de612c9cfe5471..58070766ae0ab9f0b5e21041b437bf2bc0744882 100644 --- a/src/test/test_dir.c +++ b/src/test/test_dir.c @@ -51,6 +51,7 @@ #include "feature/nodelist/networkstatus.h" #include "feature/relay/router.h" #include "feature/relay/routerkeys.h" +#include "feature/relay/routermode.h" #include "feature/nodelist/authcert.h" #include "feature/nodelist/dirlist.h" #include "feature/nodelist/node_select.h" diff --git a/src/test/test_status.c b/src/test/test_status.c index 46dbd9dcd1b2be5c442cbdfb73bc4c262c970657..3ceba77a8470171c48f215e2c7c5e2f0cc2bbfd3 100644 --- a/src/test/test_status.c +++ b/src/test/test_status.c @@ -21,6 +21,7 @@ #include "feature/stats/rephist.h" #include "core/or/relay.h" #include "feature/relay/router.h" +#include "feature/relay/routermode.h" #include "core/mainloop/mainloop.h" #include "feature/nodelist/nodelist.h" #include "app/config/statefile.h"