aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/app/config/config.c90
-rw-r--r--src/app/config/config.h2
-rw-r--r--src/app/config/confparse.c6
-rw-r--r--src/app/config/statefile.c26
-rw-r--r--src/app/main/ntmain.c8
-rw-r--r--src/core/crypto/hs_ntor.c4
-rw-r--r--src/core/crypto/hs_ntor.h2
-rw-r--r--src/core/crypto/onion.c34
-rw-r--r--src/core/crypto/onion_fast.c4
-rw-r--r--src/core/crypto/onion_ntor.c2
-rw-r--r--src/core/crypto/onion_tap.c8
-rw-r--r--src/core/crypto/relay_crypto.c18
-rw-r--r--src/core/mainloop/connection.c90
-rw-r--r--src/core/mainloop/cpuworker.c24
-rw-r--r--src/core/mainloop/main.c136
-rw-r--r--src/core/mainloop/main.h2
-rw-r--r--src/core/mainloop/periodic.c8
-rw-r--r--src/core/or/address_set.c2
-rw-r--r--src/core/or/channel.c44
-rw-r--r--src/core/or/channel.h4
-rw-r--r--src/core/or/channelpadding.c28
-rw-r--r--src/core/or/channeltls.c56
-rw-r--r--src/core/or/channeltls.h4
-rw-r--r--src/core/or/circuit_st.h4
-rw-r--r--src/core/or/circuitbuild.c92
-rw-r--r--src/core/or/circuitlist.c76
-rw-r--r--src/core/or/circuitlist.h2
-rw-r--r--src/core/or/circuitmux.c18
-rw-r--r--src/core/or/circuitmux.h2
-rw-r--r--src/core/or/circuitmux_ewma.c10
-rw-r--r--src/core/or/circuitmux_ewma.h4
-rw-r--r--src/core/or/circuitstats.c34
-rw-r--r--src/core/or/circuituse.c72
-rw-r--r--src/core/or/command.c46
-rw-r--r--src/core/or/command.h2
-rw-r--r--src/core/or/connection_edge.c92
-rw-r--r--src/core/or/connection_or.c78
-rw-r--r--src/core/or/crypt_path_st.h2
-rw-r--r--src/core/or/dos.c26
-rw-r--r--src/core/or/edge_connection_st.h4
-rw-r--r--src/core/or/entry_connection_st.h2
-rw-r--r--src/core/or/entry_port_cfg_st.h2
-rw-r--r--src/core/or/git_revision.c2
-rw-r--r--src/core/or/listener_connection_st.h2
-rw-r--r--src/core/or/or.h2
-rw-r--r--src/core/or/or_circuit_st.h6
-rw-r--r--src/core/or/or_connection_st.h2
-rw-r--r--src/core/or/origin_circuit_st.h4
-rw-r--r--src/core/or/policies.c36
-rw-r--r--src/core/or/port_cfg_st.h4
-rw-r--r--src/core/or/reasons.c8
-rw-r--r--src/core/or/relay.c84
-rw-r--r--src/core/or/scheduler.c12
-rw-r--r--src/core/or/scheduler.h4
-rw-r--r--src/core/or/scheduler_kist.c16
-rw-r--r--src/core/or/scheduler_vanilla.c8
-rw-r--r--src/core/or/status.c38
-rw-r--r--src/core/proto/proto_cell.c8
-rw-r--r--src/core/proto/proto_control0.c4
-rw-r--r--src/core/proto/proto_ext_or.c6
-rw-r--r--src/core/proto/proto_http.c4
-rw-r--r--src/core/proto/proto_socks.c18
-rw-r--r--src/core/proto/protover.c6
-rw-r--r--src/core/proto/protover_rust.c4
-rw-r--r--src/feature/api/tor_api.c4
-rw-r--r--src/feature/client/addressmap.c22
-rw-r--r--src/feature/client/bridges.c36
-rw-r--r--src/feature/client/circpathbias.c34
-rw-r--r--src/feature/client/dnsserv.c26
-rw-r--r--src/feature/client/entrynodes.c56
-rw-r--r--src/feature/client/transports.c22
-rw-r--r--src/feature/control/control.c116
-rw-r--r--src/feature/control/control_connection_st.h4
-rw-r--r--src/feature/dirauth/dircollate.c8
-rw-r--r--src/feature/dirauth/dircollate.h2
-rw-r--r--src/feature/dirauth/dirvote.c76
-rw-r--r--src/feature/dirauth/keypin.c2
-rw-r--r--src/feature/dirauth/mode.h2
-rw-r--r--src/feature/dirauth/shared_random.c34
-rw-r--r--src/feature/dirauth/shared_random.h2
-rw-r--r--src/feature/dirauth/shared_random_state.c22
-rw-r--r--src/feature/dirauth/shared_random_state.h2
-rw-r--r--src/feature/dircache/conscache.c6
-rw-r--r--src/feature/dircache/consdiffmgr.c20
-rw-r--r--src/feature/dircache/directory.c92
-rw-r--r--src/feature/dircache/directory.h2
-rw-r--r--src/feature/dircache/dirserv.c80
-rw-r--r--src/feature/dirclient/dir_server_st.h4
-rw-r--r--src/feature/dircommon/consdiff.c6
-rw-r--r--src/feature/dircommon/consdiff.h2
-rw-r--r--src/feature/dircommon/dir_connection_st.h2
-rw-r--r--src/feature/dircommon/fp_pair.c4
-rw-r--r--src/feature/dircommon/voting_schedule.c10
-rw-r--r--src/feature/dircommon/voting_schedule.h2
-rw-r--r--src/feature/hibernate/hibernate.c28
-rw-r--r--src/feature/hs/hs_cache.c20
-rw-r--r--src/feature/hs/hs_cache.h8
-rw-r--r--src/feature/hs/hs_cell.c14
-rw-r--r--src/feature/hs/hs_cell.h4
-rw-r--r--src/feature/hs/hs_circuit.c46
-rw-r--r--src/feature/hs/hs_circuit.h4
-rw-r--r--src/feature/hs/hs_circuitmap.c12
-rw-r--r--src/feature/hs/hs_client.c60
-rw-r--r--src/feature/hs/hs_client.h4
-rw-r--r--src/feature/hs/hs_common.c48
-rw-r--r--src/feature/hs/hs_common.h2
-rw-r--r--src/feature/hs/hs_config.c10
-rw-r--r--src/feature/hs/hs_config.h2
-rw-r--r--src/feature/hs/hs_control.c20
-rw-r--r--src/feature/hs/hs_control.h2
-rw-r--r--src/feature/hs/hs_descriptor.c18
-rw-r--r--src/feature/hs/hs_descriptor.h4
-rw-r--r--src/feature/hs/hs_ident.c2
-rw-r--r--src/feature/hs/hs_ident.h2
-rw-r--r--src/feature/hs/hs_intropoint.c24
-rw-r--r--src/feature/hs/hs_intropoint.h2
-rw-r--r--src/feature/hs/hs_service.c74
-rw-r--r--src/feature/hs/hs_service.h10
-rw-r--r--src/feature/hs/hs_stats.c6
-rw-r--r--src/feature/hs_common/replaycache.c4
-rw-r--r--src/feature/hs_common/shared_random_client.c10
-rw-r--r--src/feature/hs_common/shared_random_client.h2
-rw-r--r--src/feature/nodelist/authority_cert_st.h2
-rw-r--r--src/feature/nodelist/extrainfo_st.h2
-rw-r--r--src/feature/nodelist/microdesc.c36
-rw-r--r--src/feature/nodelist/networkstatus.c96
-rw-r--r--src/feature/nodelist/networkstatus_st.h2
-rw-r--r--src/feature/nodelist/node_st.h2
-rw-r--r--src/feature/nodelist/nodelist.c60
-rw-r--r--src/feature/nodelist/parsecommon.c2
-rw-r--r--src/feature/nodelist/routerinfo_st.h2
-rw-r--r--src/feature/nodelist/routerlist.c80
-rw-r--r--src/feature/nodelist/routerlist_st.h2
-rw-r--r--src/feature/nodelist/routerparse.c80
-rw-r--r--src/feature/nodelist/routerset.c28
-rw-r--r--src/feature/nodelist/routerstatus_st.h2
-rw-r--r--src/feature/nodelist/signed_descriptor_st.h2
-rw-r--r--src/feature/nodelist/torcert.c8
-rw-r--r--src/feature/nodelist/vote_routerstatus_st.h2
-rw-r--r--src/feature/relay/dns.c28
-rw-r--r--src/feature/relay/dns.h2
-rw-r--r--src/feature/relay/ext_orport.c18
-rw-r--r--src/feature/relay/router.c82
-rw-r--r--src/feature/relay/routerkeys.c10
-rw-r--r--src/feature/rend/rendcache.c18
-rw-r--r--src/feature/rend/rendcache.h4
-rw-r--r--src/feature/rend/rendclient.c64
-rw-r--r--src/feature/rend/rendclient.h2
-rw-r--r--src/feature/rend/rendcommon.c58
-rw-r--r--src/feature/rend/rendmid.c26
-rw-r--r--src/feature/rend/rendservice.c72
-rw-r--r--src/feature/rend/rendservice.h4
-rw-r--r--src/feature/stats/geoip.c14
-rw-r--r--src/feature/stats/geoip.h2
-rw-r--r--src/feature/stats/rephist.c30
-rw-r--r--src/test/bench.c18
-rw-r--r--src/test/fuzz/fuzz_consensus.c8
-rw-r--r--src/test/fuzz/fuzz_descriptor.c8
-rw-r--r--src/test/fuzz/fuzz_diff.c4
-rw-r--r--src/test/fuzz/fuzz_diff_apply.c4
-rw-r--r--src/test/fuzz/fuzz_extrainfo.c8
-rw-r--r--src/test/fuzz/fuzz_hsdescv2.c6
-rw-r--r--src/test/fuzz/fuzz_hsdescv3.c6
-rw-r--r--src/test/fuzz/fuzz_http.c10
-rw-r--r--src/test/fuzz/fuzz_http_connect.c14
-rw-r--r--src/test/fuzz/fuzz_iptsv2.c8
-rw-r--r--src/test/fuzz/fuzz_microdesc.c6
-rw-r--r--src/test/fuzz/fuzz_vrs.c12
-rw-r--r--src/test/fuzz/fuzzing_common.c4
-rw-r--r--src/test/hs_test_helpers.c6
-rw-r--r--src/test/hs_test_helpers.h2
-rw-r--r--src/test/log_test_helpers.h2
-rw-r--r--src/test/rend_test_helpers.c10
-rw-r--r--src/test/rend_test_helpers.h2
-rw-r--r--src/test/test.c44
-rw-r--r--src/test/test_accounting.c10
-rw-r--r--src/test/test_addr.c4
-rw-r--r--src/test/test_address.c2
-rw-r--r--src/test/test_address_set.c24
-rw-r--r--src/test/test_bridges.c8
-rw-r--r--src/test/test_bt_cl.c2
-rw-r--r--src/test/test_buffers.c6
-rw-r--r--src/test/test_bwmgt.c2
-rw-r--r--src/test/test_cell_formats.c28
-rw-r--r--src/test/test_cell_queue.c14
-rw-r--r--src/test/test_channel.c30
-rw-r--r--src/test/test_channelpadding.c26
-rw-r--r--src/test/test_channeltls.c16
-rw-r--r--src/test/test_checkdir.c4
-rw-r--r--src/test/test_circuitbuild.c10
-rw-r--r--src/test/test_circuitlist.c16
-rw-r--r--src/test/test_circuitmux.c14
-rw-r--r--src/test/test_circuitstats.c24
-rw-r--r--src/test/test_circuituse.c18
-rw-r--r--src/test/test_compat_libevent.c2
-rw-r--r--src/test/test_config.c66
-rw-r--r--src/test/test_connection.c34
-rw-r--r--src/test/test_conscache.c6
-rw-r--r--src/test/test_consdiff.c4
-rw-r--r--src/test/test_consdiffmgr.c18
-rw-r--r--src/test/test_containers.c4
-rw-r--r--src/test/test_controller.c26
-rw-r--r--src/test/test_controller_events.c16
-rw-r--r--src/test/test_crypto.c2
-rw-r--r--src/test/test_crypto_slow.c2
-rw-r--r--src/test/test_dir.c70
-rw-r--r--src/test/test_dir_common.c22
-rw-r--r--src/test/test_dir_common.h6
-rw-r--r--src/test/test_dir_handle_get.c52
-rw-r--r--src/test/test_dns.c14
-rw-r--r--src/test/test_dos.c26
-rw-r--r--src/test/test_entryconn.c22
-rw-r--r--src/test/test_entrynodes.c52
-rw-r--r--src/test/test_extorport.c16
-rw-r--r--src/test/test_geoip.c6
-rw-r--r--src/test/test_guardfraction.c20
-rw-r--r--src/test/test_helpers.c28
-rw-r--r--src/test/test_helpers.h2
-rw-r--r--src/test/test_hs.c28
-rw-r--r--src/test/test_hs_cache.c16
-rw-r--r--src/test/test_hs_cell.c6
-rw-r--r--src/test/test_hs_client.c52
-rw-r--r--src/test/test_hs_common.c42
-rw-r--r--src/test/test_hs_config.c10
-rw-r--r--src/test/test_hs_control.c18
-rw-r--r--src/test/test_hs_descriptor.c6
-rw-r--r--src/test/test_hs_intropoint.c22
-rw-r--r--src/test/test_hs_ntor.c2
-rw-r--r--src/test/test_hs_ntor_cl.c6
-rw-r--r--src/test/test_hs_service.c64
-rw-r--r--src/test/test_introduce.c4
-rw-r--r--src/test/test_keypin.c4
-rw-r--r--src/test/test_link_handshake.c28
-rw-r--r--src/test/test_logging.c4
-rw-r--r--src/test/test_mainloop.c4
-rw-r--r--src/test/test_microdesc.c26
-rw-r--r--src/test/test_nodelist.c20
-rw-r--r--src/test/test_ntor_cl.c4
-rw-r--r--src/test/test_oom.c18
-rw-r--r--src/test/test_oos.c16
-rw-r--r--src/test/test_options.c14
-rw-r--r--src/test/test_periodic_event.c12
-rw-r--r--src/test/test_policy.c20
-rw-r--r--src/test/test_procmon.c2
-rw-r--r--src/test/test_proto_http.c4
-rw-r--r--src/test/test_proto_misc.c14
-rw-r--r--src/test/test_protover.c6
-rw-r--r--src/test/test_pt.c16
-rw-r--r--src/test/test_relay.c14
-rw-r--r--src/test/test_relaycell.c26
-rw-r--r--src/test/test_relaycrypt.c16
-rw-r--r--src/test/test_rendcache.c24
-rw-r--r--src/test/test_replay.c4
-rw-r--r--src/test/test_router.c10
-rw-r--r--src/test/test_routerkeys.c10
-rw-r--r--src/test/test_routerlist.c50
-rw-r--r--src/test/test_routerset.c24
-rw-r--r--src/test/test_scheduler.c14
-rw-r--r--src/test/test_shared_random.c32
-rw-r--r--src/test/test_slow.c2
-rw-r--r--src/test/test_socks.c10
-rw-r--r--src/test/test_status.c28
-rw-r--r--src/test/test_storagedir.c2
-rw-r--r--src/test/test_switch_id.c2
-rw-r--r--src/test/test_threads.c2
-rw-r--r--src/test/test_tortls.c6
-rw-r--r--src/test/test_util.c8
-rw-r--r--src/test/test_util_format.c2
-rw-r--r--src/test/test_util_process.c2
-rw-r--r--src/test/test_voting_schedule.c4
-rw-r--r--src/test/test_workqueue.c4
-rw-r--r--src/test/testing_common.c12
-rw-r--r--src/test/testing_rsakeys.c2
-rw-r--r--src/tools/tor_runner.c4
274 files changed, 2595 insertions, 2595 deletions
diff --git a/src/app/config/config.c b/src/app/config/config.c
index 9b2706982a..28d2be5ec1 100644
--- a/src/app/config/config.c
+++ b/src/app/config/config.c
@@ -60,52 +60,52 @@
**/
#define CONFIG_PRIVATE
-#include "or/or.h"
-#include "or/bridges.h"
-#include "or/addressmap.h"
-#include "or/channel.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuitmux.h"
-#include "or/circuitmux_ewma.h"
-#include "or/circuitstats.h"
+#include "core/or/or.h"
+#include "feature/client/bridges.h"
+#include "feature/client/addressmap.h"
+#include "core/or/channel.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuitmux.h"
+#include "core/or/circuitmux_ewma.h"
+#include "core/or/circuitstats.h"
#include "lib/compress/compress.h"
-#include "or/config.h"
+#include "app/config/config.h"
#include "lib/encoding/confline.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/connection_or.h"
-#include "or/consdiffmgr.h"
-#include "or/control.h"
-#include "or/confparse.h"
-#include "or/cpuworker.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "core/or/connection_or.h"
+#include "feature/dircache/consdiffmgr.h"
+#include "feature/control/control.h"
+#include "app/config/confparse.h"
+#include "core/mainloop/cpuworker.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/dirserv.h"
-#include "or/dns.h"
-#include "or/dos.h"
-#include "or/entrynodes.h"
-#include "or/git_revision.h"
-#include "or/geoip.h"
-#include "or/hibernate.h"
-#include "or/main.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/relay.h"
-#include "or/rendclient.h"
-#include "or/rendservice.h"
-#include "or/hs_config.h"
-#include "or/rephist.h"
-#include "or/router.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/relay/dns.h"
+#include "core/or/dos.h"
+#include "feature/client/entrynodes.h"
+#include "core/or/git_revision.h"
+#include "feature/stats/geoip.h"
+#include "feature/hibernate/hibernate.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "core/or/relay.h"
+#include "feature/rend/rendclient.h"
+#include "feature/rend/rendservice.h"
+#include "feature/hs/hs_config.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
#include "lib/sandbox/sandbox.h"
-#include "or/routerlist.h"
-#include "or/routerset.h"
-#include "or/scheduler.h"
-#include "or/statefile.h"
-#include "or/transports.h"
-#include "or/ext_orport.h"
-#include "or/voting_schedule.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerset.h"
+#include "core/or/scheduler.h"
+#include "app/config/statefile.h"
+#include "feature/client/transports.h"
+#include "feature/relay/ext_orport.h"
+#include "feature/dircommon/voting_schedule.h"
#ifdef _WIN32
#include <shlobj.h>
#endif
@@ -133,11 +133,11 @@
#include "lib/fs/conffile.h"
#include "lib/evloop/procmon.h"
-#include "or/dirauth/dirvote.h"
-#include "or/dirauth/mode.h"
+#include "feature/dirauth/dirvote.h"
+#include "feature/dirauth/mode.h"
-#include "or/connection_st.h"
-#include "or/port_cfg_st.h"
+#include "core/or/connection_st.h"
+#include "core/or/port_cfg_st.h"
#ifdef HAVE_SYSTEMD
# if defined(__COVERITY__) && !defined(__INCLUDE_LEVEL__)
diff --git a/src/app/config/config.h b/src/app/config/config.h
index 6d2feb5f43..a169cfd451 100644
--- a/src/app/config/config.h
+++ b/src/app/config/config.h
@@ -12,7 +12,7 @@
#ifndef TOR_CONFIG_H
#define TOR_CONFIG_H
-#include "or/or_options_st.h"
+#include "app/config/or_options_st.h"
#include "lib/testsupport/testsupport.h"
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(DARWIN)
diff --git a/src/app/config/confparse.c b/src/app/config/confparse.c
index 87405c6e7d..5b7f54bc65 100644
--- a/src/app/config/confparse.c
+++ b/src/app/config/confparse.c
@@ -21,9 +21,9 @@
* specified, and a linked list of key-value pairs.
*/
-#include "or/or.h"
-#include "or/confparse.h"
-#include "or/routerset.h"
+#include "core/or/or.h"
+#include "app/config/confparse.h"
+#include "feature/nodelist/routerset.h"
#include "lib/container/bitarray.h"
#include "lib/encoding/confline.h"
diff --git a/src/app/config/statefile.c b/src/app/config/statefile.c
index e9db1ff069..8eeef45026 100644
--- a/src/app/config/statefile.c
+++ b/src/app/config/statefile.c
@@ -29,22 +29,22 @@
*/
#define STATEFILE_PRIVATE
-#include "or/or.h"
-#include "or/circuitstats.h"
-#include "or/config.h"
-#include "or/confparse.h"
-#include "or/connection.h"
-#include "or/control.h"
-#include "or/entrynodes.h"
-#include "or/hibernate.h"
-#include "or/main.h"
-#include "or/rephist.h"
-#include "or/router.h"
+#include "core/or/or.h"
+#include "core/or/circuitstats.h"
+#include "app/config/config.h"
+#include "app/config/confparse.h"
+#include "core/mainloop/connection.h"
+#include "feature/control/control.h"
+#include "feature/client/entrynodes.h"
+#include "feature/hibernate/hibernate.h"
+#include "core/mainloop/main.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
#include "lib/sandbox/sandbox.h"
-#include "or/statefile.h"
+#include "app/config/statefile.h"
#include "lib/encoding/confline.h"
-#include "or/or_state_st.h"
+#include "app/config/or_state_st.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h>
diff --git a/src/app/main/ntmain.c b/src/app/main/ntmain.c
index 63d82f686e..232529a803 100644
--- a/src/app/main/ntmain.c
+++ b/src/app/main/ntmain.c
@@ -19,10 +19,10 @@
#ifdef _WIN32
-#include "or/or.h"
-#include "or/config.h"
-#include "or/main.h"
-#include "app/ntmain.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "core/mainloop/main.h"
+#include "app/main/ntmain.h"
#include "lib/log/win32err.h"
#include "lib/fs/winlib.h"
#include "lib/evloop/compat_libevent.h"
diff --git a/src/core/crypto/hs_ntor.c b/src/core/crypto/hs_ntor.c
index b5007545db..d98d16f7f6 100644
--- a/src/core/crypto/hs_ntor.c
+++ b/src/core/crypto/hs_ntor.c
@@ -24,11 +24,11 @@
* rendezvous key expansion to setup end-to-end rend circuit keys.
*/
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/crypt_ops/crypto_util.h"
#include "lib/crypt_ops/crypto_curve25519.h"
#include "lib/crypt_ops/crypto_ed25519.h"
-#include "or/hs_ntor.h"
+#include "core/crypto/hs_ntor.h"
/* String constants used by the ntor HS protocol */
#define PROTOID "tor-hs-ntor-curve25519-sha3-256-1"
diff --git a/src/core/crypto/hs_ntor.h b/src/core/crypto/hs_ntor.h
index 67a9573436..30738c4ae0 100644
--- a/src/core/crypto/hs_ntor.h
+++ b/src/core/crypto/hs_ntor.h
@@ -4,7 +4,7 @@
#ifndef TOR_HS_NTOR_H
#define TOR_HS_NTOR_H
-#include "or/or.h"
+#include "core/or/or.h"
struct ed25519_public_key_t;
struct curve25519_public_key_t;
struct curve25519_keypair_t;
diff --git a/src/core/crypto/onion.c b/src/core/crypto/onion.c
index 80d8e1a8b1..e71bfc1fd9 100644
--- a/src/core/crypto/onion.c
+++ b/src/core/crypto/onion.c
@@ -62,25 +62,25 @@
* onion_fast.c for more information.
**/
-#include "or/or.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/config.h"
-#include "or/cpuworker.h"
+#include "core/or/or.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "app/config/config.h"
+#include "core/mainloop/cpuworker.h"
#include "lib/crypt_ops/crypto_util.h"
#include "lib/crypt_ops/crypto_dh.h"
-#include "or/networkstatus.h"
-#include "or/onion.h"
-#include "or/onion_fast.h"
-#include "or/onion_ntor.h"
-#include "or/onion_tap.h"
-#include "or/relay.h"
-#include "or/rephist.h"
-#include "or/router.h"
-
-#include "or/cell_st.h"
-#include "or/extend_info_st.h"
-#include "or/or_circuit_st.h"
+#include "feature/nodelist/networkstatus.h"
+#include "core/crypto/onion.h"
+#include "core/crypto/onion_fast.h"
+#include "core/crypto/onion_ntor.h"
+#include "core/crypto/onion_tap.h"
+#include "core/or/relay.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+
+#include "core/or/cell_st.h"
+#include "core/or/extend_info_st.h"
+#include "core/or/or_circuit_st.h"
// trunnel
#include "trunnel/ed25519_cert.h"
diff --git a/src/core/crypto/onion_fast.c b/src/core/crypto/onion_fast.c
index 6e834ccf95..292aeca402 100644
--- a/src/core/crypto/onion_fast.c
+++ b/src/core/crypto/onion_fast.c
@@ -27,8 +27,8 @@
* many RSA1024 keys.
**/
-#include "or/or.h"
-#include "or/onion_fast.h"
+#include "core/or/or.h"
+#include "core/crypto/onion_fast.h"
#include "lib/crypt_ops/crypto_hkdf.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
diff --git a/src/core/crypto/onion_ntor.c b/src/core/crypto/onion_ntor.c
index 59c923cb97..9e1e273ef6 100644
--- a/src/core/crypto/onion_ntor.c
+++ b/src/core/crypto/onion_ntor.c
@@ -29,7 +29,7 @@
#include "lib/ctime/di_ops.h"
#include "lib/log/torlog.h"
#include "lib/log/util_bug.h"
-#include "or/onion_ntor.h"
+#include "core/crypto/onion_ntor.h"
#include <string.h>
diff --git a/src/core/crypto/onion_tap.c b/src/core/crypto/onion_tap.c
index 05bcce2e87..7ffe0ea5c5 100644
--- a/src/core/crypto/onion_tap.c
+++ b/src/core/crypto/onion_tap.c
@@ -27,13 +27,13 @@
* invoked from onion.c.
**/
-#include "or/or.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_dh.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/onion_tap.h"
-#include "or/rephist.h"
+#include "core/crypto/onion_tap.h"
+#include "feature/stats/rephist.h"
/*----------------------------------------------------------------------*/
diff --git a/src/core/crypto/relay_crypto.c b/src/core/crypto/relay_crypto.c
index 1fcfae0b3a..b2388d2c45 100644
--- a/src/core/crypto/relay_crypto.c
+++ b/src/core/crypto/relay_crypto.c
@@ -4,18 +4,18 @@
* Copyright (c) 2007-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
-#include "or/circuitlist.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "core/or/circuitlist.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/hs_ntor.h" // for HS_NTOR_KEY_EXPANSION_KDF_OUT_LEN
-#include "or/relay.h"
-#include "or/relay_crypto.h"
+#include "core/crypto/hs_ntor.h" // for HS_NTOR_KEY_EXPANSION_KDF_OUT_LEN
+#include "core/or/relay.h"
+#include "core/crypto/relay_crypto.h"
-#include "or/cell_st.h"
-#include "or/or_circuit_st.h"
-#include "or/origin_circuit_st.h"
+#include "core/or/cell_st.h"
+#include "core/or/or_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
/** Update digest from the payload of cell. Assign integrity part to
* cell.
diff --git a/src/core/mainloop/connection.c b/src/core/mainloop/connection.c
index 6fd8fbf771..ed789d5208 100644
--- a/src/core/mainloop/connection.c
+++ b/src/core/mainloop/connection.c
@@ -55,8 +55,8 @@
**/
#define CONNECTION_PRIVATE
-#include "or/or.h"
-#include "or/bridges.h"
+#include "core/or/or.h"
+#include "feature/client/bridges.h"
#include "lib/container/buffers.h"
#include "lib/tls/buffers_tls.h"
/*
@@ -66,42 +66,42 @@
#define TOR_CHANNEL_INTERNAL_
#define CONNECTION_PRIVATE
#include "lib/err/backtrace.h"
-#include "or/channel.h"
-#include "or/channeltls.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/connection_or.h"
-#include "or/control.h"
+#include "core/or/channel.h"
+#include "core/or/channeltls.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "core/or/connection_or.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/directory.h"
-#include "or/dirserv.h"
-#include "or/dns.h"
-#include "or/dnsserv.h"
-#include "or/dos.h"
-#include "or/entrynodes.h"
-#include "or/ext_orport.h"
-#include "or/geoip.h"
-#include "or/main.h"
-#include "or/hibernate.h"
-#include "or/hs_common.h"
-#include "or/hs_ident.h"
-#include "or/nodelist.h"
-#include "or/proto_http.h"
-#include "or/proto_socks.h"
-#include "or/policies.h"
-#include "or/reasons.h"
-#include "or/relay.h"
-#include "or/rendclient.h"
-#include "or/rendcommon.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/transports.h"
-#include "or/routerparse.h"
+#include "feature/dircache/directory.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/relay/dns.h"
+#include "feature/client/dnsserv.h"
+#include "core/or/dos.h"
+#include "feature/client/entrynodes.h"
+#include "feature/relay/ext_orport.h"
+#include "feature/stats/geoip.h"
+#include "core/mainloop/main.h"
+#include "feature/hibernate/hibernate.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_ident.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/proto/proto_http.h"
+#include "core/proto/proto_socks.h"
+#include "core/or/policies.h"
+#include "core/or/reasons.h"
+#include "core/or/relay.h"
+#include "feature/rend/rendclient.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/client/transports.h"
+#include "feature/nodelist/routerparse.h"
#include "lib/sandbox/sandbox.h"
#include "lib/net/buffers_net.h"
#include "lib/tls/tortls.h"
@@ -124,14 +124,14 @@
#include <sys/un.h>
#endif
-#include "or/dir_connection_st.h"
-#include "or/control_connection_st.h"
-#include "or/entry_connection_st.h"
-#include "or/listener_connection_st.h"
-#include "or/or_connection_st.h"
-#include "or/port_cfg_st.h"
-#include "or/routerinfo_st.h"
-#include "or/socks_request_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "feature/control/control_connection_st.h"
+#include "core/or/entry_connection_st.h"
+#include "core/or/listener_connection_st.h"
+#include "core/or/or_connection_st.h"
+#include "core/or/port_cfg_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "core/or/socks_request_st.h"
static connection_t *connection_listener_new(
const struct sockaddr *listensockaddr,
diff --git a/src/core/mainloop/cpuworker.c b/src/core/mainloop/cpuworker.c
index 8b58e4c68c..a372db3f17 100644
--- a/src/core/mainloop/cpuworker.c
+++ b/src/core/mainloop/cpuworker.c
@@ -17,22 +17,22 @@
* <li>and for calculating diffs and compressing them in consdiffmgr.c.
* </ul>
**/
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/connection_or.h"
-#include "or/config.h"
-#include "or/cpuworker.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/connection_or.h"
+#include "app/config/config.h"
+#include "core/mainloop/cpuworker.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/main.h"
-#include "or/onion.h"
-#include "or/rephist.h"
-#include "or/router.h"
+#include "core/mainloop/main.h"
+#include "core/crypto/onion.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
#include "lib/evloop/workqueue.h"
-#include "or/or_circuit_st.h"
+#include "core/or/or_circuit_st.h"
#include "lib/intmath/weakrng.h"
static void queue_pending_tasks(void);
diff --git a/src/core/mainloop/main.c b/src/core/mainloop/main.c
index 2a57aa587a..bad9490971 100644
--- a/src/core/mainloop/main.c
+++ b/src/core/mainloop/main.c
@@ -47,69 +47,69 @@
**/
#define MAIN_PRIVATE
-#include "or/or.h"
-#include "or/addressmap.h"
+#include "core/or/or.h"
+#include "feature/client/addressmap.h"
#include "lib/err/backtrace.h"
-#include "or/bridges.h"
+#include "feature/client/bridges.h"
#include "lib/container/buffers.h"
#include "lib/tls/buffers_tls.h"
-#include "or/channel.h"
-#include "or/channeltls.h"
-#include "or/channelpadding.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/circuitmux_ewma.h"
-#include "or/command.h"
+#include "core/or/channel.h"
+#include "core/or/channeltls.h"
+#include "core/or/channelpadding.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "core/or/circuitmux_ewma.h"
+#include "core/or/command.h"
#include "lib/compress/compress.h"
-#include "or/config.h"
-#include "or/confparse.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/connection_or.h"
-#include "or/consdiffmgr.h"
-#include "or/control.h"
-#include "or/cpuworker.h"
+#include "app/config/config.h"
+#include "app/config/confparse.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "core/or/connection_or.h"
+#include "feature/dircache/consdiffmgr.h"
+#include "feature/control/control.h"
+#include "core/mainloop/cpuworker.h"
#include "lib/crypt_ops/crypto_s2k.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/directory.h"
-#include "or/dirserv.h"
-#include "or/dns.h"
-#include "or/dnsserv.h"
-#include "or/dos.h"
-#include "or/entrynodes.h"
-#include "or/geoip.h"
-#include "or/hibernate.h"
-#include "or/hs_cache.h"
-#include "or/hs_circuitmap.h"
-#include "or/hs_client.h"
-#include "or/keypin.h"
-#include "or/main.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "app/ntmain.h"
-#include "or/onion.h"
-#include "or/periodic.h"
-#include "or/policies.h"
-#include "or/protover.h"
-#include "or/transports.h"
-#include "or/relay.h"
-#include "or/rendclient.h"
-#include "or/rendcommon.h"
-#include "or/rendservice.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerkeys.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/scheduler.h"
-#include "or/statefile.h"
-#include "or/status.h"
-#include "or/tor_api.h"
-#include "or/tor_api_internal.h"
+#include "feature/dircache/directory.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/relay/dns.h"
+#include "feature/client/dnsserv.h"
+#include "core/or/dos.h"
+#include "feature/client/entrynodes.h"
+#include "feature/stats/geoip.h"
+#include "feature/hibernate/hibernate.h"
+#include "feature/hs/hs_cache.h"
+#include "feature/hs/hs_circuitmap.h"
+#include "feature/hs/hs_client.h"
+#include "feature/dirauth/keypin.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "app/main/ntmain.h"
+#include "core/crypto/onion.h"
+#include "core/mainloop/periodic.h"
+#include "core/or/policies.h"
+#include "core/proto/protover.h"
+#include "feature/client/transports.h"
+#include "core/or/relay.h"
+#include "feature/rend/rendclient.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/rend/rendservice.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/relay/routerkeys.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "core/or/scheduler.h"
+#include "app/config/statefile.h"
+#include "core/or/status.h"
+#include "feature/api/tor_api.h"
+#include "feature/api/tor_api_internal.h"
#include "lib/process/waitpid.h"
-#include "or/ext_orport.h"
+#include "feature/relay/ext_orport.h"
#include "lib/memarea/memarea.h"
#include "lib/meminfo/meminfo.h"
#include "lib/osinfo/uname.h"
@@ -123,18 +123,18 @@
#include <event2/event.h>
-#include "or/dirauth/dirvote.h"
-#include "or/dirauth/mode.h"
-#include "or/dirauth/shared_random.h"
-
-#include "or/cell_st.h"
-#include "or/entry_connection_st.h"
-#include "or/networkstatus_st.h"
-#include "or/or_connection_st.h"
-#include "or/or_state_st.h"
-#include "or/port_cfg_st.h"
-#include "or/routerinfo_st.h"
-#include "or/socks_request_st.h"
+#include "feature/dirauth/dirvote.h"
+#include "feature/dirauth/mode.h"
+#include "feature/dirauth/shared_random.h"
+
+#include "core/or/cell_st.h"
+#include "core/or/entry_connection_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "core/or/or_connection_st.h"
+#include "app/config/or_state_st.h"
+#include "core/or/port_cfg_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "core/or/socks_request_st.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h>
diff --git a/src/core/mainloop/main.h b/src/core/mainloop/main.h
index 90146f4bd4..2b44596706 100644
--- a/src/core/mainloop/main.h
+++ b/src/core/mainloop/main.h
@@ -114,7 +114,7 @@ STATIC int get_my_roles(const or_options_t *options);
extern smartlist_t *connection_array;
/* We need the periodic_event_item_t definition. */
-#include "or/periodic.h"
+#include "core/mainloop/periodic.h"
extern periodic_event_item_t periodic_events[];
#endif
#endif /* defined(MAIN_PRIVATE) */
diff --git a/src/core/mainloop/periodic.c b/src/core/mainloop/periodic.c
index 041b2d287b..c17c0c56d2 100644
--- a/src/core/mainloop/periodic.c
+++ b/src/core/mainloop/periodic.c
@@ -11,11 +11,11 @@
* that they fire. See periodic_events[] in main.c for examples.
*/
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/evloop/compat_libevent.h"
-#include "or/config.h"
-#include "or/main.h"
-#include "or/periodic.h"
+#include "app/config/config.h"
+#include "core/mainloop/main.h"
+#include "core/mainloop/periodic.h"
#include "lib/evloop/compat_libevent.h"
/** We disable any interval greater than this number of seconds, on the
diff --git a/src/core/or/address_set.c b/src/core/or/address_set.c
index 927a5597c0..014e650d2d 100644
--- a/src/core/or/address_set.c
+++ b/src/core/or/address_set.c
@@ -11,7 +11,7 @@
**/
#include "orconfig.h"
-#include "or/address_set.h"
+#include "core/or/address_set.h"
#include "lib/net/address.h"
#include "lib/container/bloomfilt.h"
#include "lib/crypt_ops/crypto_rand.h"
diff --git a/src/core/or/channel.c b/src/core/or/channel.c
index e6d717f111..476f31d5b4 100644
--- a/src/core/or/channel.c
+++ b/src/core/or/channel.c
@@ -57,31 +57,31 @@
/* This one's for stuff only channel.c and the test suite should see */
#define CHANNEL_PRIVATE_
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/channeltls.h"
-#include "or/channelpadding.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuitstats.h"
-#include "or/config.h"
-#include "or/connection_or.h" /* For var_cell_free() */
-#include "or/circuitmux.h"
-#include "or/entrynodes.h"
-#include "or/geoip.h"
-#include "or/main.h"
-#include "or/nodelist.h"
-#include "or/relay.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/scheduler.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "core/or/channeltls.h"
+#include "core/or/channelpadding.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuitstats.h"
+#include "app/config/config.h"
+#include "core/or/connection_or.h" /* For var_cell_free() */
+#include "core/or/circuitmux.h"
+#include "feature/client/entrynodes.h"
+#include "feature/stats/geoip.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/relay.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "core/or/scheduler.h"
#include "lib/time/compat_time.h"
-#include "or/networkstatus.h"
-#include "or/rendservice.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/rend/rendservice.h"
#include "lib/evloop/timers.h"
-#include "or/cell_queue_st.h"
+#include "core/or/cell_queue_st.h"
/* Global lists of channels */
diff --git a/src/core/or/channel.h b/src/core/or/channel.h
index 7f25056769..b3d97a9add 100644
--- a/src/core/or/channel.h
+++ b/src/core/or/channel.h
@@ -9,8 +9,8 @@
#ifndef TOR_CHANNEL_H
#define TOR_CHANNEL_H
-#include "or/or.h"
-#include "or/circuitmux.h"
+#include "core/or/or.h"
+#include "core/or/circuitmux.h"
#include "lib/container/handles.h"
#include "lib/crypt_ops/crypto_ed25519.h"
diff --git a/src/core/or/channelpadding.c b/src/core/or/channelpadding.c
index 504f6f8f83..b8cfd33d50 100644
--- a/src/core/or/channelpadding.c
+++ b/src/core/or/channelpadding.c
@@ -8,24 +8,24 @@
* channelpadding_channel_to_channelinfo() */
#define TOR_CHANNEL_INTERNAL_
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/channelpadding.h"
-#include "or/channeltls.h"
-#include "or/config.h"
-#include "or/networkstatus.h"
-#include "or/connection.h"
-#include "or/connection_or.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "core/or/channelpadding.h"
+#include "core/or/channeltls.h"
+#include "app/config/config.h"
+#include "feature/nodelist/networkstatus.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_or.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/main.h"
-#include "or/rephist.h"
-#include "or/router.h"
+#include "core/mainloop/main.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
#include "lib/time/compat_time.h"
-#include "or/rendservice.h"
+#include "feature/rend/rendservice.h"
#include "lib/evloop/timers.h"
-#include "or/cell_st.h"
-#include "or/or_connection_st.h"
+#include "core/or/cell_st.h"
+#include "core/or/or_connection_st.h"
STATIC int32_t channelpadding_get_netflow_inactive_timeout_ms(
const channel_t *);
diff --git a/src/core/or/channeltls.c b/src/core/or/channeltls.c
index 85dfe0c0f1..87f5a02b75 100644
--- a/src/core/or/channeltls.c
+++ b/src/core/or/channeltls.c
@@ -38,36 +38,36 @@
#define CHANNELTLS_PRIVATE
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/channeltls.h"
-#include "or/circuitmux.h"
-#include "or/circuitmux_ewma.h"
-#include "or/command.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_or.h"
-#include "or/control.h"
-#include "or/entrynodes.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "core/or/channeltls.h"
+#include "core/or/circuitmux.h"
+#include "core/or/circuitmux_ewma.h"
+#include "core/or/command.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_or.h"
+#include "feature/control/control.h"
+#include "feature/client/entrynodes.h"
#include "trunnel/link_handshake.h"
-#include "or/relay.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/scheduler.h"
-#include "or/torcert.h"
-#include "or/networkstatus.h"
+#include "core/or/relay.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "core/or/scheduler.h"
+#include "feature/nodelist/torcert.h"
+#include "feature/nodelist/networkstatus.h"
#include "trunnel/channelpadding_negotiation.h"
-#include "or/channelpadding.h"
-
-#include "or/cell_st.h"
-#include "or/cell_queue_st.h"
-#include "or/extend_info_st.h"
-#include "or/or_connection_st.h"
-#include "or/or_handshake_certs_st.h"
-#include "or/or_handshake_state_st.h"
-#include "or/routerinfo_st.h"
-#include "or/var_cell_st.h"
+#include "core/or/channelpadding.h"
+
+#include "core/or/cell_st.h"
+#include "core/or/cell_queue_st.h"
+#include "core/or/extend_info_st.h"
+#include "core/or/or_connection_st.h"
+#include "core/or/or_handshake_certs_st.h"
+#include "core/or/or_handshake_state_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "core/or/var_cell_st.h"
#include "lib/tls/tortls.h"
diff --git a/src/core/or/channeltls.h b/src/core/or/channeltls.h
index 1ab899af96..4a10d51d9f 100644
--- a/src/core/or/channeltls.h
+++ b/src/core/or/channeltls.h
@@ -9,8 +9,8 @@
#ifndef TOR_CHANNELTLS_H
#define TOR_CHANNELTLS_H
-#include "or/or.h"
-#include "or/channel.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
struct ed25519_public_key_t;
struct curve25519_public_key_t;
diff --git a/src/core/or/circuit_st.h b/src/core/or/circuit_st.h
index 8453efa633..2e33b37b01 100644
--- a/src/core/or/circuit_st.h
+++ b/src/core/or/circuit_st.h
@@ -7,9 +7,9 @@
#ifndef CIRCUIT_ST_H
#define CIRCUIT_ST_H
-#include "or/or.h"
+#include "core/or/or.h"
-#include "or/cell_queue_st.h"
+#include "core/or/cell_queue_st.h"
struct hs_token_t;
diff --git a/src/core/or/circuitbuild.c b/src/core/or/circuitbuild.c
index 39ae7ebf48..e22ddabde3 100644
--- a/src/core/or/circuitbuild.c
+++ b/src/core/or/circuitbuild.c
@@ -27,54 +27,54 @@
#define CIRCUITBUILD_PRIVATE
-#include "or/or.h"
-#include "or/bridges.h"
-#include "or/channel.h"
-#include "or/circpathbias.h"
+#include "core/or/or.h"
+#include "feature/client/bridges.h"
+#include "core/or/channel.h"
+#include "feature/client/circpathbias.h"
#define CIRCUITBUILD_PRIVATE
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuitstats.h"
-#include "or/circuituse.h"
-#include "or/command.h"
-#include "or/config.h"
-#include "or/confparse.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/connection_or.h"
-#include "or/control.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuitstats.h"
+#include "core/or/circuituse.h"
+#include "core/or/command.h"
+#include "app/config/config.h"
+#include "app/config/confparse.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "core/or/connection_or.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/directory.h"
-#include "or/entrynodes.h"
-#include "or/hs_ntor.h"
-#include "or/main.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/onion.h"
-#include "or/onion_tap.h"
-#include "or/onion_fast.h"
-#include "or/policies.h"
-#include "or/relay.h"
-#include "or/relay_crypto.h"
-#include "or/rendcommon.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/routerset.h"
-#include "or/transports.h"
-
-#include "or/cell_st.h"
-#include "or/cpath_build_state_st.h"
-#include "or/entry_connection_st.h"
-#include "or/extend_info_st.h"
-#include "or/node_st.h"
-#include "or/or_circuit_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/microdesc_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerstatus_st.h"
+#include "feature/dircache/directory.h"
+#include "feature/client/entrynodes.h"
+#include "core/crypto/hs_ntor.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/crypto/onion.h"
+#include "core/crypto/onion_tap.h"
+#include "core/crypto/onion_fast.h"
+#include "core/or/policies.h"
+#include "core/or/relay.h"
+#include "core/crypto/relay_crypto.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/routerset.h"
+#include "feature/client/transports.h"
+
+#include "core/or/cell_st.h"
+#include "core/or/cpath_build_state_st.h"
+#include "core/or/entry_connection_st.h"
+#include "core/or/extend_info_st.h"
+#include "feature/nodelist/node_st.h"
+#include "core/or/or_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "feature/nodelist/microdesc_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerstatus_st.h"
static channel_t * channel_connect_for_circuit(const tor_addr_t *addr,
uint16_t port,
diff --git a/src/core/or/circuitlist.c b/src/core/or/circuitlist.c
index d9d12db9b4..f39e05ecd1 100644
--- a/src/core/or/circuitlist.c
+++ b/src/core/or/circuitlist.c
@@ -53,40 +53,40 @@
#define CIRCUITLIST_PRIVATE
#include "lib/cc/torint.h" /* TOR_PRIuSZ */
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/circpathbias.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/circuitstats.h"
-#include "or/connection.h"
-#include "or/config.h"
-#include "or/connection_edge.h"
-#include "or/connection_or.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "feature/client/circpathbias.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "core/or/circuitstats.h"
+#include "core/mainloop/connection.h"
+#include "app/config/config.h"
+#include "core/or/connection_edge.h"
+#include "core/or/connection_or.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
#include "lib/crypt_ops/crypto_dh.h"
-#include "or/directory.h"
-#include "or/entrynodes.h"
-#include "or/main.h"
-#include "or/hs_circuit.h"
-#include "or/hs_circuitmap.h"
-#include "or/hs_ident.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/onion.h"
-#include "or/onion_fast.h"
-#include "or/policies.h"
-#include "or/relay.h"
-#include "or/relay_crypto.h"
-#include "or/rendclient.h"
-#include "or/rendcommon.h"
-#include "or/rephist.h"
-#include "or/routerlist.h"
-#include "or/routerset.h"
-#include "or/channelpadding.h"
+#include "feature/dircache/directory.h"
+#include "feature/client/entrynodes.h"
+#include "core/mainloop/main.h"
+#include "feature/hs/hs_circuit.h"
+#include "feature/hs/hs_circuitmap.h"
+#include "feature/hs/hs_ident.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/crypto/onion.h"
+#include "core/crypto/onion_fast.h"
+#include "core/or/policies.h"
+#include "core/or/relay.h"
+#include "core/crypto/relay_crypto.h"
+#include "feature/rend/rendclient.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/stats/rephist.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerset.h"
+#include "core/or/channelpadding.h"
#include "lib/compress/compress.h"
#include "lib/compress/compress_lzma.h"
#include "lib/compress/compress_zlib.h"
@@ -95,13 +95,13 @@
#include "ht.h"
-#include "or/cpath_build_state_st.h"
-#include "or/crypt_path_reference_st.h"
-#include "or/dir_connection_st.h"
-#include "or/edge_connection_st.h"
-#include "or/extend_info_st.h"
-#include "or/or_circuit_st.h"
-#include "or/origin_circuit_st.h"
+#include "core/or/cpath_build_state_st.h"
+#include "core/or/crypt_path_reference_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "core/or/edge_connection_st.h"
+#include "core/or/extend_info_st.h"
+#include "core/or/or_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
/********* START VARIABLES **********/
diff --git a/src/core/or/circuitlist.h b/src/core/or/circuitlist.h
index 7c9bc0199a..b069604a1e 100644
--- a/src/core/or/circuitlist.h
+++ b/src/core/or/circuitlist.h
@@ -13,7 +13,7 @@
#define TOR_CIRCUITLIST_H
#include "lib/testsupport/testsupport.h"
-#include "or/hs_ident.h"
+#include "feature/hs/hs_ident.h"
/** Circuit state: I'm the origin, still haven't done all my handshakes. */
#define CIRCUIT_STATE_BUILDING 0
diff --git a/src/core/or/circuitmux.c b/src/core/or/circuitmux.c
index 9e0126b8f1..f55386df23 100644
--- a/src/core/or/circuitmux.c
+++ b/src/core/or/circuitmux.c
@@ -69,15 +69,15 @@
* made to attach all existing circuits to the new policy.
**/
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/circuitlist.h"
-#include "or/circuitmux.h"
-#include "or/relay.h"
-
-#include "or/cell_queue_st.h"
-#include "or/destroy_cell_queue_st.h"
-#include "or/or_circuit_st.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuitmux.h"
+#include "core/or/relay.h"
+
+#include "core/or/cell_queue_st.h"
+#include "core/or/destroy_cell_queue_st.h"
+#include "core/or/or_circuit_st.h"
/*
* Private typedefs for circuitmux.c
diff --git a/src/core/or/circuitmux.h b/src/core/or/circuitmux.h
index e94cc354c7..31bf81463b 100644
--- a/src/core/or/circuitmux.h
+++ b/src/core/or/circuitmux.h
@@ -9,7 +9,7 @@
#ifndef TOR_CIRCUITMUX_H
#define TOR_CIRCUITMUX_H
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/testsupport/testsupport.h"
typedef struct circuitmux_policy_s circuitmux_policy_t;
diff --git a/src/core/or/circuitmux_ewma.c b/src/core/or/circuitmux_ewma.c
index d600602a7e..deca81f0ac 100644
--- a/src/core/or/circuitmux_ewma.c
+++ b/src/core/or/circuitmux_ewma.c
@@ -34,12 +34,12 @@
#include <math.h>
-#include "or/or.h"
-#include "or/circuitmux.h"
-#include "or/circuitmux_ewma.h"
+#include "core/or/or.h"
+#include "core/or/circuitmux.h"
+#include "core/or/circuitmux_ewma.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/networkstatus.h"
-#include "or/or_options_st.h"
+#include "feature/nodelist/networkstatus.h"
+#include "app/config/or_options_st.h"
/*** EWMA parameter #defines ***/
diff --git a/src/core/or/circuitmux_ewma.h b/src/core/or/circuitmux_ewma.h
index 1214b0264b..8e87830a80 100644
--- a/src/core/or/circuitmux_ewma.h
+++ b/src/core/or/circuitmux_ewma.h
@@ -9,8 +9,8 @@
#ifndef TOR_CIRCUITMUX_EWMA_H
#define TOR_CIRCUITMUX_EWMA_H
-#include "or/or.h"
-#include "or/circuitmux.h"
+#include "core/or/or.h"
+#include "core/or/circuitmux.h"
/* The public EWMA policy callbacks object. */
extern circuitmux_policy_t ewma_policy;
diff --git a/src/core/or/circuitstats.c b/src/core/or/circuitstats.c
index d275399e97..63cd21540d 100644
--- a/src/core/or/circuitstats.c
+++ b/src/core/or/circuitstats.c
@@ -25,28 +25,28 @@
#define CIRCUITSTATS_PRIVATE
-#include "or/or.h"
-#include "or/circuitbuild.h"
-#include "or/circuitstats.h"
-#include "or/config.h"
-#include "or/confparse.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitstats.h"
+#include "app/config/config.h"
+#include "app/config/confparse.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/main.h"
-#include "or/networkstatus.h"
-#include "or/rendclient.h"
-#include "or/rendservice.h"
-#include "or/router.h"
-#include "or/statefile.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/rend/rendclient.h"
+#include "feature/rend/rendservice.h"
+#include "feature/relay/router.h"
+#include "app/config/statefile.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
#include "lib/math/fp.h"
#include "lib/time/tvdiff.h"
#include "lib/encoding/confline.h"
-#include "or/crypt_path_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/or_state_st.h"
+#include "core/or/crypt_path_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "app/config/or_state_st.h"
#undef log
#include <math.h>
diff --git a/src/core/or/circuituse.c b/src/core/or/circuituse.c
index a3a69dc354..a3b9eb1713 100644
--- a/src/core/or/circuituse.c
+++ b/src/core/or/circuituse.c
@@ -27,45 +27,45 @@
* logic in circuitstats.c.
**/
-#include "or/or.h"
-#include "or/addressmap.h"
-#include "or/bridges.h"
-#include "or/channel.h"
-#include "or/circpathbias.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuitstats.h"
-#include "or/circuituse.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/control.h"
-#include "or/directory.h"
-#include "or/entrynodes.h"
-#include "or/hs_common.h"
-#include "or/hs_client.h"
-#include "or/hs_circuit.h"
-#include "or/hs_ident.h"
-#include "or/hs_stats.h"
-#include "or/nodelist.h"
-#include "or/networkstatus.h"
-#include "or/policies.h"
-#include "or/rendclient.h"
-#include "or/rendcommon.h"
-#include "or/rendservice.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerlist.h"
+#include "core/or/or.h"
+#include "feature/client/addressmap.h"
+#include "feature/client/bridges.h"
+#include "core/or/channel.h"
+#include "feature/client/circpathbias.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuitstats.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "feature/control/control.h"
+#include "feature/dircache/directory.h"
+#include "feature/client/entrynodes.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_client.h"
+#include "feature/hs/hs_circuit.h"
+#include "feature/hs/hs_ident.h"
+#include "feature/hs/hs_stats.h"
+#include "feature/nodelist/nodelist.h"
+#include "feature/nodelist/networkstatus.h"
+#include "core/or/policies.h"
+#include "feature/rend/rendclient.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/rend/rendservice.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
#include "lib/math/fp.h"
#include "lib/time/tvdiff.h"
-#include "or/cpath_build_state_st.h"
-#include "or/dir_connection_st.h"
-#include "or/entry_connection_st.h"
-#include "or/extend_info_st.h"
-#include "or/or_circuit_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/socks_request_st.h"
+#include "core/or/cpath_build_state_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "core/or/entry_connection_st.h"
+#include "core/or/extend_info_st.h"
+#include "core/or/or_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "core/or/socks_request_st.h"
static void circuit_expire_old_circuits_clientside(void);
static void circuit_increment_failure_count(void);
diff --git a/src/core/or/command.c b/src/core/or/command.c
index c2d6e2bb26..461e49b629 100644
--- a/src/core/or/command.c
+++ b/src/core/or/command.c
@@ -36,30 +36,30 @@
* callbacks registered in command_setup_channel(),
* called when channels are created in circuitbuild.c
*/
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/command.h"
-#include "or/connection.h"
-#include "or/connection_or.h"
-#include "or/config.h"
-#include "or/control.h"
-#include "or/cpuworker.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/command.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_or.h"
+#include "app/config/config.h"
+#include "feature/control/control.h"
+#include "core/mainloop/cpuworker.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/dos.h"
-#include "or/hibernate.h"
-#include "or/nodelist.h"
-#include "or/onion.h"
-#include "or/rephist.h"
-#include "or/relay.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-
-#include "or/cell_st.h"
-#include "or/or_circuit_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/var_cell_st.h"
+#include "core/or/dos.h"
+#include "feature/hibernate/hibernate.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/crypto/onion.h"
+#include "feature/stats/rephist.h"
+#include "core/or/relay.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+
+#include "core/or/cell_st.h"
+#include "core/or/or_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "core/or/var_cell_st.h"
/** How many CELL_CREATE cells have we received, ever? */
uint64_t stats_n_create_cells_processed = 0;
diff --git a/src/core/or/command.h b/src/core/or/command.h
index 864a5b2fd0..83ffd8dccd 100644
--- a/src/core/or/command.h
+++ b/src/core/or/command.h
@@ -12,7 +12,7 @@
#ifndef TOR_COMMAND_H
#define TOR_COMMAND_H
-#include "or/channel.h"
+#include "core/or/channel.h"
void command_process_cell(channel_t *chan, cell_t *cell);
void command_process_var_cell(channel_t *chan, var_cell_t *cell);
diff --git a/src/core/or/connection_edge.c b/src/core/or/connection_edge.c
index 13d957a937..8e8a5e21ca 100644
--- a/src/core/or/connection_edge.c
+++ b/src/core/or/connection_edge.c
@@ -55,57 +55,57 @@
**/
#define CONNECTION_EDGE_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/err/backtrace.h"
-#include "or/addressmap.h"
+#include "feature/client/addressmap.h"
#include "lib/container/buffers.h"
-#include "or/channel.h"
-#include "or/circpathbias.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/connection_or.h"
-#include "or/control.h"
+#include "core/or/channel.h"
+#include "feature/client/circpathbias.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "core/or/connection_or.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/dns.h"
-#include "or/dnsserv.h"
-#include "or/directory.h"
-#include "or/dirserv.h"
-#include "or/hibernate.h"
-#include "or/hs_common.h"
-#include "or/hs_cache.h"
-#include "or/hs_client.h"
-#include "or/hs_circuit.h"
-#include "or/main.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/proto_http.h"
-#include "or/proto_socks.h"
-#include "or/reasons.h"
-#include "or/relay.h"
-#include "or/rendclient.h"
-#include "or/rendcommon.h"
-#include "or/rendservice.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerset.h"
-#include "or/circuitbuild.h"
-
-#include "or/cell_st.h"
-#include "or/cpath_build_state_st.h"
-#include "or/dir_connection_st.h"
-#include "or/entry_connection_st.h"
-#include "or/extend_info_st.h"
-#include "or/node_st.h"
-#include "or/or_circuit_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/socks_request_st.h"
+#include "feature/relay/dns.h"
+#include "feature/client/dnsserv.h"
+#include "feature/dircache/directory.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/hibernate/hibernate.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_cache.h"
+#include "feature/hs/hs_client.h"
+#include "feature/hs/hs_circuit.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "core/proto/proto_http.h"
+#include "core/proto/proto_socks.h"
+#include "core/or/reasons.h"
+#include "core/or/relay.h"
+#include "feature/rend/rendclient.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/rend/rendservice.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerset.h"
+#include "core/or/circuitbuild.h"
+
+#include "core/or/cell_st.h"
+#include "core/or/cpath_build_state_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "core/or/entry_connection_st.h"
+#include "core/or/extend_info_st.h"
+#include "feature/nodelist/node_st.h"
+#include "core/or/or_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "core/or/socks_request_st.h"
#include "lib/evloop/compat_libevent.h"
#ifdef HAVE_LINUX_TYPES_H
diff --git a/src/core/or/connection_or.c b/src/core/or/connection_or.c
index 71ab905942..159ee96266 100644
--- a/src/core/or/connection_or.c
+++ b/src/core/or/connection_or.c
@@ -20,8 +20,8 @@
*
* This module also implements the client side of the v3 Tor link handshake,
**/
-#include "or/or.h"
-#include "or/bridges.h"
+#include "core/or/or.h"
+#include "feature/client/bridges.h"
#include "lib/container/buffers.h"
/*
* Define this so we get channel internal functions, since we're implementing
@@ -29,46 +29,46 @@
*/
#define TOR_CHANNEL_INTERNAL_
#define CONNECTION_OR_PRIVATE
-#include "or/channel.h"
-#include "or/channeltls.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuitstats.h"
-#include "or/command.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_or.h"
-#include "or/control.h"
+#include "core/or/channel.h"
+#include "core/or/channeltls.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuitstats.h"
+#include "core/or/command.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_or.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/dirserv.h"
-#include "or/entrynodes.h"
-#include "or/geoip.h"
-#include "or/main.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/client/entrynodes.h"
+#include "feature/stats/geoip.h"
+#include "core/mainloop/main.h"
#include "trunnel/link_handshake.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/proto_cell.h"
-#include "or/reasons.h"
-#include "or/relay.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerkeys.h"
-#include "or/routerlist.h"
-#include "or/ext_orport.h"
-#include "or/scheduler.h"
-#include "or/torcert.h"
-#include "or/channelpadding.h"
-
-#include "or/cell_st.h"
-#include "or/cell_queue_st.h"
-#include "or/or_connection_st.h"
-#include "or/or_handshake_certs_st.h"
-#include "or/or_handshake_state_st.h"
-#include "or/or_state_st.h"
-#include "or/routerinfo_st.h"
-#include "or/var_cell_st.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/proto/proto_cell.h"
+#include "core/or/reasons.h"
+#include "core/or/relay.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/relay/routerkeys.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/relay/ext_orport.h"
+#include "core/or/scheduler.h"
+#include "feature/nodelist/torcert.h"
+#include "core/or/channelpadding.h"
+
+#include "core/or/cell_st.h"
+#include "core/or/cell_queue_st.h"
+#include "core/or/or_connection_st.h"
+#include "core/or/or_handshake_certs_st.h"
+#include "core/or/or_handshake_state_st.h"
+#include "app/config/or_state_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "core/or/var_cell_st.h"
#include "lib/crypt_ops/crypto_format.h"
#include "lib/tls/tortls.h"
diff --git a/src/core/or/crypt_path_st.h b/src/core/or/crypt_path_st.h
index 0fde1fab0e..1380913360 100644
--- a/src/core/or/crypt_path_st.h
+++ b/src/core/or/crypt_path_st.h
@@ -7,7 +7,7 @@
#ifndef CRYPT_PATH_ST_H
#define CRYPT_PATH_ST_H
-#include "or/relay_crypto_st.h"
+#include "core/or/relay_crypto_st.h"
struct crypto_dh_t;
#define CRYPT_PATH_MAGIC 0x70127012u
diff --git a/src/core/or/dos.c b/src/core/or/dos.c
index d86ede02cb..52879c34d7 100644
--- a/src/core/or/dos.c
+++ b/src/core/or/dos.c
@@ -8,22 +8,22 @@
#define DOS_PRIVATE
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_or.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_or.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/geoip.h"
-#include "or/main.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/relay.h"
-#include "or/router.h"
+#include "feature/stats/geoip.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/relay.h"
+#include "feature/relay/router.h"
-#include "or/dos.h"
+#include "core/or/dos.h"
-#include "or/or_connection_st.h"
+#include "core/or/or_connection_st.h"
/*
* Circuit creation denial of service mitigation.
diff --git a/src/core/or/edge_connection_st.h b/src/core/or/edge_connection_st.h
index d58e1c2b8c..f4388c10e6 100644
--- a/src/core/or/edge_connection_st.h
+++ b/src/core/or/edge_connection_st.h
@@ -7,9 +7,9 @@
#ifndef EDGE_CONNECTION_ST_H
#define EDGE_CONNECTION_ST_H
-#include "or/or.h"
+#include "core/or/or.h"
-#include "or/connection_st.h"
+#include "core/or/connection_st.h"
/** Subtype of connection_t for an "edge connection" -- that is, an entry (ap)
* connection, or an exit. */
diff --git a/src/core/or/entry_connection_st.h b/src/core/or/entry_connection_st.h
index 2f9676088c..ebaee2f1a6 100644
--- a/src/core/or/entry_connection_st.h
+++ b/src/core/or/entry_connection_st.h
@@ -7,7 +7,7 @@
#ifndef ENTRY_CONNECTION_ST_H
#define ENTRY_CONNECTION_ST_H
-#include "or/edge_connection_st.h"
+#include "core/or/edge_connection_st.h"
/** Subtype of edge_connection_t for an "entry connection" -- that is, a SOCKS
* connection, a DNS request, a TransPort connection or a NATD connection */
diff --git a/src/core/or/entry_port_cfg_st.h b/src/core/or/entry_port_cfg_st.h
index 9b07ccb067..492fafbd6d 100644
--- a/src/core/or/entry_port_cfg_st.h
+++ b/src/core/or/entry_port_cfg_st.h
@@ -8,7 +8,7 @@
#define ENTRY_PORT_CFG_ST_H
#include "lib/cc/torint.h"
-#include "or/or.h"
+#include "core/or/or.h"
struct entry_port_cfg_t {
/* Client port types (socks, dns, trans, natd) only: */
diff --git a/src/core/or/git_revision.c b/src/core/or/git_revision.c
index be6f67423c..f34f922c80 100644
--- a/src/core/or/git_revision.c
+++ b/src/core/or/git_revision.c
@@ -3,7 +3,7 @@
* Copyright (c) 2007-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/git_revision.h"
+#include "core/or/git_revision.h"
/** String describing which Tor Git repository version the source was
* built from. This string is generated by a bit of shell kludging in
diff --git a/src/core/or/listener_connection_st.h b/src/core/or/listener_connection_st.h
index 7b5aafcb58..ec350c1b0d 100644
--- a/src/core/or/listener_connection_st.h
+++ b/src/core/or/listener_connection_st.h
@@ -7,7 +7,7 @@
#ifndef LISTENER_CONNECTION_ST_H
#define LISTENER_CONNECTION_ST_H
-#include "or/connection_st.h"
+#include "core/or/connection_st.h"
/** Subtype of connection_t; used for a listener socket. */
struct listener_connection_t {
diff --git a/src/core/or/or.h b/src/core/or/or.h
index 826e81e468..6edfd21dfb 100644
--- a/src/core/or/or.h
+++ b/src/core/or/or.h
@@ -69,7 +69,7 @@
// These, more than other includes, are for keeping the other struct
// definitions working. We should remove them when we minimize our includes.
-#include "or/entry_port_cfg_st.h"
+#include "core/or/entry_port_cfg_st.h"
struct ed25519_public_key_t;
struct curve25519_public_key_t;
diff --git a/src/core/or/or_circuit_st.h b/src/core/or/or_circuit_st.h
index 158a5314ef..b5e21d9867 100644
--- a/src/core/or/or_circuit_st.h
+++ b/src/core/or/or_circuit_st.h
@@ -7,10 +7,10 @@
#ifndef OR_CIRCUIT_ST_H
#define OR_CIRCUIT_ST_H
-#include "or/or.h"
+#include "core/or/or.h"
-#include "or/circuit_st.h"
-#include "or/crypt_path_st.h"
+#include "core/or/circuit_st.h"
+#include "core/or/crypt_path_st.h"
struct onion_queue_t;
diff --git a/src/core/or/or_connection_st.h b/src/core/or/or_connection_st.h
index 8c2c1f89c6..020a717c11 100644
--- a/src/core/or/or_connection_st.h
+++ b/src/core/or/or_connection_st.h
@@ -7,7 +7,7 @@
#ifndef OR_CONNECTION_ST_H
#define OR_CONNECTION_ST_H
-#include "or/connection_st.h"
+#include "core/or/connection_st.h"
#include "lib/evloop/token_bucket.h"
struct tor_tls_t;
diff --git a/src/core/or/origin_circuit_st.h b/src/core/or/origin_circuit_st.h
index b885725edb..e7b864e825 100644
--- a/src/core/or/origin_circuit_st.h
+++ b/src/core/or/origin_circuit_st.h
@@ -7,9 +7,9 @@
#ifndef ORIGIN_CIRCUIT_ST_H
#define ORIGIN_CIRCUIT_ST_H
-#include "or/or.h"
+#include "core/or/or.h"
-#include "or/circuit_st.h"
+#include "core/or/circuit_st.h"
struct onion_queue_t;
diff --git a/src/core/or/policies.c b/src/core/or/policies.c
index 53e00e8083..e01415f95e 100644
--- a/src/core/or/policies.c
+++ b/src/core/or/policies.c
@@ -17,27 +17,27 @@
#define POLICIES_PRIVATE
-#include "or/or.h"
-#include "or/bridges.h"
-#include "or/config.h"
-#include "or/dirserv.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/router.h"
-#include "or/routerparse.h"
-#include "or/geoip.h"
+#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"
+#include "core/or/policies.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/stats/geoip.h"
#include "ht.h"
#include "lib/encoding/confline.h"
-#include "or/addr_policy_st.h"
-#include "or/dir_server_st.h"
-#include "or/microdesc_st.h"
-#include "or/node_st.h"
-#include "or/port_cfg_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerstatus_st.h"
+#include "core/or/addr_policy_st.h"
+#include "feature/dirclient/dir_server_st.h"
+#include "feature/nodelist/microdesc_st.h"
+#include "feature/nodelist/node_st.h"
+#include "core/or/port_cfg_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerstatus_st.h"
/** Policy that addresses for incoming SOCKS connections must match. */
static smartlist_t *socks_policy = NULL;
diff --git a/src/core/or/port_cfg_st.h b/src/core/or/port_cfg_st.h
index 86a3b963bc..19410871ed 100644
--- a/src/core/or/port_cfg_st.h
+++ b/src/core/or/port_cfg_st.h
@@ -7,8 +7,8 @@
#ifndef PORT_CFG_ST_H
#define PORT_CFG_ST_H
-#include "or/entry_port_cfg_st.h"
-#include "or/server_port_cfg_st.h"
+#include "core/or/entry_port_cfg_st.h"
+#include "core/or/server_port_cfg_st.h"
/** Configuration for a single port that we're listening on. */
struct port_cfg_t {
diff --git a/src/core/or/reasons.c b/src/core/or/reasons.c
index 7d8dcf374c..7a1e09e9f8 100644
--- a/src/core/or/reasons.c
+++ b/src/core/or/reasons.c
@@ -14,10 +14,10 @@
* to another.
**/
-#include "or/or.h"
-#include "or/config.h"
-#include "or/reasons.h"
-#include "or/routerlist.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "core/or/reasons.h"
+#include "feature/nodelist/routerlist.h"
#include "lib/tls/tortls.h"
/***************************** Edge (stream) reasons **********************/
diff --git a/src/core/or/relay.c b/src/core/or/relay.c
index e8e1762b40..32bb69d25f 100644
--- a/src/core/or/relay.c
+++ b/src/core/or/relay.c
@@ -46,53 +46,53 @@
**/
#define RELAY_PRIVATE
-#include "or/or.h"
-#include "or/addressmap.h"
+#include "core/or/or.h"
+#include "feature/client/addressmap.h"
#include "lib/err/backtrace.h"
#include "lib/container/buffers.h"
-#include "or/channel.h"
-#include "or/circpathbias.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
+#include "core/or/channel.h"
+#include "feature/client/circpathbias.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
#include "lib/compress/compress.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/connection_or.h"
-#include "or/control.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "core/or/connection_or.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/directory.h"
-#include "or/geoip.h"
-#include "or/hs_cache.h"
-#include "or/main.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/onion.h"
-#include "or/policies.h"
-#include "or/reasons.h"
-#include "or/relay.h"
-#include "or/relay_crypto.h"
-#include "or/rendcache.h"
-#include "or/rendcommon.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/scheduler.h"
-#include "or/rephist.h"
-
-#include "or/cell_st.h"
-#include "or/cell_queue_st.h"
-#include "or/cpath_build_state_st.h"
-#include "or/dir_connection_st.h"
-#include "or/destroy_cell_queue_st.h"
-#include "or/entry_connection_st.h"
-#include "or/extend_info_st.h"
-#include "or/or_circuit_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/routerinfo_st.h"
-#include "or/socks_request_st.h"
+#include "feature/dircache/directory.h"
+#include "feature/stats/geoip.h"
+#include "feature/hs/hs_cache.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/crypto/onion.h"
+#include "core/or/policies.h"
+#include "core/or/reasons.h"
+#include "core/or/relay.h"
+#include "core/crypto/relay_crypto.h"
+#include "feature/rend/rendcache.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "core/or/scheduler.h"
+#include "feature/stats/rephist.h"
+
+#include "core/or/cell_st.h"
+#include "core/or/cell_queue_st.h"
+#include "core/or/cpath_build_state_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "core/or/destroy_cell_queue_st.h"
+#include "core/or/entry_connection_st.h"
+#include "core/or/extend_info_st.h"
+#include "core/or/or_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "core/or/socks_request_st.h"
#include "lib/intmath/weakrng.h"
diff --git a/src/core/or/scheduler.c b/src/core/or/scheduler.c
index b8eaca3dca..e19059f0c5 100644
--- a/src/core/or/scheduler.c
+++ b/src/core/or/scheduler.c
@@ -1,20 +1,20 @@
/* Copyright (c) 2013-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
#include "lib/evloop/compat_libevent.h"
#define SCHEDULER_PRIVATE_
#define SCHEDULER_KIST_PRIVATE
-#include "or/scheduler.h"
-#include "or/main.h"
+#include "core/or/scheduler.h"
+#include "core/mainloop/main.h"
#include "lib/container/buffers.h"
#define TOR_CHANNEL_INTERNAL_
-#include "or/channeltls.h"
+#include "core/or/channeltls.h"
#include "lib/evloop/compat_libevent.h"
-#include "or/or_connection_st.h"
+#include "core/or/or_connection_st.h"
/**
* \file scheduler.c
diff --git a/src/core/or/scheduler.h b/src/core/or/scheduler.h
index 856923f9a7..05a888365b 100644
--- a/src/core/or/scheduler.h
+++ b/src/core/or/scheduler.h
@@ -9,8 +9,8 @@
#ifndef TOR_SCHEDULER_H
#define TOR_SCHEDULER_H
-#include "or/or.h"
-#include "or/channel.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
#include "lib/testsupport/testsupport.h"
/** Scheduler type, we build an ordered list with those values from the
diff --git a/src/core/or/scheduler_kist.c b/src/core/or/scheduler_kist.c
index 5a45ccab88..449478df78 100644
--- a/src/core/or/scheduler_kist.c
+++ b/src/core/or/scheduler_kist.c
@@ -3,19 +3,19 @@
#define SCHEDULER_KIST_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/container/buffers.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/networkstatus.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "feature/nodelist/networkstatus.h"
#define TOR_CHANNEL_INTERNAL_
-#include "or/channel.h"
-#include "or/channeltls.h"
+#include "core/or/channel.h"
+#include "core/or/channeltls.h"
#define SCHEDULER_PRIVATE_
-#include "or/scheduler.h"
+#include "core/or/scheduler.h"
#include "lib/math/fp.h"
-#include "or/or_connection_st.h"
+#include "core/or/or_connection_st.h"
#define TLS_PER_CELL_OVERHEAD 29
diff --git a/src/core/or/scheduler_vanilla.c b/src/core/or/scheduler_vanilla.c
index e05bebb37c..db8374eadb 100644
--- a/src/core/or/scheduler_vanilla.c
+++ b/src/core/or/scheduler_vanilla.c
@@ -1,12 +1,12 @@
/* Copyright (c) 2017-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
#define TOR_CHANNEL_INTERNAL_
-#include "or/channel.h"
+#include "core/or/channel.h"
#define SCHEDULER_PRIVATE_
-#include "or/scheduler.h"
+#include "core/or/scheduler.h"
/*****************************************************************************
* Other internal data
diff --git a/src/core/or/status.c b/src/core/or/status.c
index 2259b3aae7..30a65b1d4c 100644
--- a/src/core/or/status.c
+++ b/src/core/or/status.c
@@ -14,28 +14,28 @@
#define STATUS_PRIVATE
-#include "or/or.h"
-#include "or/circuituse.h"
-#include "or/config.h"
-#include "or/status.h"
-#include "or/nodelist.h"
-#include "or/relay.h"
-#include "or/router.h"
-#include "or/circuitlist.h"
-#include "or/main.h"
-#include "or/rephist.h"
-#include "or/hibernate.h"
-#include "or/statefile.h"
-#include "or/hs_stats.h"
-#include "or/hs_service.h"
-#include "or/dos.h"
-
-#include "or/or_state_st.h"
-#include "or/routerinfo_st.h"
+#include "core/or/or.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
+#include "core/or/status.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/relay.h"
+#include "feature/relay/router.h"
+#include "core/or/circuitlist.h"
+#include "core/mainloop/main.h"
+#include "feature/stats/rephist.h"
+#include "feature/hibernate/hibernate.h"
+#include "app/config/statefile.h"
+#include "feature/hs/hs_stats.h"
+#include "feature/hs/hs_service.h"
+#include "core/or/dos.h"
+
+#include "app/config/or_state_st.h"
+#include "feature/nodelist/routerinfo_st.h"
#include "lib/tls/tortls.h"
static void log_accounting(const time_t now, const or_options_t *options);
-#include "or/geoip.h"
+#include "feature/stats/geoip.h"
/** Return the total number of circuits. */
STATIC int
diff --git a/src/core/proto/proto_cell.c b/src/core/proto/proto_cell.c
index 41554bd1b0..49b07663d7 100644
--- a/src/core/proto/proto_cell.c
+++ b/src/core/proto/proto_cell.c
@@ -4,13 +4,13 @@
* Copyright (c) 2007-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/container/buffers.h"
-#include "or/proto_cell.h"
+#include "core/proto/proto_cell.h"
-#include "or/connection_or.h"
+#include "core/or/connection_or.h"
-#include "or/var_cell_st.h"
+#include "core/or/var_cell_st.h"
/** True iff the cell command <b>command</b> is one that implies a
* variable-length cell in Tor link protocol <b>linkproto</b>. */
diff --git a/src/core/proto/proto_control0.c b/src/core/proto/proto_control0.c
index 34e7ddb8d9..d26c69753a 100644
--- a/src/core/proto/proto_control0.c
+++ b/src/core/proto/proto_control0.c
@@ -4,9 +4,9 @@
* Copyright (c) 2007-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/container/buffers.h"
-#include "or/proto_control0.h"
+#include "core/proto/proto_control0.h"
/** Return 1 iff buf looks more like it has an (obsolete) v0 controller
* command on it than any valid v1 controller command. */
diff --git a/src/core/proto/proto_ext_or.c b/src/core/proto/proto_ext_or.c
index f30d876231..04bec4e6b9 100644
--- a/src/core/proto/proto_ext_or.c
+++ b/src/core/proto/proto_ext_or.c
@@ -4,10 +4,10 @@
* Copyright (c) 2007-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/container/buffers.h"
-#include "or/ext_orport.h"
-#include "or/proto_ext_or.h"
+#include "feature/relay/ext_orport.h"
+#include "core/proto/proto_ext_or.h"
/** The size of the header of an Extended ORPort message: 2 bytes for
* COMMAND, 2 bytes for BODYLEN */
diff --git a/src/core/proto/proto_http.c b/src/core/proto/proto_http.c
index ecc669e3a4..37298d1284 100644
--- a/src/core/proto/proto_http.c
+++ b/src/core/proto/proto_http.c
@@ -5,9 +5,9 @@
/* See LICENSE for licensing information */
#define PROTO_HTTP_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/container/buffers.h"
-#include "or/proto_http.h"
+#include "core/proto/proto_http.h"
/** Return true if <b>cmd</b> looks like a HTTP (proxy) request. */
int
diff --git a/src/core/proto/proto_socks.c b/src/core/proto/proto_socks.c
index f5e6ce581b..6912441472 100644
--- a/src/core/proto/proto_socks.c
+++ b/src/core/proto/proto_socks.c
@@ -4,18 +4,18 @@
* Copyright (c) 2007-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
-#include "or/addressmap.h"
+#include "core/or/or.h"
+#include "feature/client/addressmap.h"
#include "lib/container/buffers.h"
-#include "or/connection.h"
-#include "or/control.h"
-#include "or/config.h"
+#include "core/mainloop/connection.h"
+#include "feature/control/control.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/ext_orport.h"
-#include "or/proto_socks.h"
-#include "or/reasons.h"
+#include "feature/relay/ext_orport.h"
+#include "core/proto/proto_socks.h"
+#include "core/or/reasons.h"
-#include "or/socks_request_st.h"
+#include "core/or/socks_request_st.h"
static void socks_request_set_socks5_error(socks_request_t *req,
socks5_reply_status_t reason);
diff --git a/src/core/proto/protover.c b/src/core/proto/protover.c
index f63c134565..3ae91688d6 100644
--- a/src/core/proto/protover.c
+++ b/src/core/proto/protover.c
@@ -23,9 +23,9 @@
#define PROTOVER_PRIVATE
-#include "or/or.h"
-#include "or/protover.h"
-#include "or/routerparse.h"
+#include "core/or/or.h"
+#include "core/proto/protover.h"
+#include "feature/nodelist/routerparse.h"
#ifndef HAVE_RUST
diff --git a/src/core/proto/protover_rust.c b/src/core/proto/protover_rust.c
index bd2f88b98e..55b0ebedf9 100644
--- a/src/core/proto/protover_rust.c
+++ b/src/core/proto/protover_rust.c
@@ -7,8 +7,8 @@
* and safe translation/handling between the Rust/C boundary.
*/
-#include "or/or.h"
-#include "or/protover.h"
+#include "core/or/or.h"
+#include "core/proto/protover.h"
#ifdef HAVE_RUST
diff --git a/src/feature/api/tor_api.c b/src/feature/api/tor_api.c
index efedf2dc78..2a4458bf69 100644
--- a/src/feature/api/tor_api.c
+++ b/src/feature/api/tor_api.c
@@ -8,8 +8,8 @@
* \file tor_api.c
**/
-#include "or/tor_api.h"
-#include "or/tor_api_internal.h"
+#include "feature/api/tor_api.h"
+#include "feature/api/tor_api_internal.h"
// Include this after the above headers, to insure that they don't
// depend on anything else.
diff --git a/src/feature/client/addressmap.c b/src/feature/client/addressmap.c
index ba78a5f908..e62d82b7f3 100644
--- a/src/feature/client/addressmap.c
+++ b/src/feature/client/addressmap.c
@@ -17,17 +17,17 @@
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/or.h"
-#include "or/addressmap.h"
-#include "or/circuituse.h"
-#include "or/config.h"
-#include "or/connection_edge.h"
-#include "or/control.h"
-#include "or/dns.h"
-#include "or/nodelist.h"
-#include "or/routerset.h"
-
-#include "or/entry_connection_st.h"
+#include "core/or/or.h"
+#include "feature/client/addressmap.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
+#include "core/or/connection_edge.h"
+#include "feature/control/control.h"
+#include "feature/relay/dns.h"
+#include "feature/nodelist/nodelist.h"
+#include "feature/nodelist/routerset.h"
+
+#include "core/or/entry_connection_st.h"
/** A client-side struct to remember requests to rewrite addresses
* to new addresses. These structs are stored in the hash table
diff --git a/src/feature/client/bridges.c b/src/feature/client/bridges.c
index ca0a13f2a0..4bffe16036 100644
--- a/src/feature/client/bridges.c
+++ b/src/feature/client/bridges.c
@@ -13,24 +13,24 @@
#define TOR_BRIDGES_PRIVATE
-#include "or/or.h"
-#include "or/bridges.h"
-#include "or/circuitbuild.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/directory.h"
-#include "or/entrynodes.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerset.h"
-#include "or/transports.h"
-
-#include "or/extend_info_st.h"
-#include "or/node_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerstatus_st.h"
+#include "core/or/or.h"
+#include "feature/client/bridges.h"
+#include "core/or/circuitbuild.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "feature/dircache/directory.h"
+#include "feature/client/entrynodes.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerset.h"
+#include "feature/client/transports.h"
+
+#include "core/or/extend_info_st.h"
+#include "feature/nodelist/node_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerstatus_st.h"
/** Information about a configured bridge. Currently this just matches the
* ones in the torrc file, but one day we may be able to learn about new
diff --git a/src/feature/client/circpathbias.c b/src/feature/client/circpathbias.c
index 32b3212d3f..1ee29c639d 100644
--- a/src/feature/client/circpathbias.c
+++ b/src/feature/client/circpathbias.c
@@ -21,27 +21,27 @@
* each guard, and stored persistently in the state file.
*/
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/circpathbias.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/circuitstats.h"
-#include "or/connection_edge.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "feature/client/circpathbias.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "core/or/circuitstats.h"
+#include "core/or/connection_edge.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/entrynodes.h"
-#include "or/networkstatus.h"
-#include "or/relay.h"
+#include "feature/client/entrynodes.h"
+#include "feature/nodelist/networkstatus.h"
+#include "core/or/relay.h"
#include "lib/math/fp.h"
#include "lib/math/laplace.h"
-#include "or/cell_st.h"
-#include "or/cpath_build_state_st.h"
-#include "or/crypt_path_st.h"
-#include "or/extend_info_st.h"
-#include "or/origin_circuit_st.h"
+#include "core/or/cell_st.h"
+#include "core/or/cpath_build_state_st.h"
+#include "core/or/crypt_path_st.h"
+#include "core/or/extend_info_st.h"
+#include "core/or/origin_circuit_st.h"
static void pathbias_count_successful_close(origin_circuit_t *circ);
static void pathbias_count_collapse(origin_circuit_t *circ);
diff --git a/src/feature/client/dnsserv.c b/src/feature/client/dnsserv.c
index 6e75254239..31cc3eff79 100644
--- a/src/feature/client/dnsserv.c
+++ b/src/feature/client/dnsserv.c
@@ -21,19 +21,19 @@
* DNS client.
**/
-#include "or/or.h"
-#include "or/dnsserv.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/control.h"
-#include "or/main.h"
-#include "or/policies.h"
-
-#include "or/control_connection_st.h"
-#include "or/entry_connection_st.h"
-#include "or/listener_connection_st.h"
-#include "or/socks_request_st.h"
+#include "core/or/or.h"
+#include "feature/client/dnsserv.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "feature/control/control.h"
+#include "core/mainloop/main.h"
+#include "core/or/policies.h"
+
+#include "feature/control/control_connection_st.h"
+#include "core/or/entry_connection_st.h"
+#include "core/or/listener_connection_st.h"
+#include "core/or/socks_request_st.h"
#include "lib/evloop/compat_libevent.h"
#include <event2/dns.h>
diff --git a/src/feature/client/entrynodes.c b/src/feature/client/entrynodes.c
index ba9c30f8b3..664be8ce11 100644
--- a/src/feature/client/entrynodes.c
+++ b/src/feature/client/entrynodes.c
@@ -112,38 +112,38 @@
#define ENTRYNODES_PRIVATE
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/bridges.h"
-#include "or/circpathbias.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/circuitstats.h"
-#include "or/config.h"
-#include "or/confparse.h"
-#include "or/connection.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "feature/client/bridges.h"
+#include "feature/client/circpathbias.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "core/or/circuitstats.h"
+#include "app/config/config.h"
+#include "app/config/confparse.h"
+#include "core/mainloop/connection.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/directory.h"
-#include "or/entrynodes.h"
-#include "or/main.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/routerset.h"
-#include "or/transports.h"
-#include "or/statefile.h"
+#include "feature/dircache/directory.h"
+#include "feature/client/entrynodes.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/routerset.h"
+#include "feature/client/transports.h"
+#include "app/config/statefile.h"
#include "lib/math/fp.h"
#include "lib/encoding/confline.h"
-#include "or/node_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/or_state_st.h"
+#include "feature/nodelist/node_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "app/config/or_state_st.h"
#include "lib/crypt_ops/digestset.h"
diff --git a/src/feature/client/transports.c b/src/feature/client/transports.c
index 1d3cb7b951..85d4d2e080 100644
--- a/src/feature/client/transports.c
+++ b/src/feature/client/transports.c
@@ -90,17 +90,17 @@
**/
#define PT_PRIVATE
-#include "or/or.h"
-#include "or/bridges.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/circuitbuild.h"
-#include "or/transports.h"
-#include "or/router.h"
-#include "or/statefile.h"
-#include "or/connection_or.h"
-#include "or/ext_orport.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "feature/client/bridges.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/circuitbuild.h"
+#include "feature/client/transports.h"
+#include "feature/relay/router.h"
+#include "app/config/statefile.h"
+#include "core/or/connection_or.h"
+#include "feature/relay/ext_orport.h"
+#include "feature/control/control.h"
#include "lib/process/env.h"
#include "lib/process/subprocess.h"
diff --git a/src/feature/control/control.c b/src/feature/control/control.c
index aa43fccff0..12f10926b7 100644
--- a/src/feature/control/control.c
+++ b/src/feature/control/control.c
@@ -35,70 +35,70 @@
#define CONTROL_PRIVATE
-#include "or/or.h"
-#include "or/addressmap.h"
-#include "or/bridges.h"
+#include "core/or/or.h"
+#include "feature/client/addressmap.h"
+#include "feature/client/bridges.h"
#include "lib/container/buffers.h"
-#include "or/channel.h"
-#include "or/channeltls.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuitstats.h"
-#include "or/circuituse.h"
-#include "or/command.h"
+#include "core/or/channel.h"
+#include "core/or/channeltls.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuitstats.h"
+#include "core/or/circuituse.h"
+#include "core/or/command.h"
#include "lib/evloop/compat_libevent.h"
-#include "or/config.h"
-#include "or/confparse.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/connection_or.h"
-#include "or/control.h"
+#include "app/config/config.h"
+#include "app/config/confparse.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "core/or/connection_or.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/directory.h"
-#include "or/dirserv.h"
-#include "or/dnsserv.h"
-#include "or/entrynodes.h"
-#include "or/geoip.h"
-#include "or/hibernate.h"
-#include "or/hs_cache.h"
-#include "or/hs_common.h"
-#include "or/hs_control.h"
-#include "or/main.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/proto_control0.h"
-#include "or/proto_http.h"
-#include "or/reasons.h"
-#include "or/rendclient.h"
-#include "or/rendcommon.h"
-#include "or/rendservice.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/shared_random_client.h"
+#include "feature/dircache/directory.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/client/dnsserv.h"
+#include "feature/client/entrynodes.h"
+#include "feature/stats/geoip.h"
+#include "feature/hibernate/hibernate.h"
+#include "feature/hs/hs_cache.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_control.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "core/proto/proto_control0.h"
+#include "core/proto/proto_http.h"
+#include "core/or/reasons.h"
+#include "feature/rend/rendclient.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/rend/rendservice.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/hs_common/shared_random_client.h"
#include "lib/encoding/confline.h"
-#include "or/cached_dir_st.h"
-#include "or/control_connection_st.h"
-#include "or/cpath_build_state_st.h"
-#include "or/entry_connection_st.h"
-#include "or/extrainfo_st.h"
-#include "or/networkstatus_st.h"
-#include "or/node_st.h"
-#include "or/or_connection_st.h"
-#include "or/or_circuit_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/microdesc_st.h"
-#include "or/rend_authorized_client_st.h"
-#include "or/rend_encoded_v2_service_descriptor_st.h"
-#include "or/rend_service_descriptor_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerlist_st.h"
-#include "or/socks_request_st.h"
+#include "feature/dircache/cached_dir_st.h"
+#include "feature/control/control_connection_st.h"
+#include "core/or/cpath_build_state_st.h"
+#include "core/or/entry_connection_st.h"
+#include "feature/nodelist/extrainfo_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/node_st.h"
+#include "core/or/or_connection_st.h"
+#include "core/or/or_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "feature/nodelist/microdesc_st.h"
+#include "feature/rend/rend_authorized_client_st.h"
+#include "feature/rend/rend_encoded_v2_service_descriptor_st.h"
+#include "feature/rend/rend_service_descriptor_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerlist_st.h"
+#include "core/or/socks_request_st.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h>
diff --git a/src/feature/control/control_connection_st.h b/src/feature/control/control_connection_st.h
index 4f8ab25d99..ff6264a9a5 100644
--- a/src/feature/control/control_connection_st.h
+++ b/src/feature/control/control_connection_st.h
@@ -7,8 +7,8 @@
#ifndef CONTROL_CONNECTION_ST_H
#define CONTROL_CONNECTION_ST_H
-#include "or/or.h"
-#include "or/connection_st.h"
+#include "core/or/or.h"
+#include "core/or/connection_st.h"
/** Subtype of connection_t for an connection to a controller. */
struct control_connection_t {
diff --git a/src/feature/dirauth/dircollate.c b/src/feature/dirauth/dircollate.c
index 246977dcc8..ca8e5b7873 100644
--- a/src/feature/dirauth/dircollate.c
+++ b/src/feature/dirauth/dircollate.c
@@ -22,11 +22,11 @@
*/
#define DIRCOLLATE_PRIVATE
-#include "or/dirauth/dircollate.h"
-#include "or/dirauth/dirvote.h"
+#include "feature/dirauth/dircollate.h"
+#include "feature/dirauth/dirvote.h"
-#include "or/networkstatus_st.h"
-#include "or/vote_routerstatus_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/vote_routerstatus_st.h"
static void dircollator_collate_by_ed25519(dircollator_t *dc);
diff --git a/src/feature/dirauth/dircollate.h b/src/feature/dirauth/dircollate.h
index aae7829786..0e84c66e6f 100644
--- a/src/feature/dirauth/dircollate.h
+++ b/src/feature/dirauth/dircollate.h
@@ -13,7 +13,7 @@
#define TOR_DIRCOLLATE_H
#include "lib/testsupport/testsupport.h"
-#include "or/or.h"
+#include "core/or/or.h"
typedef struct dircollator_s dircollator_t;
diff --git a/src/feature/dirauth/dirvote.c b/src/feature/dirauth/dirvote.c
index 15f8378744..2825465677 100644
--- a/src/feature/dirauth/dirvote.c
+++ b/src/feature/dirauth/dirvote.c
@@ -4,44 +4,44 @@
/* See LICENSE for licensing information */
#define DIRVOTE_PRIVATE
-#include "or/or.h"
-#include "or/config.h"
-#include "or/dirauth/dircollate.h"
-#include "or/directory.h"
-#include "or/dirserv.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/parsecommon.h"
-#include "or/policies.h"
-#include "or/protover.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerkeys.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/entrynodes.h" /* needed for guardfraction methods */
-#include "or/torcert.h"
-#include "or/voting_schedule.h"
-
-#include "or/dirauth/dirvote.h"
-#include "or/dirauth/mode.h"
-#include "or/dirauth/shared_random_state.h"
-
-#include "or/authority_cert_st.h"
-#include "or/cached_dir_st.h"
-#include "or/dir_server_st.h"
-#include "or/document_signature_st.h"
-#include "or/microdesc_st.h"
-#include "or/networkstatus_st.h"
-#include "or/networkstatus_voter_info_st.h"
-#include "or/node_st.h"
-#include "or/ns_detached_signatures_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerlist_st.h"
-#include "or/vote_microdesc_hash_st.h"
-#include "or/vote_routerstatus_st.h"
-#include "or/vote_timing_st.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "feature/dirauth/dircollate.h"
+#include "feature/dircache/directory.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "feature/nodelist/parsecommon.h"
+#include "core/or/policies.h"
+#include "core/proto/protover.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/relay/routerkeys.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/client/entrynodes.h" /* needed for guardfraction methods */
+#include "feature/nodelist/torcert.h"
+#include "feature/dircommon/voting_schedule.h"
+
+#include "feature/dirauth/dirvote.h"
+#include "feature/dirauth/mode.h"
+#include "feature/dirauth/shared_random_state.h"
+
+#include "feature/nodelist/authority_cert_st.h"
+#include "feature/dircache/cached_dir_st.h"
+#include "feature/dirclient/dir_server_st.h"
+#include "feature/nodelist/document_signature_st.h"
+#include "feature/nodelist/microdesc_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/networkstatus_voter_info_st.h"
+#include "feature/nodelist/node_st.h"
+#include "feature/dirauth/ns_detached_signatures_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerlist_st.h"
+#include "feature/dirauth/vote_microdesc_hash_st.h"
+#include "feature/nodelist/vote_routerstatus_st.h"
+#include "feature/dircommon/vote_timing_st.h"
#include "lib/container/order.h"
#include "lib/encoding/confline.h"
diff --git a/src/feature/dirauth/keypin.c b/src/feature/dirauth/keypin.c
index a2f3654b82..44e19985fa 100644
--- a/src/feature/dirauth/keypin.c
+++ b/src/feature/dirauth/keypin.c
@@ -30,7 +30,7 @@
#include "lib/wallclock/approx_time.h"
#include "ht.h"
-#include "or/keypin.h"
+#include "feature/dirauth/keypin.h"
#include "siphash.h"
diff --git a/src/feature/dirauth/mode.h b/src/feature/dirauth/mode.h
index 17c35aff64..8bb961dffb 100644
--- a/src/feature/dirauth/mode.h
+++ b/src/feature/dirauth/mode.h
@@ -11,7 +11,7 @@
#ifdef HAVE_MODULE_DIRAUTH
-#include "or/router.h"
+#include "feature/relay/router.h"
/* Return true iff we believe ourselves to be a v3 authoritative directory
* server. */
diff --git a/src/feature/dirauth/shared_random.c b/src/feature/dirauth/shared_random.c
index d122690129..8ae2679779 100644
--- a/src/feature/dirauth/shared_random.c
+++ b/src/feature/dirauth/shared_random.c
@@ -87,25 +87,25 @@
#define SHARED_RANDOM_PRIVATE
-#include "or/or.h"
-#include "or/dirauth/shared_random.h"
-#include "or/config.h"
-#include "or/confparse.h"
+#include "core/or/or.h"
+#include "feature/dirauth/shared_random.h"
+#include "app/config/config.h"
+#include "app/config/confparse.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/networkstatus.h"
-#include "or/router.h"
-#include "or/routerkeys.h"
-#include "or/routerlist.h"
-#include "or/shared_random_client.h"
-#include "or/dirauth/shared_random_state.h"
-#include "or/voting_schedule.h"
-
-#include "or/dirauth/dirvote.h"
-#include "or/dirauth/mode.h"
-
-#include "or/authority_cert_st.h"
-#include "or/networkstatus_st.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/relay/router.h"
+#include "feature/relay/routerkeys.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/hs_common/shared_random_client.h"
+#include "feature/dirauth/shared_random_state.h"
+#include "feature/dircommon/voting_schedule.h"
+
+#include "feature/dirauth/dirvote.h"
+#include "feature/dirauth/mode.h"
+
+#include "feature/nodelist/authority_cert_st.h"
+#include "feature/nodelist/networkstatus_st.h"
/* String prefix of shared random values in votes/consensuses. */
static const char previous_srv_str[] = "shared-rand-previous-value";
diff --git a/src/feature/dirauth/shared_random.h b/src/feature/dirauth/shared_random.h
index 93bab99f71..68ece9aec0 100644
--- a/src/feature/dirauth/shared_random.h
+++ b/src/feature/dirauth/shared_random.h
@@ -10,7 +10,7 @@
* with "sr_" which stands for shared random.
*/
-#include "or/or.h"
+#include "core/or/or.h"
/* Protocol version */
#define SR_PROTO_VERSION 1
diff --git a/src/feature/dirauth/shared_random_state.c b/src/feature/dirauth/shared_random_state.c
index 87ddcc0736..55936a7367 100644
--- a/src/feature/dirauth/shared_random_state.c
+++ b/src/feature/dirauth/shared_random_state.c
@@ -10,20 +10,20 @@
#define SHARED_RANDOM_STATE_PRIVATE
-#include "or/or.h"
-#include "or/config.h"
-#include "or/confparse.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "app/config/confparse.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/dirauth/dirvote.h"
-#include "or/networkstatus.h"
-#include "or/router.h"
-#include "or/dirauth/shared_random.h"
-#include "or/shared_random_client.h"
-#include "or/dirauth/shared_random_state.h"
-#include "or/voting_schedule.h"
+#include "feature/dirauth/dirvote.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/relay/router.h"
+#include "feature/dirauth/shared_random.h"
+#include "feature/hs_common/shared_random_client.h"
+#include "feature/dirauth/shared_random_state.h"
+#include "feature/dircommon/voting_schedule.h"
#include "lib/encoding/confline.h"
-#include "or/or_state_st.h"
+#include "app/config/or_state_st.h"
/* Default filename of the shared random state on disk. */
static const char default_fname[] = "sr-state";
diff --git a/src/feature/dirauth/shared_random_state.h b/src/feature/dirauth/shared_random_state.h
index f99874872b..83edfaf103 100644
--- a/src/feature/dirauth/shared_random_state.h
+++ b/src/feature/dirauth/shared_random_state.h
@@ -4,7 +4,7 @@
#ifndef TOR_SHARED_RANDOM_STATE_H
#define TOR_SHARED_RANDOM_STATE_H
-#include "or/dirauth/shared_random.h"
+#include "feature/dirauth/shared_random.h"
/* Action that can be performed on the state for any objects. */
typedef enum {
diff --git a/src/feature/dircache/conscache.c b/src/feature/dircache/conscache.c
index bc5928ff23..e9bf58a180 100644
--- a/src/feature/dircache/conscache.c
+++ b/src/feature/dircache/conscache.c
@@ -1,10 +1,10 @@
/* Copyright (c) 2017-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
-#include "or/config.h"
-#include "or/conscache.h"
+#include "app/config/config.h"
+#include "feature/dircache/conscache.h"
#include "lib/crypt_ops/crypto_util.h"
#include "lib/fs/storagedir.h"
#include "lib/encoding/confline.h"
diff --git a/src/feature/dircache/consdiffmgr.c b/src/feature/dircache/consdiffmgr.c
index 6d5183f934..304b64f3b6 100644
--- a/src/feature/dircache/consdiffmgr.c
+++ b/src/feature/dircache/consdiffmgr.c
@@ -13,21 +13,21 @@
#define CONSDIFFMGR_PRIVATE
-#include "or/or.h"
-#include "or/config.h"
-#include "or/conscache.h"
-#include "or/consdiff.h"
-#include "or/consdiffmgr.h"
-#include "or/cpuworker.h"
-#include "or/networkstatus.h"
-#include "or/routerparse.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "feature/dircache/conscache.h"
+#include "feature/dircommon/consdiff.h"
+#include "feature/dircache/consdiffmgr.h"
+#include "core/mainloop/cpuworker.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/routerparse.h"
#include "lib/evloop/compat_libevent.h"
#include "lib/evloop/workqueue.h"
#include "lib/compress/compress.h"
#include "lib/encoding/confline.h"
-#include "or/networkstatus_st.h"
-#include "or/networkstatus_voter_info_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/networkstatus_voter_info_st.h"
/**
* Labels to apply to items in the conscache object.
diff --git a/src/feature/dircache/directory.c b/src/feature/dircache/directory.c
index 8f2bd8d3a7..a723176185 100644
--- a/src/feature/dircache/directory.c
+++ b/src/feature/dircache/directory.c
@@ -5,44 +5,44 @@
#define DIRECTORY_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/err/backtrace.h"
-#include "or/bridges.h"
+#include "feature/client/bridges.h"
#include "lib/container/buffers.h"
-#include "or/circuitbuild.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/conscache.h"
-#include "or/consdiff.h"
-#include "or/consdiffmgr.h"
-#include "or/control.h"
+#include "core/or/circuitbuild.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "feature/dircache/conscache.h"
+#include "feature/dircommon/consdiff.h"
+#include "feature/dircache/consdiffmgr.h"
+#include "feature/control/control.h"
#include "lib/compress/compress.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/directory.h"
-#include "or/dirserv.h"
-#include "or/entrynodes.h"
-#include "or/fp_pair.h"
-#include "or/geoip.h"
-#include "or/hs_cache.h"
-#include "or/hs_common.h"
-#include "or/hs_control.h"
-#include "or/hs_client.h"
-#include "or/main.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/relay.h"
-#include "or/rendclient.h"
-#include "or/rendcommon.h"
-#include "or/rendservice.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/routerset.h"
+#include "feature/dircache/directory.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/client/entrynodes.h"
+#include "feature/dircommon/fp_pair.h"
+#include "feature/stats/geoip.h"
+#include "feature/hs/hs_cache.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_control.h"
+#include "feature/hs/hs_client.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "core/or/relay.h"
+#include "feature/rend/rendclient.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/rend/rendservice.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/routerset.h"
#include "lib/encoding/confline.h"
#include "lib/crypt_ops/crypto_format.h"
@@ -52,19 +52,19 @@
#endif
#endif
-#include "or/dirauth/dirvote.h"
-#include "or/dirauth/mode.h"
-#include "or/dirauth/shared_random.h"
-
-#include "or/authority_cert_st.h"
-#include "or/cached_dir_st.h"
-#include "or/dir_connection_st.h"
-#include "or/dir_server_st.h"
-#include "or/entry_connection_st.h"
-#include "or/networkstatus_st.h"
-#include "or/node_st.h"
-#include "or/rend_service_descriptor_st.h"
-#include "or/routerinfo_st.h"
+#include "feature/dirauth/dirvote.h"
+#include "feature/dirauth/mode.h"
+#include "feature/dirauth/shared_random.h"
+
+#include "feature/nodelist/authority_cert_st.h"
+#include "feature/dircache/cached_dir_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "feature/dirclient/dir_server_st.h"
+#include "core/or/entry_connection_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/node_st.h"
+#include "feature/rend/rend_service_descriptor_st.h"
+#include "feature/nodelist/routerinfo_st.h"
/**
* \file directory.c
diff --git a/src/feature/dircache/directory.h b/src/feature/dircache/directory.h
index 992ff618fb..54ea0c584d 100644
--- a/src/feature/dircache/directory.h
+++ b/src/feature/dircache/directory.h
@@ -12,7 +12,7 @@
#ifndef TOR_DIRECTORY_H
#define TOR_DIRECTORY_H
-#include "or/hs_ident.h"
+#include "feature/hs/hs_ident.h"
enum compress_method_t;
dir_connection_t *TO_DIR_CONN(connection_t *c);
diff --git a/src/feature/dircache/dirserv.c b/src/feature/dircache/dirserv.c
index 2980d63f0a..0e1d0645e3 100644
--- a/src/feature/dircache/dirserv.c
+++ b/src/feature/dircache/dirserv.c
@@ -4,47 +4,47 @@
/* See LICENSE for licensing information */
#define DIRSERV_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/container/buffers.h"
-#include "or/config.h"
-#include "or/confparse.h"
-#include "or/channel.h"
-#include "or/channeltls.h"
-#include "or/command.h"
-#include "or/connection.h"
-#include "or/connection_or.h"
-#include "or/conscache.h"
-#include "or/consdiffmgr.h"
-#include "or/control.h"
-#include "or/directory.h"
-#include "or/dirserv.h"
-#include "or/hibernate.h"
-#include "or/keypin.h"
-#include "or/main.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/protover.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/routerset.h"
-#include "or/torcert.h"
-#include "or/voting_schedule.h"
-
-#include "or/dirauth/dirvote.h"
-
-#include "or/cached_dir_st.h"
-#include "or/dir_connection_st.h"
-#include "or/extrainfo_st.h"
-#include "or/microdesc_st.h"
-#include "or/node_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerlist_st.h"
-#include "or/tor_version_st.h"
-#include "or/vote_routerstatus_st.h"
+#include "app/config/config.h"
+#include "app/config/confparse.h"
+#include "core/or/channel.h"
+#include "core/or/channeltls.h"
+#include "core/or/command.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_or.h"
+#include "feature/dircache/conscache.h"
+#include "feature/dircache/consdiffmgr.h"
+#include "feature/control/control.h"
+#include "feature/dircache/directory.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/hibernate/hibernate.h"
+#include "feature/dirauth/keypin.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "core/proto/protover.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/routerset.h"
+#include "feature/nodelist/torcert.h"
+#include "feature/dircommon/voting_schedule.h"
+
+#include "feature/dirauth/dirvote.h"
+
+#include "feature/dircache/cached_dir_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "feature/nodelist/extrainfo_st.h"
+#include "feature/nodelist/microdesc_st.h"
+#include "feature/nodelist/node_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerlist_st.h"
+#include "core/or/tor_version_st.h"
+#include "feature/nodelist/vote_routerstatus_st.h"
#include "lib/compress/compress.h"
#include "lib/container/order.h"
diff --git a/src/feature/dirclient/dir_server_st.h b/src/feature/dirclient/dir_server_st.h
index fe1f5c3d5f..0a6d8155ae 100644
--- a/src/feature/dirclient/dir_server_st.h
+++ b/src/feature/dirclient/dir_server_st.h
@@ -8,8 +8,8 @@
#define DIR_SERVER_ST_H
#include "lib/cc/torint.h"
-#include "or/or.h"
-#include "or/routerstatus_st.h"
+#include "core/or/or.h"
+#include "feature/nodelist/routerstatus_st.h"
/** Represents information about a single trusted or fallback directory
* server. */
diff --git a/src/feature/dircommon/consdiff.c b/src/feature/dircommon/consdiff.c
index 88edda716e..1823dc07fb 100644
--- a/src/feature/dircommon/consdiff.c
+++ b/src/feature/dircommon/consdiff.c
@@ -38,10 +38,10 @@
#define CONSDIFF_PRIVATE
-#include "or/or.h"
-#include "or/consdiff.h"
+#include "core/or/or.h"
+#include "feature/dircommon/consdiff.h"
#include "lib/memarea/memarea.h"
-#include "or/routerparse.h"
+#include "feature/nodelist/routerparse.h"
static const char* ns_diff_version = "network-status-diff-version 1";
static const char* hash_token = "hash";
diff --git a/src/feature/dircommon/consdiff.h b/src/feature/dircommon/consdiff.h
index 1cae59a1a5..a5e4ba5cbf 100644
--- a/src/feature/dircommon/consdiff.h
+++ b/src/feature/dircommon/consdiff.h
@@ -5,7 +5,7 @@
#ifndef TOR_CONSDIFF_H
#define TOR_CONSDIFF_H
-#include "or/or.h"
+#include "core/or/or.h"
char *consensus_diff_generate(const char *cons1,
const char *cons2);
diff --git a/src/feature/dircommon/dir_connection_st.h b/src/feature/dircommon/dir_connection_st.h
index 1282f82d64..768f6ba81e 100644
--- a/src/feature/dircommon/dir_connection_st.h
+++ b/src/feature/dircommon/dir_connection_st.h
@@ -7,7 +7,7 @@
#ifndef DIR_CONNECTION_ST_H
#define DIR_CONNECTION_ST_H
-#include "or/connection_st.h"
+#include "core/or/connection_st.h"
struct tor_compress_state_t;
diff --git a/src/feature/dircommon/fp_pair.c b/src/feature/dircommon/fp_pair.c
index 1d7b751c23..0544145284 100644
--- a/src/feature/dircommon/fp_pair.c
+++ b/src/feature/dircommon/fp_pair.c
@@ -17,8 +17,8 @@
* certificate for any (ID key, signing key) pair.
**/
-#include "or/or.h"
-#include "or/fp_pair.h"
+#include "core/or/or.h"
+#include "feature/dircommon/fp_pair.h"
/* Define fp_pair_map_t structures */
diff --git a/src/feature/dircommon/voting_schedule.c b/src/feature/dircommon/voting_schedule.c
index 6edde3f229..84c016c2b9 100644
--- a/src/feature/dircommon/voting_schedule.c
+++ b/src/feature/dircommon/voting_schedule.c
@@ -9,13 +9,13 @@
**/
#define VOTING_SCHEDULE_PRIVATE
-#include "or/voting_schedule.h"
+#include "feature/dircommon/voting_schedule.h"
-#include "or/or.h"
-#include "or/config.h"
-#include "or/networkstatus.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "feature/nodelist/networkstatus.h"
-#include "or/networkstatus_st.h"
+#include "feature/nodelist/networkstatus_st.h"
/* =====
* Vote scheduling
diff --git a/src/feature/dircommon/voting_schedule.h b/src/feature/dircommon/voting_schedule.h
index 0f27d36d52..0e0b0cc988 100644
--- a/src/feature/dircommon/voting_schedule.h
+++ b/src/feature/dircommon/voting_schedule.h
@@ -9,7 +9,7 @@
#ifndef TOR_VOTING_SCHEDULE_H
#define TOR_VOTING_SCHEDULE_H
-#include "or/or.h"
+#include "core/or/or.h"
/** Scheduling information for a voting interval. */
typedef struct {
diff --git a/src/feature/hibernate/hibernate.c b/src/feature/hibernate/hibernate.c
index 55de64c13e..d37ba5b8b1 100644
--- a/src/feature/hibernate/hibernate.c
+++ b/src/feature/hibernate/hibernate.c
@@ -28,23 +28,23 @@ hibernating, phase 2:
*/
#define HIBERNATE_PRIVATE
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/channeltls.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/connection_or.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "core/or/channeltls.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "core/or/connection_or.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/hibernate.h"
-#include "or/main.h"
-#include "or/router.h"
-#include "or/statefile.h"
+#include "feature/hibernate/hibernate.h"
+#include "core/mainloop/main.h"
+#include "feature/relay/router.h"
+#include "app/config/statefile.h"
#include "lib/evloop/compat_libevent.h"
-#include "or/or_connection_st.h"
-#include "or/or_state_st.h"
+#include "core/or/or_connection_st.h"
+#include "app/config/or_state_st.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h>
diff --git a/src/feature/hs/hs_cache.c b/src/feature/hs/hs_cache.c
index 3772e0c0ed..58bb10b194 100644
--- a/src/feature/hs/hs_cache.c
+++ b/src/feature/hs/hs_cache.c
@@ -9,20 +9,20 @@
/* For unit tests.*/
#define HS_CACHE_PRIVATE
-#include "or/or.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_format.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/hs_ident.h"
-#include "or/hs_common.h"
-#include "or/hs_client.h"
-#include "or/hs_descriptor.h"
-#include "or/networkstatus.h"
-#include "or/rendcache.h"
+#include "feature/hs/hs_ident.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_client.h"
+#include "feature/hs/hs_descriptor.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/rend/rendcache.h"
-#include "or/hs_cache.h"
+#include "feature/hs/hs_cache.h"
-#include "or/networkstatus_st.h"
+#include "feature/nodelist/networkstatus_st.h"
static int cached_client_descriptor_has_expired(time_t now,
const hs_cache_client_descriptor_t *cached_desc);
diff --git a/src/feature/hs/hs_cache.h b/src/feature/hs/hs_cache.h
index 1e479700fa..7cd4995d2c 100644
--- a/src/feature/hs/hs_cache.h
+++ b/src/feature/hs/hs_cache.h
@@ -11,10 +11,10 @@
#include <stdint.h>
-#include "or/hs_common.h"
-#include "or/hs_descriptor.h"
-#include "or/rendcommon.h"
-#include "or/torcert.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_descriptor.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/nodelist/torcert.h"
struct ed25519_public_key_t;
diff --git a/src/feature/hs/hs_cell.c b/src/feature/hs/hs_cell.c
index f8b76c5133..c6ca6746bc 100644
--- a/src/feature/hs/hs_cell.c
+++ b/src/feature/hs/hs_cell.c
@@ -6,16 +6,16 @@
* \brief Hidden service API for cell creation and handling.
**/
-#include "or/or.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/rendservice.h"
-#include "or/replaycache.h"
+#include "feature/rend/rendservice.h"
+#include "feature/hs_common/replaycache.h"
-#include "or/hs_cell.h"
-#include "or/hs_ntor.h"
+#include "feature/hs/hs_cell.h"
+#include "core/crypto/hs_ntor.h"
-#include "or/origin_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
/* Trunnel. */
#include "trunnel/ed25519_cert.h"
diff --git a/src/feature/hs/hs_cell.h b/src/feature/hs/hs_cell.h
index 4a522810c6..7b9d7e5792 100644
--- a/src/feature/hs/hs_cell.h
+++ b/src/feature/hs/hs_cell.h
@@ -9,8 +9,8 @@
#ifndef TOR_HS_CELL_H
#define TOR_HS_CELL_H
-#include "or/or.h"
-#include "or/hs_service.h"
+#include "core/or/or.h"
+#include "feature/hs/hs_service.h"
/* An INTRODUCE1 cell requires at least this amount of bytes (see section
* 3.2.2 of the specification). Below this value, the cell must be padded. */
diff --git a/src/feature/hs/hs_circuit.c b/src/feature/hs/hs_circuit.c
index 5a2c7e4e42..cd312e98be 100644
--- a/src/feature/hs/hs_circuit.c
+++ b/src/feature/hs/hs_circuit.c
@@ -7,38 +7,38 @@
#define HS_CIRCUIT_PRIVATE
-#include "or/or.h"
-#include "or/circpathbias.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "feature/client/circpathbias.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_dh.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/relay.h"
-#include "or/rendservice.h"
-#include "or/rephist.h"
-#include "or/router.h"
-
-#include "or/hs_cell.h"
-#include "or/hs_circuitmap.h"
-#include "or/hs_ident.h"
-#include "or/hs_ntor.h"
-#include "or/hs_service.h"
-#include "or/hs_circuit.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "core/or/relay.h"
+#include "feature/rend/rendservice.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+
+#include "feature/hs/hs_cell.h"
+#include "feature/hs/hs_circuitmap.h"
+#include "feature/hs/hs_ident.h"
+#include "core/crypto/hs_ntor.h"
+#include "feature/hs/hs_service.h"
+#include "feature/hs/hs_circuit.h"
/* Trunnel. */
#include "trunnel/ed25519_cert.h"
#include "trunnel/hs/cell_common.h"
#include "trunnel/hs/cell_establish_intro.h"
-#include "or/cpath_build_state_st.h"
-#include "or/crypt_path_st.h"
-#include "or/node_st.h"
-#include "or/origin_circuit_st.h"
+#include "core/or/cpath_build_state_st.h"
+#include "core/or/crypt_path_st.h"
+#include "feature/nodelist/node_st.h"
+#include "core/or/origin_circuit_st.h"
/* A circuit is about to become an e2e rendezvous circuit. Check
* <b>circ_purpose</b> and ensure that it's properly set. Return true iff
diff --git a/src/feature/hs/hs_circuit.h b/src/feature/hs/hs_circuit.h
index 425070f4ca..54f28a39ab 100644
--- a/src/feature/hs/hs_circuit.h
+++ b/src/feature/hs/hs_circuit.h
@@ -9,10 +9,10 @@
#ifndef TOR_HS_CIRCUIT_H
#define TOR_HS_CIRCUIT_H
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/crypt_ops/crypto_ed25519.h"
-#include "or/hs_service.h"
+#include "feature/hs/hs_service.h"
/* Cleanup function when the circuit is closed or/and freed. */
void hs_circ_cleanup(circuit_t *circ);
diff --git a/src/feature/hs/hs_circuitmap.c b/src/feature/hs/hs_circuitmap.c
index c4bf9fab43..962a421a00 100644
--- a/src/feature/hs/hs_circuitmap.c
+++ b/src/feature/hs/hs_circuitmap.c
@@ -13,13 +13,13 @@
#define HS_CIRCUITMAP_PRIVATE
-#include "or/or.h"
-#include "or/config.h"
-#include "or/circuitlist.h"
-#include "or/hs_circuitmap.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "core/or/circuitlist.h"
+#include "feature/hs/hs_circuitmap.h"
-#include "or/or_circuit_st.h"
-#include "or/origin_circuit_st.h"
+#include "core/or/or_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
/************************** HS circuitmap code *******************************/
diff --git a/src/feature/hs/hs_client.c b/src/feature/hs/hs_client.c
index cc461e368d..1f9218e15a 100644
--- a/src/feature/hs/hs_client.c
+++ b/src/feature/hs/hs_client.c
@@ -8,39 +8,39 @@
#define HS_CLIENT_PRIVATE
-#include "or/or.h"
-#include "or/circpathbias.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
+#include "core/or/or.h"
+#include "feature/client/circpathbias.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
#include "lib/crypt_ops/crypto_format.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/directory.h"
-#include "or/hs_cache.h"
-#include "or/hs_cell.h"
-#include "or/hs_circuit.h"
-#include "or/hs_circuitmap.h"
-#include "or/hs_client.h"
-#include "or/hs_control.h"
-#include "or/hs_descriptor.h"
-#include "or/hs_ident.h"
-#include "or/hs_ntor.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/reasons.h"
-#include "or/rendclient.h"
-#include "or/router.h"
-#include "or/routerset.h"
-
-#include "or/cpath_build_state_st.h"
-#include "or/dir_connection_st.h"
-#include "or/entry_connection_st.h"
-#include "or/extend_info_st.h"
-#include "or/origin_circuit_st.h"
+#include "feature/dircache/directory.h"
+#include "feature/hs/hs_cache.h"
+#include "feature/hs/hs_cell.h"
+#include "feature/hs/hs_circuit.h"
+#include "feature/hs/hs_circuitmap.h"
+#include "feature/hs/hs_client.h"
+#include "feature/hs/hs_control.h"
+#include "feature/hs/hs_descriptor.h"
+#include "feature/hs/hs_ident.h"
+#include "core/crypto/hs_ntor.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/reasons.h"
+#include "feature/rend/rendclient.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerset.h"
+
+#include "core/or/cpath_build_state_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "core/or/entry_connection_st.h"
+#include "core/or/extend_info_st.h"
+#include "core/or/origin_circuit_st.h"
/* Return a human-readable string for the client fetch status code. */
static const char *
diff --git a/src/feature/hs/hs_client.h b/src/feature/hs/hs_client.h
index 8083910747..6ee9f40c00 100644
--- a/src/feature/hs/hs_client.h
+++ b/src/feature/hs/hs_client.h
@@ -10,8 +10,8 @@
#define TOR_HS_CLIENT_H
#include "lib/crypt_ops/crypto_ed25519.h"
-#include "or/hs_descriptor.h"
-#include "or/hs_ident.h"
+#include "feature/hs/hs_descriptor.h"
+#include "feature/hs/hs_ident.h"
/* Status code of a descriptor fetch request. */
typedef enum {
diff --git a/src/feature/hs/hs_common.c b/src/feature/hs/hs_common.c
index d91f45a639..723cfa6ea8 100644
--- a/src/feature/hs/hs_common.c
+++ b/src/feature/hs/hs_common.c
@@ -11,33 +11,33 @@
#define HS_COMMON_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
-#include "or/config.h"
-#include "or/circuitbuild.h"
+#include "app/config/config.h"
+#include "core/or/circuitbuild.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/hs_cache.h"
-#include "or/hs_common.h"
-#include "or/hs_client.h"
-#include "or/hs_ident.h"
-#include "or/hs_service.h"
-#include "or/hs_circuitmap.h"
-#include "or/policies.h"
-#include "or/rendcommon.h"
-#include "or/rendservice.h"
-#include "or/routerset.h"
-#include "or/router.h"
-#include "or/shared_random_client.h"
-#include "or/dirauth/shared_random_state.h"
-
-#include "or/edge_connection_st.h"
-#include "or/networkstatus_st.h"
-#include "or/node_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/routerstatus_st.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "feature/hs/hs_cache.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_client.h"
+#include "feature/hs/hs_ident.h"
+#include "feature/hs/hs_service.h"
+#include "feature/hs/hs_circuitmap.h"
+#include "core/or/policies.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/rend/rendservice.h"
+#include "feature/nodelist/routerset.h"
+#include "feature/relay/router.h"
+#include "feature/hs_common/shared_random_client.h"
+#include "feature/dirauth/shared_random_state.h"
+
+#include "core/or/edge_connection_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/node_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "feature/nodelist/routerstatus_st.h"
/* Trunnel */
#include "trunnel/ed25519_cert.h"
diff --git a/src/feature/hs/hs_common.h b/src/feature/hs/hs_common.h
index 24f5f3a20f..888eb0a4ec 100644
--- a/src/feature/hs/hs_common.h
+++ b/src/feature/hs/hs_common.h
@@ -9,7 +9,7 @@
#ifndef TOR_HS_COMMON_H
#define TOR_HS_COMMON_H
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/defs/x25519_sizes.h"
struct curve25519_public_key_t;
diff --git a/src/feature/hs/hs_config.c b/src/feature/hs/hs_config.c
index cb55faa9d5..2c25a168a2 100644
--- a/src/feature/hs/hs_config.c
+++ b/src/feature/hs/hs_config.c
@@ -25,12 +25,12 @@
#define HS_CONFIG_PRIVATE
-#include "or/hs_common.h"
-#include "or/hs_config.h"
-#include "or/hs_service.h"
-#include "or/rendservice.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_config.h"
+#include "feature/hs/hs_service.h"
+#include "feature/rend/rendservice.h"
#include "lib/encoding/confline.h"
-#include "or/or_options_st.h"
+#include "app/config/or_options_st.h"
/* Using the given list of services, stage them into our global state. Every
* service version are handled. This function can remove entries in the given
diff --git a/src/feature/hs/hs_config.h b/src/feature/hs/hs_config.h
index 461d58d384..96eb19ee70 100644
--- a/src/feature/hs/hs_config.h
+++ b/src/feature/hs/hs_config.h
@@ -9,7 +9,7 @@
#ifndef TOR_HS_CONFIG_H
#define TOR_HS_CONFIG_H
-#include "or/or.h"
+#include "core/or/or.h"
/* Max value for HiddenServiceMaxStreams */
#define HS_CONFIG_MAX_STREAMS_PER_RDV_CIRCUIT 65535
diff --git a/src/feature/hs/hs_control.c b/src/feature/hs/hs_control.c
index be456e8da4..a21788ecd7 100644
--- a/src/feature/hs/hs_control.c
+++ b/src/feature/hs/hs_control.c
@@ -6,18 +6,18 @@
* \brief Contains control port event related code.
**/
-#include "or/or.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_format.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/hs_common.h"
-#include "or/hs_control.h"
-#include "or/hs_descriptor.h"
-#include "or/hs_service.h"
-#include "or/nodelist.h"
-
-#include "or/node_st.h"
-#include "or/routerstatus_st.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_control.h"
+#include "feature/hs/hs_descriptor.h"
+#include "feature/hs/hs_service.h"
+#include "feature/nodelist/nodelist.h"
+
+#include "feature/nodelist/node_st.h"
+#include "feature/nodelist/routerstatus_st.h"
/* Send on the control port the "HS_DESC REQUESTED [...]" event.
*
diff --git a/src/feature/hs/hs_control.h b/src/feature/hs/hs_control.h
index 040ce4a793..63e3fe13d6 100644
--- a/src/feature/hs/hs_control.h
+++ b/src/feature/hs/hs_control.h
@@ -9,7 +9,7 @@
#ifndef TOR_HS_CONTROL_H
#define TOR_HS_CONTROL_H
-#include "or/hs_ident.h"
+#include "feature/hs/hs_ident.h"
/* Event "HS_DESC REQUESTED [...]" */
void hs_control_desc_event_requested(const ed25519_public_key_t *onion_pk,
diff --git a/src/feature/hs/hs_descriptor.c b/src/feature/hs/hs_descriptor.c
index 5fd8971dc0..3928000164 100644
--- a/src/feature/hs/hs_descriptor.c
+++ b/src/feature/hs/hs_descriptor.c
@@ -55,21 +55,21 @@
/* For unit tests.*/
#define HS_DESCRIPTOR_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "trunnel/ed25519_cert.h" /* Trunnel interface. */
-#include "or/hs_descriptor.h"
-#include "or/circuitbuild.h"
+#include "feature/hs/hs_descriptor.h"
+#include "core/or/circuitbuild.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/parsecommon.h"
-#include "or/rendcache.h"
-#include "or/hs_cache.h"
-#include "or/hs_config.h"
-#include "or/torcert.h" /* tor_cert_encode_ed22519() */
+#include "feature/nodelist/parsecommon.h"
+#include "feature/rend/rendcache.h"
+#include "feature/hs/hs_cache.h"
+#include "feature/hs/hs_config.h"
+#include "feature/nodelist/torcert.h" /* tor_cert_encode_ed22519() */
#include "lib/memarea/memarea.h"
#include "lib/crypt_ops/crypto_format.h"
-#include "or/extend_info_st.h"
+#include "core/or/extend_info_st.h"
/* Constant string value used for the descriptor format. */
#define str_hs_desc "hs-descriptor"
diff --git a/src/feature/hs/hs_descriptor.h b/src/feature/hs/hs_descriptor.h
index 7a4010cd3b..bfdf7559c6 100644
--- a/src/feature/hs/hs_descriptor.h
+++ b/src/feature/hs/hs_descriptor.h
@@ -11,9 +11,9 @@
#include <stdint.h>
-#include "or/or.h"
+#include "core/or/or.h"
#include "trunnel/ed25519_cert.h" /* needed for trunnel */
-#include "or/torcert.h"
+#include "feature/nodelist/torcert.h"
/* Trunnel */
struct link_specifier_t;
diff --git a/src/feature/hs/hs_ident.c b/src/feature/hs/hs_ident.c
index 20539ca878..c6ef8c2ce3 100644
--- a/src/feature/hs/hs_ident.c
+++ b/src/feature/hs/hs_ident.c
@@ -8,7 +8,7 @@
**/
#include "lib/crypt_ops/crypto_util.h"
-#include "or/hs_ident.h"
+#include "feature/hs/hs_ident.h"
/* Return a newly allocated circuit identifier. The given public key is copied
* identity_pk into the identifier. */
diff --git a/src/feature/hs/hs_ident.h b/src/feature/hs/hs_ident.h
index 8c53b9dbeb..92d15b0523 100644
--- a/src/feature/hs/hs_ident.h
+++ b/src/feature/hs/hs_ident.h
@@ -23,7 +23,7 @@
#include "lib/crypt_ops/crypto_ed25519.h"
-#include "or/hs_common.h"
+#include "feature/hs/hs_common.h"
/* Length of the rendezvous cookie that is used to connect circuits at the
* rendezvous point. */
diff --git a/src/feature/hs/hs_intropoint.c b/src/feature/hs/hs_intropoint.c
index 2594058679..42092e22b1 100644
--- a/src/feature/hs/hs_intropoint.c
+++ b/src/feature/hs/hs_intropoint.c
@@ -8,13 +8,13 @@
#define HS_INTROPOINT_PRIVATE
-#include "or/or.h"
-#include "or/config.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/relay.h"
-#include "or/rendmid.h"
-#include "or/rephist.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "core/or/relay.h"
+#include "feature/rend/rendmid.h"
+#include "feature/stats/rephist.h"
#include "lib/crypt_ops/crypto_format.h"
/* Trunnel */
@@ -23,12 +23,12 @@
#include "trunnel/hs/cell_establish_intro.h"
#include "trunnel/hs/cell_introduce1.h"
-#include "or/hs_circuitmap.h"
-#include "or/hs_descriptor.h"
-#include "or/hs_intropoint.h"
-#include "or/hs_common.h"
+#include "feature/hs/hs_circuitmap.h"
+#include "feature/hs/hs_descriptor.h"
+#include "feature/hs/hs_intropoint.h"
+#include "feature/hs/hs_common.h"
-#include "or/or_circuit_st.h"
+#include "core/or/or_circuit_st.h"
/** Extract the authentication key from an ESTABLISH_INTRO or INTRODUCE1 using
* the given <b>cell_type</b> from <b>cell</b> and place it in
diff --git a/src/feature/hs/hs_intropoint.h b/src/feature/hs/hs_intropoint.h
index 5f82920991..562836fb07 100644
--- a/src/feature/hs/hs_intropoint.h
+++ b/src/feature/hs/hs_intropoint.h
@@ -10,7 +10,7 @@
#define TOR_HS_INTRO_H
#include "lib/crypt_ops/crypto_curve25519.h"
-#include "or/torcert.h"
+#include "feature/nodelist/torcert.h"
/* Authentication key type in an ESTABLISH_INTRO cell. */
typedef enum {
diff --git a/src/feature/hs/hs_service.c b/src/feature/hs/hs_service.c
index 6cb01b57c9..8b4de21387 100644
--- a/src/feature/hs/hs_service.c
+++ b/src/feature/hs/hs_service.c
@@ -8,45 +8,45 @@
#define HS_SERVICE_PRIVATE
-#include "or/or.h"
-#include "or/circpathbias.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/config.h"
-#include "or/connection.h"
+#include "core/or/or.h"
+#include "feature/client/circpathbias.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/directory.h"
-#include "or/main.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/relay.h"
-#include "or/rendservice.h"
-#include "or/router.h"
-#include "or/routerkeys.h"
-#include "or/routerlist.h"
-#include "or/shared_random_client.h"
-#include "or/statefile.h"
-
-#include "or/hs_circuit.h"
-#include "or/hs_common.h"
-#include "or/hs_config.h"
-#include "or/hs_control.h"
-#include "or/hs_descriptor.h"
-#include "or/hs_ident.h"
-#include "or/hs_intropoint.h"
-#include "or/hs_service.h"
-#include "or/hs_stats.h"
-
-#include "or/dir_connection_st.h"
-#include "or/edge_connection_st.h"
-#include "or/extend_info_st.h"
-#include "or/networkstatus_st.h"
-#include "or/node_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/or_state_st.h"
-#include "or/routerstatus_st.h"
+#include "feature/dircache/directory.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/relay.h"
+#include "feature/rend/rendservice.h"
+#include "feature/relay/router.h"
+#include "feature/relay/routerkeys.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/hs_common/shared_random_client.h"
+#include "app/config/statefile.h"
+
+#include "feature/hs/hs_circuit.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_config.h"
+#include "feature/hs/hs_control.h"
+#include "feature/hs/hs_descriptor.h"
+#include "feature/hs/hs_ident.h"
+#include "feature/hs/hs_intropoint.h"
+#include "feature/hs/hs_service.h"
+#include "feature/hs/hs_stats.h"
+
+#include "feature/dircommon/dir_connection_st.h"
+#include "core/or/edge_connection_st.h"
+#include "core/or/extend_info_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/node_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "app/config/or_state_st.h"
+#include "feature/nodelist/routerstatus_st.h"
#include "lib/encoding/confline.h"
#include "lib/crypt_ops/crypto_format.h"
diff --git a/src/feature/hs/hs_service.h b/src/feature/hs/hs_service.h
index 4676042b54..22bfcacc26 100644
--- a/src/feature/hs/hs_service.h
+++ b/src/feature/hs/hs_service.h
@@ -11,12 +11,12 @@
#include "lib/crypt_ops/crypto_curve25519.h"
#include "lib/crypt_ops/crypto_ed25519.h"
-#include "or/replaycache.h"
+#include "feature/hs_common/replaycache.h"
-#include "or/hs_common.h"
-#include "or/hs_descriptor.h"
-#include "or/hs_ident.h"
-#include "or/hs_intropoint.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_descriptor.h"
+#include "feature/hs/hs_ident.h"
+#include "feature/hs/hs_intropoint.h"
/* Trunnel */
#include "trunnel/hs/cell_establish_intro.h"
diff --git a/src/feature/hs/hs_stats.c b/src/feature/hs/hs_stats.c
index c8a99b19d4..b109a37cc1 100644
--- a/src/feature/hs/hs_stats.c
+++ b/src/feature/hs/hs_stats.c
@@ -6,9 +6,9 @@
* \brief Keeps stats about the activity of our onion service(s).
**/
-#include "or/or.h"
-#include "or/hs_stats.h"
-#include "or/hs_service.h"
+#include "core/or/or.h"
+#include "feature/hs/hs_stats.h"
+#include "feature/hs/hs_service.h"
/** Number of v3 INTRODUCE2 cells received */
static uint32_t n_introduce2_v3 = 0;
diff --git a/src/feature/hs_common/replaycache.c b/src/feature/hs_common/replaycache.c
index b5cc6a2823..1d3f20e819 100644
--- a/src/feature/hs_common/replaycache.c
+++ b/src/feature/hs_common/replaycache.c
@@ -21,8 +21,8 @@
#define REPLAYCACHE_PRIVATE
-#include "or/or.h"
-#include "or/replaycache.h"
+#include "core/or/or.h"
+#include "feature/hs_common/replaycache.h"
/** Free the replaycache r and all of its entries.
*/
diff --git a/src/feature/hs_common/shared_random_client.c b/src/feature/hs_common/shared_random_client.c
index 42a5b42f60..329f053d3b 100644
--- a/src/feature/hs_common/shared_random_client.c
+++ b/src/feature/hs_common/shared_random_client.c
@@ -9,14 +9,14 @@
**/
#define SHARED_RANDOM_CLIENT_PRIVATE
-#include "or/shared_random_client.h"
+#include "feature/hs_common/shared_random_client.h"
-#include "or/config.h"
-#include "or/voting_schedule.h"
-#include "or/networkstatus.h"
+#include "app/config/config.h"
+#include "feature/dircommon/voting_schedule.h"
+#include "feature/nodelist/networkstatus.h"
#include "lib/encoding/binascii.h"
-#include "or/networkstatus_st.h"
+#include "feature/nodelist/networkstatus_st.h"
/* Convert a given srv object to a string for the control port. This doesn't
* fail and the srv object MUST be valid. */
diff --git a/src/feature/hs_common/shared_random_client.h b/src/feature/hs_common/shared_random_client.h
index 079829496c..497a015c18 100644
--- a/src/feature/hs_common/shared_random_client.h
+++ b/src/feature/hs_common/shared_random_client.h
@@ -10,7 +10,7 @@
#define TOR_SHARED_RANDOM_CLIENT_H
/* Dirauth module. */
-#include "or/dirauth/shared_random.h"
+#include "feature/dirauth/shared_random.h"
/* Helper functions. */
void sr_srv_encode(char *dst, size_t dst_len, const sr_srv_t *srv);
diff --git a/src/feature/nodelist/authority_cert_st.h b/src/feature/nodelist/authority_cert_st.h
index 19c3fda2de..c2846548c4 100644
--- a/src/feature/nodelist/authority_cert_st.h
+++ b/src/feature/nodelist/authority_cert_st.h
@@ -7,7 +7,7 @@
#ifndef AUTHORITY_CERT_ST_H
#define AUTHORITY_CERT_ST_H
-#include "or/signed_descriptor_st.h"
+#include "feature/nodelist/signed_descriptor_st.h"
/** Certificate for v3 directory protocol: binds long-term authority identity
* keys to medium-term authority signing keys. */
diff --git a/src/feature/nodelist/extrainfo_st.h b/src/feature/nodelist/extrainfo_st.h
index f91bba7b68..f5d977e751 100644
--- a/src/feature/nodelist/extrainfo_st.h
+++ b/src/feature/nodelist/extrainfo_st.h
@@ -7,7 +7,7 @@
#ifndef EXTRAINFO_ST_H
#define EXTRAINFO_ST_H
-#include "or/signed_descriptor_st.h"
+#include "feature/nodelist/signed_descriptor_st.h"
/** Information needed to keep and cache a signed extra-info document. */
struct extrainfo_t {
diff --git a/src/feature/nodelist/microdesc.c b/src/feature/nodelist/microdesc.c
index 95c5e8b6f7..4d6285d6cf 100644
--- a/src/feature/nodelist/microdesc.c
+++ b/src/feature/nodelist/microdesc.c
@@ -8,27 +8,27 @@
* less-frequently-changing router information.
*/
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/fdio/fdio.h"
-#include "or/circuitbuild.h"
-#include "or/config.h"
-#include "or/directory.h"
-#include "or/dirserv.h"
-#include "or/entrynodes.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-
-#include "or/microdesc_st.h"
-#include "or/networkstatus_st.h"
-#include "or/node_st.h"
-#include "or/routerstatus_st.h"
+#include "core/or/circuitbuild.h"
+#include "app/config/config.h"
+#include "feature/dircache/directory.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/client/entrynodes.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+
+#include "feature/nodelist/microdesc_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/node_st.h"
+#include "feature/nodelist/routerstatus_st.h"
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
diff --git a/src/feature/nodelist/networkstatus.c b/src/feature/nodelist/networkstatus.c
index f91e46cdd7..366410d68e 100644
--- a/src/feature/nodelist/networkstatus.c
+++ b/src/feature/nodelist/networkstatus.c
@@ -37,56 +37,56 @@
*/
#define NETWORKSTATUS_PRIVATE
-#include "or/or.h"
-#include "or/bridges.h"
-#include "or/channel.h"
-#include "or/circuitmux.h"
-#include "or/circuitmux_ewma.h"
-#include "or/circuitstats.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/connection_or.h"
-#include "or/consdiffmgr.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "feature/client/bridges.h"
+#include "core/or/channel.h"
+#include "core/or/circuitmux.h"
+#include "core/or/circuitmux_ewma.h"
+#include "core/or/circuitstats.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "core/or/connection_or.h"
+#include "feature/dircache/consdiffmgr.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/directory.h"
-#include "or/dirserv.h"
-#include "or/dos.h"
-#include "or/entrynodes.h"
-#include "or/hibernate.h"
-#include "or/main.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/protover.h"
-#include "or/relay.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/scheduler.h"
-#include "or/transports.h"
-#include "or/torcert.h"
-#include "or/channelpadding.h"
-#include "or/voting_schedule.h"
-
-#include "or/dirauth/dirvote.h"
-#include "or/dirauth/mode.h"
-#include "or/dirauth/shared_random.h"
-
-#include "or/authority_cert_st.h"
-#include "or/dir_connection_st.h"
-#include "or/dir_server_st.h"
-#include "or/document_signature_st.h"
-#include "or/networkstatus_st.h"
-#include "or/networkstatus_voter_info_st.h"
-#include "or/ns_detached_signatures_st.h"
-#include "or/node_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerlist_st.h"
-#include "or/vote_microdesc_hash_st.h"
-#include "or/vote_routerstatus_st.h"
+#include "feature/dircache/directory.h"
+#include "feature/dircache/dirserv.h"
+#include "core/or/dos.h"
+#include "feature/client/entrynodes.h"
+#include "feature/hibernate/hibernate.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/proto/protover.h"
+#include "core/or/relay.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "core/or/scheduler.h"
+#include "feature/client/transports.h"
+#include "feature/nodelist/torcert.h"
+#include "core/or/channelpadding.h"
+#include "feature/dircommon/voting_schedule.h"
+
+#include "feature/dirauth/dirvote.h"
+#include "feature/dirauth/mode.h"
+#include "feature/dirauth/shared_random.h"
+
+#include "feature/nodelist/authority_cert_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "feature/dirclient/dir_server_st.h"
+#include "feature/nodelist/document_signature_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/networkstatus_voter_info_st.h"
+#include "feature/dirauth/ns_detached_signatures_st.h"
+#include "feature/nodelist/node_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerlist_st.h"
+#include "feature/dirauth/vote_microdesc_hash_st.h"
+#include "feature/nodelist/vote_routerstatus_st.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h>
diff --git a/src/feature/nodelist/networkstatus_st.h b/src/feature/nodelist/networkstatus_st.h
index 4a193ad149..46b0f53c0b 100644
--- a/src/feature/nodelist/networkstatus_st.h
+++ b/src/feature/nodelist/networkstatus_st.h
@@ -7,7 +7,7 @@
#ifndef NETWORKSTATUS_ST_H
#define NETWORKSTATUS_ST_H
-#include "or/networkstatus_sr_info_st.h"
+#include "feature/nodelist/networkstatus_sr_info_st.h"
/** Enumerates the possible seriousness values of a networkstatus document. */
typedef enum networkstatus_type_t {
diff --git a/src/feature/nodelist/node_st.h b/src/feature/nodelist/node_st.h
index d56ce27884..8d182050ac 100644
--- a/src/feature/nodelist/node_st.h
+++ b/src/feature/nodelist/node_st.h
@@ -7,7 +7,7 @@
#ifndef NODE_ST_H
#define NODE_ST_H
-#include "or/hsdir_index_st.h"
+#include "feature/hs/hsdir_index_st.h"
#include "lib/crypt_ops/crypto_ed25519.h"
/** A node_t represents a Tor router.
diff --git a/src/feature/nodelist/nodelist.c b/src/feature/nodelist/nodelist.c
index 51fd0015df..e434dd2d18 100644
--- a/src/feature/nodelist/nodelist.c
+++ b/src/feature/nodelist/nodelist.c
@@ -40,41 +40,41 @@
#define NODELIST_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/net/address.h"
-#include "or/address_set.h"
-#include "or/bridges.h"
-#include "or/config.h"
-#include "or/control.h"
-#include "or/dirserv.h"
-#include "or/entrynodes.h"
-#include "or/geoip.h"
-#include "or/hs_common.h"
-#include "or/hs_client.h"
-#include "or/main.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/protover.h"
-#include "or/rendservice.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/routerset.h"
-#include "or/torcert.h"
+#include "core/or/address_set.h"
+#include "feature/client/bridges.h"
+#include "app/config/config.h"
+#include "feature/control/control.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/client/entrynodes.h"
+#include "feature/stats/geoip.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_client.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "core/proto/protover.h"
+#include "feature/rend/rendservice.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/routerset.h"
+#include "feature/nodelist/torcert.h"
#include <string.h>
-#include "or/dirauth/mode.h"
+#include "feature/dirauth/mode.h"
-#include "or/dir_server_st.h"
-#include "or/microdesc_st.h"
-#include "or/networkstatus_st.h"
-#include "or/node_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerlist_st.h"
-#include "or/routerstatus_st.h"
+#include "feature/dirclient/dir_server_st.h"
+#include "feature/nodelist/microdesc_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/node_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerlist_st.h"
+#include "feature/nodelist/routerstatus_st.h"
static void nodelist_drop_node(node_t *node, int remove_from_ht);
#define node_free(val) \
diff --git a/src/feature/nodelist/parsecommon.c b/src/feature/nodelist/parsecommon.c
index 4340f28225..4f1c3fd421 100644
--- a/src/feature/nodelist/parsecommon.c
+++ b/src/feature/nodelist/parsecommon.c
@@ -6,7 +6,7 @@
* \brief Common code to parse and validate various type of descriptors.
**/
-#include "or/parsecommon.h"
+#include "feature/nodelist/parsecommon.h"
#include "lib/log/torlog.h"
#include "lib/log/util_bug.h"
#include "lib/encoding/binascii.h"
diff --git a/src/feature/nodelist/routerinfo_st.h b/src/feature/nodelist/routerinfo_st.h
index 89a7702b30..ca8fd40e3b 100644
--- a/src/feature/nodelist/routerinfo_st.h
+++ b/src/feature/nodelist/routerinfo_st.h
@@ -7,7 +7,7 @@
#ifndef ROUTERINFO_ST_H
#define ROUTERINFO_ST_H
-#include "or/signed_descriptor_st.h"
+#include "feature/nodelist/signed_descriptor_st.h"
struct curve25519_public_key_t;
diff --git a/src/feature/nodelist/routerlist.c b/src/feature/nodelist/routerlist.c
index 76a236ff20..0ff38f56e6 100644
--- a/src/feature/nodelist/routerlist.c
+++ b/src/feature/nodelist/routerlist.c
@@ -91,53 +91,53 @@
**/
#define ROUTERLIST_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/err/backtrace.h"
-#include "or/bridges.h"
+#include "feature/client/bridges.h"
#include "lib/crypt_ops/crypto_ed25519.h"
#include "lib/crypt_ops/crypto_format.h"
-#include "or/circuitstats.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/control.h"
+#include "core/or/circuitstats.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/directory.h"
-#include "or/dirserv.h"
-#include "or/entrynodes.h"
-#include "or/fp_pair.h"
-#include "or/geoip.h"
-#include "or/hibernate.h"
-#include "or/main.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/reasons.h"
-#include "or/rendcommon.h"
-#include "or/rendservice.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/routerset.h"
+#include "feature/dircache/directory.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/client/entrynodes.h"
+#include "feature/dircommon/fp_pair.h"
+#include "feature/stats/geoip.h"
+#include "feature/hibernate/hibernate.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "core/or/reasons.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/rend/rendservice.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/routerset.h"
#include "lib/sandbox/sandbox.h"
-#include "or/torcert.h"
+#include "feature/nodelist/torcert.h"
#include "lib/math/fp.h"
-#include "or/dirauth/dirvote.h"
-#include "or/dirauth/mode.h"
-
-#include "or/authority_cert_st.h"
-#include "or/dir_connection_st.h"
-#include "or/dir_server_st.h"
-#include "or/document_signature_st.h"
-#include "or/extrainfo_st.h"
-#include "or/networkstatus_st.h"
-#include "or/networkstatus_voter_info_st.h"
-#include "or/node_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerlist_st.h"
-#include "or/vote_routerstatus_st.h"
+#include "feature/dirauth/dirvote.h"
+#include "feature/dirauth/mode.h"
+
+#include "feature/nodelist/authority_cert_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "feature/dirclient/dir_server_st.h"
+#include "feature/nodelist/document_signature_st.h"
+#include "feature/nodelist/extrainfo_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/networkstatus_voter_info_st.h"
+#include "feature/nodelist/node_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerlist_st.h"
+#include "feature/nodelist/vote_routerstatus_st.h"
#include "lib/crypt_ops/digestset.h"
diff --git a/src/feature/nodelist/routerlist_st.h b/src/feature/nodelist/routerlist_st.h
index 0b94a4dfcd..26cc66138c 100644
--- a/src/feature/nodelist/routerlist_st.h
+++ b/src/feature/nodelist/routerlist_st.h
@@ -7,7 +7,7 @@
#ifndef ROUTERLIST_ST_H
#define ROUTERLIST_ST_H
-#include "or/desc_store_st.h"
+#include "feature/nodelist/desc_store_st.h"
/** Contents of a directory of onion routers. */
struct routerlist_t {
diff --git a/src/feature/nodelist/routerparse.c b/src/feature/nodelist/routerparse.c
index 273666046b..e1dfe972d3 100644
--- a/src/feature/nodelist/routerparse.c
+++ b/src/feature/nodelist/routerparse.c
@@ -55,50 +55,50 @@
#define ROUTERPARSE_PRIVATE
-#include "or/or.h"
-#include "or/circuitstats.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "core/or/circuitstats.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_format.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/dirauth/shared_random.h"
-#include "or/dirserv.h"
-#include "or/entrynodes.h"
+#include "feature/dirauth/shared_random.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/client/entrynodes.h"
#include "lib/memarea/memarea.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/parsecommon.h"
-#include "or/policies.h"
-#include "or/protover.h"
-#include "or/rendcommon.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerkeys.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/parsecommon.h"
+#include "core/or/policies.h"
+#include "core/proto/protover.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/relay/routerkeys.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
#include "lib/sandbox/sandbox.h"
-#include "or/shared_random_client.h"
-#include "or/torcert.h"
-#include "or/voting_schedule.h"
-
-#include "or/dirauth/dirvote.h"
-
-#include "or/addr_policy_st.h"
-#include "or/authority_cert_st.h"
-#include "or/document_signature_st.h"
-#include "or/extend_info_st.h"
-#include "or/extrainfo_st.h"
-#include "or/microdesc_st.h"
-#include "or/networkstatus_st.h"
-#include "or/networkstatus_voter_info_st.h"
-#include "or/ns_detached_signatures_st.h"
-#include "or/rend_authorized_client_st.h"
-#include "or/rend_intro_point_st.h"
-#include "or/rend_service_descriptor_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerlist_st.h"
-#include "or/tor_version_st.h"
-#include "or/vote_microdesc_hash_st.h"
-#include "or/vote_routerstatus_st.h"
+#include "feature/hs_common/shared_random_client.h"
+#include "feature/nodelist/torcert.h"
+#include "feature/dircommon/voting_schedule.h"
+
+#include "feature/dirauth/dirvote.h"
+
+#include "core/or/addr_policy_st.h"
+#include "feature/nodelist/authority_cert_st.h"
+#include "feature/nodelist/document_signature_st.h"
+#include "core/or/extend_info_st.h"
+#include "feature/nodelist/extrainfo_st.h"
+#include "feature/nodelist/microdesc_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/networkstatus_voter_info_st.h"
+#include "feature/dirauth/ns_detached_signatures_st.h"
+#include "feature/rend/rend_authorized_client_st.h"
+#include "feature/rend/rend_intro_point_st.h"
+#include "feature/rend/rend_service_descriptor_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerlist_st.h"
+#include "core/or/tor_version_st.h"
+#include "feature/dirauth/vote_microdesc_hash_st.h"
+#include "feature/nodelist/vote_routerstatus_st.h"
#include "lib/container/bloomfilt.h"
diff --git a/src/feature/nodelist/routerset.c b/src/feature/nodelist/routerset.c
index 285ef9d821..cd42697748 100644
--- a/src/feature/nodelist/routerset.c
+++ b/src/feature/nodelist/routerset.c
@@ -27,20 +27,20 @@ n * Copyright (c) 2001-2004, Roger Dingledine.
#define ROUTERSET_PRIVATE
-#include "or/or.h"
-#include "or/bridges.h"
-#include "or/geoip.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/router.h"
-#include "or/routerparse.h"
-#include "or/routerset.h"
-
-#include "or/addr_policy_st.h"
-#include "or/extend_info_st.h"
-#include "or/node_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerstatus_st.h"
+#include "core/or/or.h"
+#include "feature/client/bridges.h"
+#include "feature/stats/geoip.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/routerset.h"
+
+#include "core/or/addr_policy_st.h"
+#include "core/or/extend_info_st.h"
+#include "feature/nodelist/node_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerstatus_st.h"
/** Return a new empty routerset. */
routerset_t *
diff --git a/src/feature/nodelist/routerstatus_st.h b/src/feature/nodelist/routerstatus_st.h
index 3de4a40ae4..714aa27435 100644
--- a/src/feature/nodelist/routerstatus_st.h
+++ b/src/feature/nodelist/routerstatus_st.h
@@ -7,7 +7,7 @@
#ifndef ROUTERSTATUS_ST_H
#define ROUTERSTATUS_ST_H
-#include "or/download_status_st.h"
+#include "feature/dirclient/download_status_st.h"
/** Contents of a single router entry in a network status object.
*/
diff --git a/src/feature/nodelist/signed_descriptor_st.h b/src/feature/nodelist/signed_descriptor_st.h
index 90cd4a2703..bffad62895 100644
--- a/src/feature/nodelist/signed_descriptor_st.h
+++ b/src/feature/nodelist/signed_descriptor_st.h
@@ -7,7 +7,7 @@
#ifndef SIGNED_DESCRIPTOR_ST_H
#define SIGNED_DESCRIPTOR_ST_H
-#include "or/download_status_st.h"
+#include "feature/dirclient/download_status_st.h"
/** Information need to cache an onion router's descriptor. */
struct signed_descriptor_t {
diff --git a/src/feature/nodelist/torcert.c b/src/feature/nodelist/torcert.c
index 39c6605c65..172d4f9de3 100644
--- a/src/feature/nodelist/torcert.c
+++ b/src/feature/nodelist/torcert.c
@@ -25,16 +25,16 @@
* that one is authority_cert_t, and it's mostly handled in routerlist.c.
*/
-#include "or/or.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/torcert.h"
+#include "feature/nodelist/torcert.h"
#include "trunnel/ed25519_cert.h"
#include "lib/log/torlog.h"
#include "trunnel/link_handshake.h"
#include "lib/tls/tortls.h"
-#include "or/or_handshake_certs_st.h"
+#include "core/or/or_handshake_certs_st.h"
/** Helper for tor_cert_create(): signs any 32 bytes, not just an ed25519
* key.
diff --git a/src/feature/nodelist/vote_routerstatus_st.h b/src/feature/nodelist/vote_routerstatus_st.h
index 1b85737df8..ad0d35b4e6 100644
--- a/src/feature/nodelist/vote_routerstatus_st.h
+++ b/src/feature/nodelist/vote_routerstatus_st.h
@@ -7,7 +7,7 @@
#ifndef VOTE_ROUTERSTATUS_ST_H
#define VOTE_ROUTERSTATUS_ST_H
-#include "or/routerstatus_st.h"
+#include "feature/nodelist/routerstatus_st.h"
#include "lib/defs/x25519_sizes.h"
/** The claim about a single router, made in a vote. */
diff --git a/src/feature/relay/dns.c b/src/feature/relay/dns.c
index 4ac58552f4..f4e39dfd3d 100644
--- a/src/feature/relay/dns.c
+++ b/src/feature/relay/dns.c
@@ -49,25 +49,25 @@
#define DNS_PRIVATE
-#include "or/or.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/dns.h"
-#include "or/main.h"
-#include "or/policies.h"
-#include "or/relay.h"
-#include "or/router.h"
+#include "feature/relay/dns.h"
+#include "core/mainloop/main.h"
+#include "core/or/policies.h"
+#include "core/or/relay.h"
+#include "feature/relay/router.h"
#include "ht.h"
#include "lib/sandbox/sandbox.h"
#include "lib/evloop/compat_libevent.h"
-#include "or/edge_connection_st.h"
-#include "or/or_circuit_st.h"
+#include "core/or/edge_connection_st.h"
+#include "core/or/or_circuit_st.h"
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
diff --git a/src/feature/relay/dns.h b/src/feature/relay/dns.h
index 12853205ff..69c1764b73 100644
--- a/src/feature/relay/dns.h
+++ b/src/feature/relay/dns.h
@@ -41,7 +41,7 @@ void dns_reset_correctness_checks(void);
void dump_dns_mem_usage(int severity);
#ifdef DNS_PRIVATE
-#include "or/dns_structs.h"
+#include "feature/relay/dns_structs.h"
MOCK_DECL(STATIC int,dns_resolve_impl,(edge_connection_t *exitconn,
int is_resolve,or_circuit_t *oncirc, char **hostname_out,
diff --git a/src/feature/relay/ext_orport.c b/src/feature/relay/ext_orport.c
index 7342a66e06..7de57ac65d 100644
--- a/src/feature/relay/ext_orport.c
+++ b/src/feature/relay/ext_orport.c
@@ -17,18 +17,18 @@
*/
#define EXT_ORPORT_PRIVATE
-#include "or/or.h"
-#include "or/connection.h"
-#include "or/connection_or.h"
-#include "or/control.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_or.h"
+#include "feature/control/control.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/ext_orport.h"
-#include "or/main.h"
-#include "or/proto_ext_or.h"
+#include "feature/relay/ext_orport.h"
+#include "core/mainloop/main.h"
+#include "core/proto/proto_ext_or.h"
-#include "or/or_connection_st.h"
+#include "core/or/or_connection_st.h"
/** Allocate and return a structure capable of holding an Extended
* ORPort message of body length <b>len</b>. */
diff --git a/src/feature/relay/router.c b/src/feature/relay/router.c
index 44af1e3108..c52ac1f9c3 100644
--- a/src/feature/relay/router.c
+++ b/src/feature/relay/router.c
@@ -6,50 +6,50 @@
#define ROUTER_PRIVATE
-#include "or/or.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
#include "lib/crypt_ops/crypto_curve25519.h"
-#include "or/directory.h"
-#include "or/dirserv.h"
-#include "or/dns.h"
-#include "or/geoip.h"
-#include "or/hibernate.h"
-#include "or/main.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/protover.h"
-#include "or/relay.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerkeys.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/statefile.h"
-#include "or/torcert.h"
-#include "or/transports.h"
-#include "or/routerset.h"
-
-#include "or/dirauth/mode.h"
-
-#include "or/authority_cert_st.h"
-#include "or/crypt_path_st.h"
-#include "or/dir_connection_st.h"
-#include "or/dir_server_st.h"
-#include "or/extend_info_st.h"
-#include "or/extrainfo_st.h"
-#include "or/node_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/or_state_st.h"
-#include "or/port_cfg_st.h"
-#include "or/routerinfo_st.h"
+#include "feature/dircache/directory.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/relay/dns.h"
+#include "feature/stats/geoip.h"
+#include "feature/hibernate/hibernate.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "core/proto/protover.h"
+#include "core/or/relay.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/relay/routerkeys.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "app/config/statefile.h"
+#include "feature/nodelist/torcert.h"
+#include "feature/client/transports.h"
+#include "feature/nodelist/routerset.h"
+
+#include "feature/dirauth/mode.h"
+
+#include "feature/nodelist/authority_cert_st.h"
+#include "core/or/crypt_path_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "feature/dirclient/dir_server_st.h"
+#include "core/or/extend_info_st.h"
+#include "feature/nodelist/extrainfo_st.h"
+#include "feature/nodelist/node_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "app/config/or_state_st.h"
+#include "core/or/port_cfg_st.h"
+#include "feature/nodelist/routerinfo_st.h"
#include "lib/osinfo/uname.h"
#include "lib/tls/tortls.h"
diff --git a/src/feature/relay/routerkeys.c b/src/feature/relay/routerkeys.c
index bb04a8b220..f12eb3d332 100644
--- a/src/feature/relay/routerkeys.c
+++ b/src/feature/relay/routerkeys.c
@@ -14,11 +14,11 @@
* (TODO: The keys in router.c should go here too.)
*/
-#include "or/or.h"
-#include "or/config.h"
-#include "or/router.h"
-#include "or/routerkeys.h"
-#include "or/torcert.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "feature/relay/router.h"
+#include "feature/relay/routerkeys.h"
+#include "feature/nodelist/torcert.h"
#include "lib/crypt_ops/crypto_pwbox.h"
#include "lib/crypt_ops/crypto_util.h"
diff --git a/src/feature/rend/rendcache.c b/src/feature/rend/rendcache.c
index c18920154e..7af5063ba5 100644
--- a/src/feature/rend/rendcache.c
+++ b/src/feature/rend/rendcache.c
@@ -7,17 +7,17 @@
**/
#define RENDCACHE_PRIVATE
-#include "or/rendcache.h"
+#include "feature/rend/rendcache.h"
-#include "or/config.h"
-#include "or/rephist.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/rendcommon.h"
+#include "app/config/config.h"
+#include "feature/stats/rephist.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/rend/rendcommon.h"
-#include "or/extend_info_st.h"
-#include "or/rend_intro_point_st.h"
-#include "or/rend_service_descriptor_st.h"
+#include "core/or/extend_info_st.h"
+#include "feature/rend/rend_intro_point_st.h"
+#include "feature/rend/rend_service_descriptor_st.h"
/** Map from service id (as generated by rend_get_service_id) to
* rend_cache_entry_t. */
diff --git a/src/feature/rend/rendcache.h b/src/feature/rend/rendcache.h
index bb075409ec..455e51645c 100644
--- a/src/feature/rend/rendcache.h
+++ b/src/feature/rend/rendcache.h
@@ -9,8 +9,8 @@
#ifndef TOR_RENDCACHE_H
#define TOR_RENDCACHE_H
-#include "or/or.h"
-#include "or/rendcommon.h"
+#include "core/or/or.h"
+#include "feature/rend/rendcommon.h"
/** How old do we let hidden service descriptors get before discarding
* them as too old? */
diff --git a/src/feature/rend/rendclient.c b/src/feature/rend/rendclient.c
index d4262f2f38..9f62156eb9 100644
--- a/src/feature/rend/rendclient.c
+++ b/src/feature/rend/rendclient.c
@@ -7,43 +7,43 @@
* \brief Client code to access location-hidden services.
**/
-#include "or/or.h"
-#include "or/circpathbias.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "feature/client/circpathbias.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_dh.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/directory.h"
-#include "or/hs_circuit.h"
-#include "or/hs_client.h"
-#include "or/hs_common.h"
-#include "or/main.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/relay.h"
-#include "or/rendclient.h"
-#include "or/rendcommon.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerset.h"
+#include "feature/dircache/directory.h"
+#include "feature/hs/hs_circuit.h"
+#include "feature/hs/hs_client.h"
+#include "feature/hs/hs_common.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/relay.h"
+#include "feature/rend/rendclient.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerset.h"
#include "lib/encoding/confline.h"
-#include "or/cpath_build_state_st.h"
-#include "or/crypt_path_st.h"
-#include "or/dir_connection_st.h"
-#include "or/entry_connection_st.h"
-#include "or/extend_info_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/rend_intro_point_st.h"
-#include "or/rend_service_descriptor_st.h"
-#include "or/routerstatus_st.h"
+#include "core/or/cpath_build_state_st.h"
+#include "core/or/crypt_path_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "core/or/entry_connection_st.h"
+#include "core/or/extend_info_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "feature/rend/rend_intro_point_st.h"
+#include "feature/rend/rend_service_descriptor_st.h"
+#include "feature/nodelist/routerstatus_st.h"
static extend_info_t *rend_client_get_random_intro_impl(
const rend_cache_entry_t *rend_query,
diff --git a/src/feature/rend/rendclient.h b/src/feature/rend/rendclient.h
index 77395d6cb8..e41faa4932 100644
--- a/src/feature/rend/rendclient.h
+++ b/src/feature/rend/rendclient.h
@@ -12,7 +12,7 @@
#ifndef TOR_RENDCLIENT_H
#define TOR_RENDCLIENT_H
-#include "or/rendcache.h"
+#include "feature/rend/rendcache.h"
void rend_client_purge_state(void);
diff --git a/src/feature/rend/rendcommon.c b/src/feature/rend/rendcommon.c
index 928dda0128..5bf9477446 100644
--- a/src/feature/rend/rendcommon.c
+++ b/src/feature/rend/rendcommon.c
@@ -10,37 +10,37 @@
#define RENDCOMMON_PRIVATE
-#include "or/or.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/config.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/hs_client.h"
-#include "or/hs_common.h"
-#include "or/hs_intropoint.h"
-#include "or/networkstatus.h"
-#include "or/rendclient.h"
-#include "or/rendcommon.h"
-#include "or/rendmid.h"
-#include "or/rendservice.h"
-#include "or/rephist.h"
-#include "or/replaycache.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-
-#include "or/cpath_build_state_st.h"
-#include "or/crypt_path_st.h"
-#include "or/extend_info_st.h"
-#include "or/networkstatus_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/rend_encoded_v2_service_descriptor_st.h"
-#include "or/rend_intro_point_st.h"
-#include "or/rend_service_descriptor_st.h"
-#include "or/routerstatus_st.h"
+#include "feature/hs/hs_client.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_intropoint.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/rend/rendclient.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/rend/rendmid.h"
+#include "feature/rend/rendservice.h"
+#include "feature/stats/rephist.h"
+#include "feature/hs_common/replaycache.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+
+#include "core/or/cpath_build_state_st.h"
+#include "core/or/crypt_path_st.h"
+#include "core/or/extend_info_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "feature/rend/rend_encoded_v2_service_descriptor_st.h"
+#include "feature/rend/rend_intro_point_st.h"
+#include "feature/rend/rend_service_descriptor_st.h"
+#include "feature/nodelist/routerstatus_st.h"
/** Return 0 if one and two are the same service ids, else -1 or 1 */
int
diff --git a/src/feature/rend/rendmid.c b/src/feature/rend/rendmid.c
index 38c1c52e43..22cd6c3435 100644
--- a/src/feature/rend/rendmid.c
+++ b/src/feature/rend/rendmid.c
@@ -7,20 +7,20 @@
* \brief Implement introductions points and rendezvous points.
**/
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto.h"
-#include "or/dos.h"
-#include "or/relay.h"
-#include "or/rendmid.h"
-#include "or/rephist.h"
-#include "or/hs_circuitmap.h"
-#include "or/hs_intropoint.h"
-
-#include "or/or_circuit_st.h"
+#include "core/or/dos.h"
+#include "core/or/relay.h"
+#include "feature/rend/rendmid.h"
+#include "feature/stats/rephist.h"
+#include "feature/hs/hs_circuitmap.h"
+#include "feature/hs/hs_intropoint.h"
+
+#include "core/or/or_circuit_st.h"
/** Respond to an ESTABLISH_INTRO cell by checking the signed data and
* setting the circuit's purpose and service pk digest.
diff --git a/src/feature/rend/rendservice.c b/src/feature/rend/rendservice.c
index 8e094b593c..da4a98b3d1 100644
--- a/src/feature/rend/rendservice.c
+++ b/src/feature/rend/rendservice.c
@@ -9,47 +9,47 @@
#define RENDSERVICE_PRIVATE
-#include "or/or.h"
-#include "or/circpathbias.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/config.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "feature/client/circpathbias.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_dh.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/crypt_ops/crypto_util.h"
-#include "or/directory.h"
-#include "or/hs_common.h"
-#include "or/hs_config.h"
-#include "or/main.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/rendclient.h"
-#include "or/rendcommon.h"
-#include "or/rendservice.h"
-#include "or/router.h"
-#include "or/relay.h"
-#include "or/rephist.h"
-#include "or/replaycache.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/routerset.h"
+#include "feature/dircache/directory.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_config.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "feature/rend/rendclient.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/rend/rendservice.h"
+#include "feature/relay/router.h"
+#include "core/or/relay.h"
+#include "feature/stats/rephist.h"
+#include "feature/hs_common/replaycache.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/routerset.h"
#include "lib/encoding/confline.h"
-#include "or/cpath_build_state_st.h"
-#include "or/crypt_path_st.h"
-#include "or/crypt_path_reference_st.h"
-#include "or/edge_connection_st.h"
-#include "or/extend_info_st.h"
-#include "or/networkstatus_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/rend_authorized_client_st.h"
-#include "or/rend_encoded_v2_service_descriptor_st.h"
-#include "or/rend_intro_point_st.h"
-#include "or/rend_service_descriptor_st.h"
-#include "or/routerstatus_st.h"
+#include "core/or/cpath_build_state_st.h"
+#include "core/or/crypt_path_st.h"
+#include "core/or/crypt_path_reference_st.h"
+#include "core/or/edge_connection_st.h"
+#include "core/or/extend_info_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "feature/rend/rend_authorized_client_st.h"
+#include "feature/rend/rend_encoded_v2_service_descriptor_st.h"
+#include "feature/rend/rend_intro_point_st.h"
+#include "feature/rend/rend_service_descriptor_st.h"
+#include "feature/nodelist/routerstatus_st.h"
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
diff --git a/src/feature/rend/rendservice.h b/src/feature/rend/rendservice.h
index 35962df7f3..7096789629 100644
--- a/src/feature/rend/rendservice.h
+++ b/src/feature/rend/rendservice.h
@@ -12,8 +12,8 @@
#ifndef TOR_RENDSERVICE_H
#define TOR_RENDSERVICE_H
-#include "or/or.h"
-#include "or/hs_service.h"
+#include "core/or/or.h"
+#include "feature/hs/hs_service.h"
typedef struct rend_intro_cell_t rend_intro_cell_t;
struct config_line_t;
diff --git a/src/feature/stats/geoip.c b/src/feature/stats/geoip.c
index 3e6f20ea3f..d891bd80e2 100644
--- a/src/feature/stats/geoip.c
+++ b/src/feature/stats/geoip.c
@@ -28,15 +28,15 @@
*/
#define GEOIP_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "ht.h"
#include "lib/container/buffers.h"
-#include "or/config.h"
-#include "or/control.h"
-#include "or/dnsserv.h"
-#include "or/dos.h"
-#include "or/geoip.h"
-#include "or/routerlist.h"
+#include "app/config/config.h"
+#include "feature/control/control.h"
+#include "feature/client/dnsserv.h"
+#include "core/or/dos.h"
+#include "feature/stats/geoip.h"
+#include "feature/nodelist/routerlist.h"
#include "lib/container/order.h"
#include "lib/time/tvdiff.h"
diff --git a/src/feature/stats/geoip.h b/src/feature/stats/geoip.h
index fd19b7560a..a2175c01e5 100644
--- a/src/feature/stats/geoip.h
+++ b/src/feature/stats/geoip.h
@@ -13,7 +13,7 @@
#define TOR_GEOIP_H
#include "lib/testsupport/testsupport.h"
-#include "or/dos.h"
+#include "core/or/dos.h"
/** Indicates an action that we might be noting geoip statistics on.
* Note that if we're noticing CONNECT, we're a bridge, and if we're noticing
diff --git a/src/feature/stats/rephist.c b/src/feature/stats/rephist.c
index 6607c25964..6bb680c5dc 100644
--- a/src/feature/stats/rephist.c
+++ b/src/feature/stats/rephist.c
@@ -74,24 +74,24 @@
* (The "rephist" name originally stood for "reputation and history". )
**/
-#include "or/or.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/rephist.h"
-#include "or/router.h"
-#include "or/routerlist.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "feature/stats/rephist.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
#include "ht.h"
-#include "or/channelpadding.h"
-#include "or/connection_or.h"
-#include "or/statefile.h"
+#include "core/or/channelpadding.h"
+#include "core/or/connection_or.h"
+#include "app/config/statefile.h"
-#include "or/networkstatus_st.h"
-#include "or/or_circuit_st.h"
-#include "or/or_state_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "core/or/or_circuit_st.h"
+#include "app/config/or_state_st.h"
#include "lib/container/bloomfilt.h"
#include "lib/container/order.h"
diff --git a/src/test/bench.c b/src/test/bench.c
index ced04fffd7..7919a4224f 100644
--- a/src/test/bench.c
+++ b/src/test/bench.c
@@ -10,27 +10,27 @@
#include "orconfig.h"
-#include "or/or.h"
-#include "or/onion_tap.h"
-#include "or/relay_crypto.h"
+#include "core/or/or.h"
+#include "core/crypto/onion_tap.h"
+#include "core/crypto/relay_crypto.h"
#include <openssl/opensslv.h>
#include <openssl/evp.h>
#include <openssl/ec.h>
#include <openssl/ecdh.h>
#include <openssl/obj_mac.h>
-#include "or/circuitlist.h"
-#include "or/config.h"
+#include "core/or/circuitlist.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_curve25519.h"
#include "lib/crypt_ops/crypto_dh.h"
-#include "or/onion_ntor.h"
+#include "core/crypto/onion_ntor.h"
#include "lib/crypt_ops/crypto_ed25519.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/consdiff.h"
+#include "feature/dircommon/consdiff.h"
#include "lib/compress/compress.h"
-#include "or/cell_st.h"
-#include "or/or_circuit_st.h"
+#include "core/or/cell_st.h"
+#include "core/or/or_circuit_st.h"
#include "lib/crypt_ops/digestset.h"
diff --git a/src/test/fuzz/fuzz_consensus.c b/src/test/fuzz/fuzz_consensus.c
index 81a3101545..b170fd33d8 100644
--- a/src/test/fuzz/fuzz_consensus.c
+++ b/src/test/fuzz/fuzz_consensus.c
@@ -1,11 +1,11 @@
/* Copyright (c) 2016-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define ROUTERPARSE_PRIVATE
-#include "or/or.h"
-#include "or/routerparse.h"
-#include "or/networkstatus.h"
+#include "core/or/or.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/networkstatus.h"
#include "lib/crypt_ops/crypto_ed25519.h"
-#include "or/networkstatus_st.h"
+#include "feature/nodelist/networkstatus_st.h"
#include "test/fuzz/fuzzing.h"
static void
diff --git a/src/test/fuzz/fuzz_descriptor.c b/src/test/fuzz/fuzz_descriptor.c
index d28793fdf3..5a56f4081a 100644
--- a/src/test/fuzz/fuzz_descriptor.c
+++ b/src/test/fuzz/fuzz_descriptor.c
@@ -1,10 +1,10 @@
/* Copyright (c) 2016-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define ROUTERPARSE_PRIVATE
-#include "or/or.h"
-#include "or/routerparse.h"
-#include "or/routerlist.h"
-#include "or/routerkeys.h"
+#include "core/or/or.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/relay/routerkeys.h"
#include "test/fuzz/fuzzing.h"
static int
diff --git a/src/test/fuzz/fuzz_diff.c b/src/test/fuzz/fuzz_diff.c
index eb5fc27e08..1079856fdb 100644
--- a/src/test/fuzz/fuzz_diff.c
+++ b/src/test/fuzz/fuzz_diff.c
@@ -4,8 +4,8 @@
#define CONSDIFF_PRIVATE
#include "orconfig.h"
-#include "or/or.h"
-#include "or/consdiff.h"
+#include "core/or/or.h"
+#include "feature/dircommon/consdiff.h"
#include "test/fuzz/fuzzing.h"
diff --git a/src/test/fuzz/fuzz_diff_apply.c b/src/test/fuzz/fuzz_diff_apply.c
index 76789fabcd..165d0e6126 100644
--- a/src/test/fuzz/fuzz_diff_apply.c
+++ b/src/test/fuzz/fuzz_diff_apply.c
@@ -4,8 +4,8 @@
#define CONSDIFF_PRIVATE
#include "orconfig.h"
-#include "or/or.h"
-#include "or/consdiff.h"
+#include "core/or/or.h"
+#include "feature/dircommon/consdiff.h"
#include "test/fuzz/fuzzing.h"
diff --git a/src/test/fuzz/fuzz_extrainfo.c b/src/test/fuzz/fuzz_extrainfo.c
index 274ecc7866..6c88f80122 100644
--- a/src/test/fuzz/fuzz_extrainfo.c
+++ b/src/test/fuzz/fuzz_extrainfo.c
@@ -1,10 +1,10 @@
/* Copyright (c) 2016-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define ROUTERPARSE_PRIVATE
-#include "or/or.h"
-#include "or/routerparse.h"
-#include "or/routerlist.h"
-#include "or/routerkeys.h"
+#include "core/or/or.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/relay/routerkeys.h"
#include "test/fuzz/fuzzing.h"
static void
diff --git a/src/test/fuzz/fuzz_hsdescv2.c b/src/test/fuzz/fuzz_hsdescv2.c
index 7fd86f40b1..fd5da41635 100644
--- a/src/test/fuzz/fuzz_hsdescv2.c
+++ b/src/test/fuzz/fuzz_hsdescv2.c
@@ -1,9 +1,9 @@
/* Copyright (c) 2016-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define ROUTERPARSE_PRIVATE
-#include "or/or.h"
-#include "or/routerparse.h"
-#include "or/rendcommon.h"
+#include "core/or/or.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/rend/rendcommon.h"
#include "lib/crypt_ops/crypto_ed25519.h"
#include "test/fuzz/fuzzing.h"
diff --git a/src/test/fuzz/fuzz_hsdescv3.c b/src/test/fuzz/fuzz_hsdescv3.c
index de574ac26d..4ec8db0a87 100644
--- a/src/test/fuzz/fuzz_hsdescv3.c
+++ b/src/test/fuzz/fuzz_hsdescv3.c
@@ -4,11 +4,11 @@
#define ROUTERPARSE_PRIVATE
#define HS_DESCRIPTOR_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "trunnel/ed25519_cert.h" /* Trunnel interface. */
#include "lib/crypt_ops/crypto_ed25519.h"
-#include "or/hs_descriptor.h"
-#include "or/routerparse.h"
+#include "feature/hs/hs_descriptor.h"
+#include "feature/nodelist/routerparse.h"
#include "test/fuzz/fuzzing.h"
diff --git a/src/test/fuzz/fuzz_http.c b/src/test/fuzz/fuzz_http.c
index 772f2099b6..61dc2144b4 100644
--- a/src/test/fuzz/fuzz_http.c
+++ b/src/test/fuzz/fuzz_http.c
@@ -6,15 +6,15 @@
#define BUFFERS_PRIVATE
#define DIRECTORY_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/err/backtrace.h"
#include "lib/container/buffers.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/directory.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "feature/dircache/directory.h"
#include "lib/log/torlog.h"
-#include "or/dir_connection_st.h"
+#include "feature/dircommon/dir_connection_st.h"
#include "test/fuzz/fuzzing.h"
diff --git a/src/test/fuzz/fuzz_http_connect.c b/src/test/fuzz/fuzz_http_connect.c
index bf0a9deba6..184bb52ee2 100644
--- a/src/test/fuzz/fuzz_http_connect.c
+++ b/src/test/fuzz/fuzz_http_connect.c
@@ -6,17 +6,17 @@
#define BUFFERS_PRIVATE
#define CONNECTION_EDGE_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/err/backtrace.h"
#include "lib/container/buffers.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/proto_socks.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "core/proto/proto_socks.h"
#include "lib/log/torlog.h"
-#include "or/entry_connection_st.h"
-#include "or/socks_request_st.h"
+#include "core/or/entry_connection_st.h"
+#include "core/or/socks_request_st.h"
#include "test/fuzz/fuzzing.h"
diff --git a/src/test/fuzz/fuzz_iptsv2.c b/src/test/fuzz/fuzz_iptsv2.c
index e4ec7fffce..a3082f4d0e 100644
--- a/src/test/fuzz/fuzz_iptsv2.c
+++ b/src/test/fuzz/fuzz_iptsv2.c
@@ -1,12 +1,12 @@
/* Copyright (c) 2016-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define ROUTERPARSE_PRIVATE
-#include "or/or.h"
-#include "or/routerparse.h"
-#include "or/rendcommon.h"
+#include "core/or/or.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/rend/rendcommon.h"
#include "lib/crypt_ops/crypto_ed25519.h"
-#include "or/rend_service_descriptor_st.h"
+#include "feature/rend/rend_service_descriptor_st.h"
#include "test/fuzz/fuzzing.h"
diff --git a/src/test/fuzz/fuzz_microdesc.c b/src/test/fuzz/fuzz_microdesc.c
index a7fe1bb66d..fa9676372d 100644
--- a/src/test/fuzz/fuzz_microdesc.c
+++ b/src/test/fuzz/fuzz_microdesc.c
@@ -1,9 +1,9 @@
/* Copyright (c) 2016-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define ROUTERPARSE_PRIVATE
-#include "or/or.h"
-#include "or/routerparse.h"
-#include "or/microdesc.h"
+#include "core/or/or.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/microdesc.h"
#include "lib/crypt_ops/crypto_ed25519.h"
#include "test/fuzz/fuzzing.h"
diff --git a/src/test/fuzz/fuzz_vrs.c b/src/test/fuzz/fuzz_vrs.c
index 7d28ef1c7a..8c96851b1f 100644
--- a/src/test/fuzz/fuzz_vrs.c
+++ b/src/test/fuzz/fuzz_vrs.c
@@ -2,14 +2,14 @@
/* See LICENSE for licensing information */
#define ROUTERPARSE_PRIVATE
#define NETWORKSTATUS_PRIVATE
-#include "or/or.h"
-#include "or/routerparse.h"
+#include "core/or/or.h"
+#include "feature/nodelist/routerparse.h"
#include "lib/memarea/memarea.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
-#include "or/networkstatus_st.h"
-#include "or/vote_routerstatus_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/vote_routerstatus_st.h"
#include "lib/crypt_ops/crypto_ed25519.h"
#include "test/fuzz/fuzzing.h"
diff --git a/src/test/fuzz/fuzzing_common.c b/src/test/fuzz/fuzzing_common.c
index c947ebfceb..0b3483bf66 100644
--- a/src/test/fuzz/fuzzing_common.c
+++ b/src/test/fuzz/fuzzing_common.c
@@ -2,9 +2,9 @@
/* See LICENSE for licensing information */
#define CRYPTO_ED25519_PRIVATE
#include "orconfig.h"
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/err/backtrace.h"
-#include "or/config.h"
+#include "app/config/config.h"
#include "test/fuzz/fuzzing.h"
#include "lib/compress/compress.h"
#include "lib/crypt_ops/crypto.h"
diff --git a/src/test/hs_test_helpers.c b/src/test/hs_test_helpers.c
index cb7b1fe1b7..afe3eafa2f 100644
--- a/src/test/hs_test_helpers.c
+++ b/src/test/hs_test_helpers.c
@@ -1,12 +1,12 @@
/* Copyright (c) 2017-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/crypt_ops/crypto_ed25519.h"
#include "test/test.h"
-#include "or/torcert.h"
+#include "feature/nodelist/torcert.h"
-#include "or/hs_common.h"
+#include "feature/hs/hs_common.h"
#include "test/hs_test_helpers.h"
hs_desc_intro_point_t *
diff --git a/src/test/hs_test_helpers.h b/src/test/hs_test_helpers.h
index 5c0262207a..b7c2714769 100644
--- a/src/test/hs_test_helpers.h
+++ b/src/test/hs_test_helpers.h
@@ -5,7 +5,7 @@
#define TOR_HS_TEST_HELPERS_H
#include "trunnel/ed25519_cert.h"
-#include "or/hs_descriptor.h"
+#include "feature/hs/hs_descriptor.h"
/* Set of functions to help build and test descriptors. */
hs_desc_intro_point_t *hs_helper_build_intro_point(
diff --git a/src/test/log_test_helpers.h b/src/test/log_test_helpers.h
index 7c38504527..fc9768c125 100644
--- a/src/test/log_test_helpers.h
+++ b/src/test/log_test_helpers.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2014-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#ifndef TOR_LOG_TEST_HELPERS_H
#define TOR_LOG_TEST_HELPERS_H
diff --git a/src/test/rend_test_helpers.c b/src/test/rend_test_helpers.c
index 31af58c278..85a679a967 100644
--- a/src/test/rend_test_helpers.c
+++ b/src/test/rend_test_helpers.c
@@ -1,15 +1,15 @@
/* Copyright (c) 2014-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "test/test.h"
-#include "or/rendcommon.h"
+#include "feature/rend/rendcommon.h"
#include "test/rend_test_helpers.h"
-#include "or/extend_info_st.h"
-#include "or/rend_intro_point_st.h"
-#include "or/rend_service_descriptor_st.h"
+#include "core/or/extend_info_st.h"
+#include "feature/rend/rend_intro_point_st.h"
+#include "feature/rend/rend_service_descriptor_st.h"
void
generate_desc(int time_diff, rend_encoded_v2_service_descriptor_t **desc,
diff --git a/src/test/rend_test_helpers.h b/src/test/rend_test_helpers.h
index aca675b2a4..103e143ec6 100644
--- a/src/test/rend_test_helpers.h
+++ b/src/test/rend_test_helpers.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2014-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#ifndef TOR_REND_TEST_HELPERS_H
#define TOR_REND_TEST_HELPERS_H
diff --git a/src/test/test.c b/src/test/test.c
index d6be5ea2e7..2addeec968 100644
--- a/src/test/test.c
+++ b/src/test/test.c
@@ -12,7 +12,7 @@
#include "lib/crypt_ops/crypto_dh.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/or_state_st.h"
+#include "app/config/or_state_st.h"
#include <stdio.h>
#ifdef HAVE_FCNTL_H
@@ -42,34 +42,34 @@
long int lround(double x);
double fabs(double x);
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/err/backtrace.h"
#include "lib/container/buffers.h"
-#include "or/circuitlist.h"
-#include "or/circuitstats.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuitstats.h"
#include "lib/compress/compress.h"
-#include "or/config.h"
-#include "or/connection_edge.h"
-#include "or/rendcommon.h"
-#include "or/rendcache.h"
+#include "app/config/config.h"
+#include "core/or/connection_edge.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/rend/rendcache.h"
#include "test/test.h"
-#include "or/main.h"
+#include "core/mainloop/main.h"
#include "lib/memarea/memarea.h"
-#include "or/onion.h"
-#include "or/onion_ntor.h"
-#include "or/onion_fast.h"
-#include "or/onion_tap.h"
-#include "or/policies.h"
-#include "or/rephist.h"
-#include "or/routerparse.h"
-#include "or/statefile.h"
+#include "core/crypto/onion.h"
+#include "core/crypto/onion_ntor.h"
+#include "core/crypto/onion_fast.h"
+#include "core/crypto/onion_tap.h"
+#include "core/or/policies.h"
+#include "feature/stats/rephist.h"
+#include "feature/nodelist/routerparse.h"
+#include "app/config/statefile.h"
#include "lib/crypt_ops/crypto_curve25519.h"
-#include "or/extend_info_st.h"
-#include "or/or_circuit_st.h"
-#include "or/rend_encoded_v2_service_descriptor_st.h"
-#include "or/rend_intro_point_st.h"
-#include "or/rend_service_descriptor_st.h"
+#include "core/or/extend_info_st.h"
+#include "core/or/or_circuit_st.h"
+#include "feature/rend/rend_encoded_v2_service_descriptor_st.h"
+#include "feature/rend/rend_intro_point_st.h"
+#include "feature/rend/rend_service_descriptor_st.h"
/** Run unit tests for the onion handshake code. */
static void
diff --git a/src/test/test_accounting.c b/src/test/test_accounting.c
index 7b9511dc20..7721a9eb99 100644
--- a/src/test/test_accounting.c
+++ b/src/test/test_accounting.c
@@ -1,15 +1,15 @@
/* Copyright (c) 2014-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
#define HIBERNATE_PRIVATE
-#include "or/hibernate.h"
-#include "or/config.h"
+#include "feature/hibernate/hibernate.h"
+#include "app/config/config.h"
#define STATEFILE_PRIVATE
-#include "or/statefile.h"
+#include "app/config/statefile.h"
-#include "or/or_state_st.h"
+#include "app/config/or_state_st.h"
#define NS_MODULE accounting
diff --git a/src/test/test_addr.c b/src/test/test_addr.c
index 1069e25b43..9ab921c5b6 100644
--- a/src/test/test_addr.c
+++ b/src/test/test_addr.c
@@ -5,10 +5,10 @@
#define ADDRESSMAP_PRIVATE
#include "orconfig.h"
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "test/test.h"
-#include "or/addressmap.h"
+#include "feature/client/addressmap.h"
#include "test/log_test_helpers.h"
#ifdef HAVE_SYS_UN_H
diff --git a/src/test/test_address.c b/src/test/test_address.c
index 52ca5137e6..abe7c2c0ad 100644
--- a/src/test/test_address.c
+++ b/src/test/test_address.c
@@ -23,7 +23,7 @@
#include <net/if.h>
#endif /* defined(HAVE_IFCONF_TO_SMARTLIST) */
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/net/address.h"
#include "test/test.h"
#include "test/log_test_helpers.h"
diff --git a/src/test/test_address_set.c b/src/test/test_address_set.c
index ec4e6b7e87..f231740011 100644
--- a/src/test/test_address_set.c
+++ b/src/test/test_address_set.c
@@ -1,19 +1,19 @@
/* Copyright (c) 2017-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/address_set.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/routerlist.h"
-#include "or/torcert.h"
-
-#include "or/microdesc_st.h"
-#include "or/networkstatus_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerstatus_st.h"
+#include "core/or/address_set.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/torcert.h"
+
+#include "feature/nodelist/microdesc_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerstatus_st.h"
#include "test/test.h"
diff --git a/src/test/test_bridges.c b/src/test/test_bridges.c
index 685027c0e0..bdab148901 100644
--- a/src/test/test_bridges.c
+++ b/src/test/test_bridges.c
@@ -11,11 +11,11 @@
#include <stdbool.h>
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/net/address.h"
-#include "or/bridges.h"
-#include "or/config.h"
-#include "or/transports.h"
+#include "feature/client/bridges.h"
+#include "app/config/config.h"
+#include "feature/client/transports.h"
/* Test suite stuff */
#include "test/test.h"
diff --git a/src/test/test_bt_cl.c b/src/test/test_bt_cl.c
index 3f7b0a203a..716cff36e0 100644
--- a/src/test/test_bt_cl.c
+++ b/src/test/test_bt_cl.c
@@ -7,7 +7,7 @@
/* To prevent 'assert' from going away. */
#undef TOR_COVERAGE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/err/backtrace.h"
#include "lib/log/torlog.h"
diff --git a/src/test/test_buffers.c b/src/test/test_buffers.c
index 604f1422c1..477066f699 100644
--- a/src/test/test_buffers.c
+++ b/src/test/test_buffers.c
@@ -5,14 +5,14 @@
#define BUFFERS_PRIVATE
#define PROTO_HTTP_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/container/buffers.h"
#include "lib/tls/buffers_tls.h"
#include "lib/tls/tortls.h"
#include "lib/compress/compress.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/proto_http.h"
-#include "or/proto_socks.h"
+#include "core/proto/proto_http.h"
+#include "core/proto/proto_socks.h"
#include "test/test.h"
/** Run unit tests for buffers.c */
diff --git a/src/test/test_bwmgt.c b/src/test/test_bwmgt.c
index 4cfca6c776..7aa053f6c3 100644
--- a/src/test/test_bwmgt.c
+++ b/src/test/test_bwmgt.c
@@ -8,7 +8,7 @@
#define TOKEN_BUCKET_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
#include "lib/evloop/token_bucket.h"
diff --git a/src/test/test_cell_formats.c b/src/test/test_cell_formats.c
index da5e5defd1..2753c42191 100644
--- a/src/test/test_cell_formats.c
+++ b/src/test/test_cell_formats.c
@@ -7,21 +7,21 @@
#define CONNECTION_EDGE_PRIVATE
#define RELAY_PRIVATE
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/connection_edge.h"
-#include "or/connection_or.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "core/or/connection_edge.h"
+#include "core/or/connection_or.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/onion.h"
-#include "or/onion_tap.h"
-#include "or/onion_fast.h"
-#include "or/onion_ntor.h"
-#include "or/relay.h"
-
-#include "or/cell_st.h"
-#include "or/cell_queue_st.h"
-#include "or/var_cell_st.h"
+#include "core/crypto/onion.h"
+#include "core/crypto/onion_tap.h"
+#include "core/crypto/onion_fast.h"
+#include "core/crypto/onion_ntor.h"
+#include "core/or/relay.h"
+
+#include "core/or/cell_st.h"
+#include "core/or/cell_queue_st.h"
+#include "core/or/var_cell_st.h"
#include "test/test.h"
diff --git a/src/test/test_cell_queue.c b/src/test/test_cell_queue.c
index 3369511afc..d74bb9c622 100644
--- a/src/test/test_cell_queue.c
+++ b/src/test/test_cell_queue.c
@@ -3,15 +3,15 @@
#define CIRCUITLIST_PRIVATE
#define RELAY_PRIVATE
-#include "or/or.h"
-#include "or/circuitlist.h"
-#include "or/relay.h"
+#include "core/or/or.h"
+#include "core/or/circuitlist.h"
+#include "core/or/relay.h"
#include "test/test.h"
-#include "or/cell_st.h"
-#include "or/cell_queue_st.h"
-#include "or/or_circuit_st.h"
-#include "or/origin_circuit_st.h"
+#include "core/or/cell_st.h"
+#include "core/or/cell_queue_st.h"
+#include "core/or/or_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
static void
test_cq_manip(void *arg)
diff --git a/src/test/test_channel.c b/src/test/test_channel.c
index 53c133ecb0..26af8de917 100644
--- a/src/test/test_channel.c
+++ b/src/test/test_channel.c
@@ -3,28 +3,28 @@
#define TOR_CHANNEL_INTERNAL_
#define CHANNEL_PRIVATE_
-#include "or/or.h"
-#include "or/channel.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
/* For channel_note_destroy_not_pending */
#define CIRCUITLIST_PRIVATE
-#include "or/circuitlist.h"
-#include "or/circuitmux.h"
-#include "or/circuitmux_ewma.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuitmux.h"
+#include "core/or/circuitmux_ewma.h"
/* For var_cell_free */
-#include "or/connection_or.h"
+#include "core/or/connection_or.h"
#include "lib/crypt_ops/crypto_rand.h"
/* For packed_cell stuff */
#define RELAY_PRIVATE
-#include "or/relay.h"
+#include "core/or/relay.h"
/* For init/free stuff */
-#include "or/scheduler.h"
-#include "or/networkstatus.h"
-
-#include "or/cell_st.h"
-#include "or/networkstatus_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/routerstatus_st.h"
-#include "or/var_cell_st.h"
+#include "core/or/scheduler.h"
+#include "feature/nodelist/networkstatus.h"
+
+#include "core/or/cell_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "feature/nodelist/routerstatus_st.h"
+#include "core/or/var_cell_st.h"
/* Test suite stuff */
#include "test/log_test_helpers.h"
diff --git a/src/test/test_channelpadding.c b/src/test/test_channelpadding.c
index ff2ab8daab..5d696b8b80 100644
--- a/src/test/test_channelpadding.c
+++ b/src/test/test_channelpadding.c
@@ -5,28 +5,28 @@
#define MAIN_PRIVATE
#define NETWORKSTATUS_PRIVATE
#define TOR_TIMERS_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
#include "lib/testsupport/testsupport.h"
-#include "or/connection.h"
-#include "or/connection_or.h"
-#include "or/channel.h"
-#include "or/channeltls.h"
-#include "or/channelpadding.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_or.h"
+#include "core/or/channel.h"
+#include "core/or/channeltls.h"
+#include "core/or/channelpadding.h"
#include "lib/evloop/compat_libevent.h"
-#include "or/config.h"
+#include "app/config/config.h"
#include "lib/time/compat_time.h"
-#include "or/main.h"
-#include "or/networkstatus.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/networkstatus.h"
#include "test/log_test_helpers.h"
#include "lib/tls/tortls.h"
#include "lib/evloop/timers.h"
#include "lib/container/buffers.h"
-#include "or/cell_st.h"
-#include "or/networkstatus_st.h"
-#include "or/or_connection_st.h"
-#include "or/routerstatus_st.h"
+#include "core/or/cell_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "core/or/or_connection_st.h"
+#include "feature/nodelist/routerstatus_st.h"
int channelpadding_get_netflow_inactive_timeout_ms(channel_t *chan);
int64_t channelpadding_compute_time_until_pad_for_netflow(channel_t *chan);
diff --git a/src/test/test_channeltls.c b/src/test/test_channeltls.c
index ad2b443cf2..787a30a85d 100644
--- a/src/test/test_channeltls.c
+++ b/src/test/test_channeltls.c
@@ -6,19 +6,19 @@
#include <math.h>
#define TOR_CHANNEL_INTERNAL_
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/net/address.h"
#include "lib/container/buffers.h"
-#include "or/channel.h"
-#include "or/channeltls.h"
-#include "or/connection.h"
-#include "or/connection_or.h"
-#include "or/config.h"
+#include "core/or/channel.h"
+#include "core/or/channeltls.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_or.h"
+#include "app/config/config.h"
/* For init/free stuff */
-#include "or/scheduler.h"
+#include "core/or/scheduler.h"
#include "lib/tls/tortls.h"
-#include "or/or_connection_st.h"
+#include "core/or/or_connection_st.h"
/* Test suite stuff */
#include "test/test.h"
diff --git a/src/test/test_checkdir.c b/src/test/test_checkdir.c
index a80c6ebd3a..652e308ed8 100644
--- a/src/test/test_checkdir.c
+++ b/src/test/test_checkdir.c
@@ -2,7 +2,7 @@
/* See LICENSE for licensing information */
#include "orconfig.h"
-#include "or/or.h"
+#include "core/or/or.h"
#ifdef _WIN32
#include <direct.h>
@@ -10,7 +10,7 @@
#include <dirent.h>
#endif
-#include "or/config.h"
+#include "app/config/config.h"
#include "test/test.h"
#ifdef HAVE_SYS_STAT_H
diff --git a/src/test/test_circuitbuild.c b/src/test/test_circuitbuild.c
index c09133c549..02eadecd98 100644
--- a/src/test/test_circuitbuild.c
+++ b/src/test/test_circuitbuild.c
@@ -5,15 +5,15 @@
#define CIRCUITBUILD_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
#include "test/test_helpers.h"
#include "test/log_test_helpers.h"
-#include "or/config.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
+#include "app/config/config.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
-#include "or/extend_info_st.h"
+#include "core/or/extend_info_st.h"
/* Dummy nodes smartlist for testing */
static smartlist_t dummy_nodes;
diff --git a/src/test/test_circuitlist.c b/src/test/test_circuitlist.c
index 4aa7c596ee..8dd7f5f5a9 100644
--- a/src/test/test_circuitlist.c
+++ b/src/test/test_circuitlist.c
@@ -5,17 +5,17 @@
#define CIRCUITBUILD_PRIVATE
#define CIRCUITLIST_PRIVATE
#define HS_CIRCUITMAP_PRIVATE
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuitmux_ewma.h"
-#include "or/hs_circuitmap.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuitmux_ewma.h"
+#include "feature/hs/hs_circuitmap.h"
#include "test/test.h"
#include "test/log_test_helpers.h"
-#include "or/or_circuit_st.h"
-#include "or/origin_circuit_st.h"
+#include "core/or/or_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
#include "lib/container/bitarray.h"
diff --git a/src/test/test_circuitmux.c b/src/test/test_circuitmux.c
index c2fd1ae68a..1d46f8de0d 100644
--- a/src/test/test_circuitmux.c
+++ b/src/test/test_circuitmux.c
@@ -5,15 +5,15 @@
#define CIRCUITMUX_PRIVATE
#define CIRCUITMUX_EWMA_PRIVATE
#define RELAY_PRIVATE
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/circuitmux.h"
-#include "or/circuitmux_ewma.h"
-#include "or/relay.h"
-#include "or/scheduler.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "core/or/circuitmux.h"
+#include "core/or/circuitmux_ewma.h"
+#include "core/or/relay.h"
+#include "core/or/scheduler.h"
#include "test/test.h"
-#include "or/destroy_cell_queue_st.h"
+#include "core/or/destroy_cell_queue_st.h"
/* XXXX duplicated function from test_circuitlist.c */
static channel_t *
diff --git a/src/test/test_circuitstats.c b/src/test/test_circuitstats.c
index 94ba6ed448..c3cfad88da 100644
--- a/src/test/test_circuitstats.c
+++ b/src/test/test_circuitstats.c
@@ -6,21 +6,21 @@
#define CIRCUITLIST_PRIVATE
#define CHANNEL_PRIVATE_
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
#include "test/test_helpers.h"
#include "test/log_test_helpers.h"
-#include "or/config.h"
-#include "or/circuitlist.h"
-#include "or/circuitbuild.h"
-#include "or/circuitstats.h"
-#include "or/circuituse.h"
-#include "or/channel.h"
-
-#include "or/cpath_build_state_st.h"
-#include "or/crypt_path_st.h"
-#include "or/extend_info_st.h"
-#include "or/origin_circuit_st.h"
+#include "app/config/config.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitstats.h"
+#include "core/or/circuituse.h"
+#include "core/or/channel.h"
+
+#include "core/or/cpath_build_state_st.h"
+#include "core/or/crypt_path_st.h"
+#include "core/or/extend_info_st.h"
+#include "core/or/origin_circuit_st.h"
void test_circuitstats_timeout(void *arg);
void test_circuitstats_hoplen(void *arg);
diff --git a/src/test/test_circuituse.c b/src/test/test_circuituse.c
index 2524e43c68..720adeac84 100644
--- a/src/test/test_circuituse.c
+++ b/src/test/test_circuituse.c
@@ -5,17 +5,17 @@
#define CIRCUITLIST_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
#include "test/test_helpers.h"
-#include "or/config.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
-#include "or/circuitbuild.h"
-#include "or/nodelist.h"
-
-#include "or/cpath_build_state_st.h"
-#include "or/origin_circuit_st.h"
+#include "app/config/config.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
+#include "core/or/circuitbuild.h"
+#include "feature/nodelist/nodelist.h"
+
+#include "core/or/cpath_build_state_st.h"
+#include "core/or/origin_circuit_st.h"
static void
test_circuit_is_available_for_use_ret_false_when_marked_for_close(void *arg)
diff --git a/src/test/test_compat_libevent.c b/src/test/test_compat_libevent.c
index 1262a3140e..3f505d013b 100644
--- a/src/test/test_compat_libevent.c
+++ b/src/test/test_compat_libevent.c
@@ -3,7 +3,7 @@
#define COMPAT_LIBEVENT_PRIVATE
#include "orconfig.h"
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
diff --git a/src/test/test_config.c b/src/test/test_config.c
index c7623d0c85..f7d3a6fbb2 100644
--- a/src/test/test_config.c
+++ b/src/test/test_config.c
@@ -8,44 +8,44 @@
#define CONFIG_PRIVATE
#define PT_PRIVATE
#define ROUTERSET_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/net/address.h"
-#include "or/addressmap.h"
-#include "or/bridges.h"
-#include "or/circuitmux_ewma.h"
-#include "or/circuitbuild.h"
-#include "or/config.h"
-#include "or/confparse.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
+#include "feature/client/addressmap.h"
+#include "feature/client/bridges.h"
+#include "core/or/circuitmux_ewma.h"
+#include "core/or/circuitbuild.h"
+#include "app/config/config.h"
+#include "app/config/confparse.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
#include "test/test.h"
-#include "or/connection_or.h"
-#include "or/control.h"
-#include "or/cpuworker.h"
-#include "or/dirserv.h"
-#include "or/dirauth/dirvote.h"
-#include "or/dns.h"
-#include "or/entrynodes.h"
-#include "or/transports.h"
-#include "or/ext_orport.h"
-#include "or/geoip.h"
-#include "or/hibernate.h"
-#include "or/main.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/rendclient.h"
-#include "or/rendservice.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerset.h"
-#include "or/statefile.h"
+#include "core/or/connection_or.h"
+#include "feature/control/control.h"
+#include "core/mainloop/cpuworker.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/dirauth/dirvote.h"
+#include "feature/relay/dns.h"
+#include "feature/client/entrynodes.h"
+#include "feature/client/transports.h"
+#include "feature/relay/ext_orport.h"
+#include "feature/stats/geoip.h"
+#include "feature/hibernate/hibernate.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "feature/rend/rendclient.h"
+#include "feature/rend/rendservice.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerset.h"
+#include "app/config/statefile.h"
#include "test/test_helpers.h"
-#include "or/dir_server_st.h"
-#include "or/port_cfg_st.h"
-#include "or/routerinfo_st.h"
+#include "feature/dirclient/dir_server_st.h"
+#include "core/or/port_cfg_st.h"
+#include "feature/nodelist/routerinfo_st.h"
#include "lib/fs/conffile.h"
#include "lib/meminfo/meminfo.h"
diff --git a/src/test/test_connection.c b/src/test/test_connection.c
index 674e2284e6..c423c6573f 100644
--- a/src/test/test_connection.c
+++ b/src/test/test_connection.c
@@ -7,29 +7,29 @@
#define MAIN_PRIVATE
#define CONNECTION_OR_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/hs_common.h"
-#include "or/main.h"
-#include "or/microdesc.h"
-#include "or/nodelist.h"
-#include "or/networkstatus.h"
-#include "or/rendcache.h"
-#include "or/directory.h"
-#include "or/connection_or.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "feature/hs/hs_common.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/nodelist.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/rend/rendcache.h"
+#include "feature/dircache/directory.h"
+#include "core/or/connection_or.h"
#include "test/test_connection.h"
#include "test/test_helpers.h"
-#include "or/dir_connection_st.h"
-#include "or/entry_connection_st.h"
-#include "or/node_st.h"
-#include "or/or_connection_st.h"
-#include "or/routerinfo_st.h"
-#include "or/socks_request_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "core/or/entry_connection_st.h"
+#include "feature/nodelist/node_st.h"
+#include "core/or/or_connection_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "core/or/socks_request_st.h"
static void * test_conn_get_basic_setup(const struct testcase_t *tc);
static int test_conn_get_basic_teardown(const struct testcase_t *tc,
diff --git a/src/test/test_conscache.c b/src/test/test_conscache.c
index 3d3a50297b..b5cbd72515 100644
--- a/src/test/test_conscache.c
+++ b/src/test/test_conscache.c
@@ -1,9 +1,9 @@
/* Copyright (c) 2017-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
-#include "or/config.h"
-#include "or/conscache.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "feature/dircache/conscache.h"
#include "lib/encoding/confline.h"
#include "test/test.h"
diff --git a/src/test/test_consdiff.c b/src/test/test_consdiff.c
index 38947a225b..b836befd22 100644
--- a/src/test/test_consdiff.c
+++ b/src/test/test_consdiff.c
@@ -4,10 +4,10 @@
#define CONSDIFF_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
-#include "or/consdiff.h"
+#include "feature/dircommon/consdiff.h"
#include "lib/memarea/memarea.h"
#include "test/log_test_helpers.h"
diff --git a/src/test/test_consdiffmgr.c b/src/test/test_consdiffmgr.c
index 959075903f..6c0601b504 100644
--- a/src/test/test_consdiffmgr.c
+++ b/src/test/test_consdiffmgr.c
@@ -3,20 +3,20 @@
#define CONSDIFFMGR_PRIVATE
-#include "or/or.h"
-#include "or/config.h"
-#include "or/conscache.h"
-#include "or/consdiff.h"
-#include "or/consdiffmgr.h"
-#include "or/cpuworker.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "feature/dircache/conscache.h"
+#include "feature/dircommon/consdiff.h"
+#include "feature/dircache/consdiffmgr.h"
+#include "core/mainloop/cpuworker.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/networkstatus.h"
-#include "or/routerparse.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/routerparse.h"
#include "lib/evloop/workqueue.h"
#include "lib/compress/compress.h"
#include "lib/encoding/confline.h"
-#include "or/networkstatus_st.h"
+#include "feature/nodelist/networkstatus_st.h"
#include "test/test.h"
#include "test/log_test_helpers.h"
diff --git a/src/test/test_containers.c b/src/test/test_containers.c
index 5c712a9b16..717eb0892a 100644
--- a/src/test/test_containers.c
+++ b/src/test/test_containers.c
@@ -4,9 +4,9 @@
/* See LICENSE for licensing information */
#include "orconfig.h"
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/fp_pair.h"
+#include "feature/dircommon/fp_pair.h"
#include "test/test.h"
#include "lib/container/bitarray.h"
diff --git a/src/test/test_controller.c b/src/test/test_controller.c
index 54c2e0a2ec..2ded04619c 100644
--- a/src/test/test_controller.c
+++ b/src/test/test_controller.c
@@ -2,23 +2,23 @@
/* See LICENSE for licensing information */
#define CONTROL_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/crypt_ops/crypto_ed25519.h"
-#include "or/bridges.h"
-#include "or/control.h"
-#include "or/entrynodes.h"
-#include "or/hs_common.h"
-#include "or/networkstatus.h"
-#include "or/rendservice.h"
-#include "or/routerlist.h"
-#include "or/nodelist.h"
+#include "feature/client/bridges.h"
+#include "feature/control/control.h"
+#include "feature/client/entrynodes.h"
+#include "feature/hs/hs_common.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/rend/rendservice.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/nodelist.h"
#include "test/test.h"
#include "test/test_helpers.h"
-#include "or/control_connection_st.h"
-#include "or/download_status_st.h"
-#include "or/microdesc_st.h"
-#include "or/node_st.h"
+#include "feature/control/control_connection_st.h"
+#include "feature/dirclient/download_status_st.h"
+#include "feature/nodelist/microdesc_st.h"
+#include "feature/nodelist/node_st.h"
static void
test_add_onion_helper_keyarg_v3(void *arg)
diff --git a/src/test/test_controller_events.c b/src/test/test_controller_events.c
index 33a45a99cc..e935b70428 100644
--- a/src/test/test_controller_events.c
+++ b/src/test/test_controller_events.c
@@ -4,16 +4,16 @@
#define CONNECTION_PRIVATE
#define TOR_CHANNEL_INTERNAL_
#define CONTROL_PRIVATE
-#include "or/or.h"
-#include "or/channel.h"
-#include "or/channeltls.h"
-#include "or/circuitlist.h"
-#include "or/connection.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "core/or/channel.h"
+#include "core/or/channeltls.h"
+#include "core/or/circuitlist.h"
+#include "core/mainloop/connection.h"
+#include "feature/control/control.h"
#include "test/test.h"
-#include "or/or_circuit_st.h"
-#include "or/origin_circuit_st.h"
+#include "core/or/or_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
static void
add_testing_cell_stats_entry(circuit_t *circ, uint8_t command,
diff --git a/src/test/test_crypto.c b/src/test/test_crypto.c
index 2e38dfc279..2124e22196 100644
--- a/src/test/test_crypto.c
+++ b/src/test/test_crypto.c
@@ -6,7 +6,7 @@
#include "orconfig.h"
#define CRYPTO_CURVE25519_PRIVATE
#define CRYPTO_RAND_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
#include "lib/crypt_ops/aes.h"
#include "siphash.h"
diff --git a/src/test/test_crypto_slow.c b/src/test/test_crypto_slow.c
index 7c1dfa0a93..88b31ad9af 100644
--- a/src/test/test_crypto_slow.c
+++ b/src/test/test_crypto_slow.c
@@ -5,7 +5,7 @@
#include "orconfig.h"
#define CRYPTO_S2K_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
#include "lib/crypt_ops/crypto_curve25519.h"
#include "lib/crypt_ops/crypto_ed25519.h"
diff --git a/src/test/test_dir.c b/src/test/test_dir.c
index a86b2a9f67..bda56b3a8e 100644
--- a/src/test/test_dir.c
+++ b/src/test/test_dir.c
@@ -17,51 +17,51 @@
#define NETWORKSTATUS_PRIVATE
#define RELAY_PRIVATE
-#include "or/or.h"
-#include "or/bridges.h"
-#include "or/connection.h"
-#include "or/confparse.h"
-#include "or/config.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "feature/client/bridges.h"
+#include "core/mainloop/connection.h"
+#include "app/config/confparse.h"
+#include "app/config/config.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_ed25519.h"
#include "lib/crypt_ops/crypto_format.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/directory.h"
-#include "or/dirserv.h"
-#include "or/dirauth/dirvote.h"
-#include "or/entrynodes.h"
-#include "or/fp_pair.h"
-#include "or/hibernate.h"
+#include "feature/dircache/directory.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/dirauth/dirvote.h"
+#include "feature/client/entrynodes.h"
+#include "feature/dircommon/fp_pair.h"
+#include "feature/hibernate/hibernate.h"
#include "lib/memarea/memarea.h"
#include "lib/osinfo/uname.h"
-#include "or/networkstatus.h"
-#include "or/router.h"
-#include "or/routerkeys.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/routerset.h"
-#include "or/dirauth/shared_random_state.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/relay/router.h"
+#include "feature/relay/routerkeys.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/routerset.h"
+#include "feature/dirauth/shared_random_state.h"
#include "test/test.h"
#include "test/test_dir_common.h"
-#include "or/torcert.h"
-#include "or/relay.h"
+#include "feature/nodelist/torcert.h"
+#include "core/or/relay.h"
#include "test/log_test_helpers.h"
-#include "or/voting_schedule.h"
+#include "feature/dircommon/voting_schedule.h"
#include "lib/compress/compress.h"
-#include "or/addr_policy_st.h"
-#include "or/authority_cert_st.h"
-#include "or/document_signature_st.h"
-#include "or/extrainfo_st.h"
-#include "or/networkstatus_st.h"
-#include "or/networkstatus_voter_info_st.h"
-#include "or/ns_detached_signatures_st.h"
-#include "or/port_cfg_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerlist_st.h"
-#include "or/tor_version_st.h"
-#include "or/vote_microdesc_hash_st.h"
-#include "or/vote_routerstatus_st.h"
+#include "core/or/addr_policy_st.h"
+#include "feature/nodelist/authority_cert_st.h"
+#include "feature/nodelist/document_signature_st.h"
+#include "feature/nodelist/extrainfo_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/networkstatus_voter_info_st.h"
+#include "feature/dirauth/ns_detached_signatures_st.h"
+#include "core/or/port_cfg_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerlist_st.h"
+#include "core/or/tor_version_st.h"
+#include "feature/dirauth/vote_microdesc_hash_st.h"
+#include "feature/nodelist/vote_routerstatus_st.h"
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
diff --git a/src/test/test_dir_common.c b/src/test/test_dir_common.c
index a758421cde..e65e2b0111 100644
--- a/src/test/test_dir_common.c
+++ b/src/test/test_dir_common.c
@@ -6,19 +6,19 @@
#include "orconfig.h"
#define DIRVOTE_PRIVATE
#include "test/test.h"
-#include "or/or.h"
-#include "or/dirauth/dirvote.h"
-#include "or/nodelist.h"
-#include "or/routerlist.h"
+#include "core/or/or.h"
+#include "feature/dirauth/dirvote.h"
+#include "feature/nodelist/nodelist.h"
+#include "feature/nodelist/routerlist.h"
#include "test/test_dir_common.h"
-#include "or/voting_schedule.h"
+#include "feature/dircommon/voting_schedule.h"
-#include "or/authority_cert_st.h"
-#include "or/networkstatus_st.h"
-#include "or/networkstatus_voter_info_st.h"
-#include "or/routerinfo_st.h"
-#include "or/vote_microdesc_hash_st.h"
-#include "or/vote_routerstatus_st.h"
+#include "feature/nodelist/authority_cert_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/networkstatus_voter_info_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/dirauth/vote_microdesc_hash_st.h"
+#include "feature/nodelist/vote_routerstatus_st.h"
void dir_common_setup_vote(networkstatus_t **vote, time_t now);
networkstatus_t * dir_common_add_rs_and_parse(networkstatus_t *vote,
diff --git a/src/test/test_dir_common.h b/src/test/test_dir_common.h
index 7d5f55afe6..1e90228edb 100644
--- a/src/test/test_dir_common.h
+++ b/src/test/test_dir_common.h
@@ -3,9 +3,9 @@
* Copyright (c) 2007-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
-#include "or/networkstatus.h"
-#include "or/routerparse.h"
+#include "core/or/or.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/routerparse.h"
#define TEST_DIR_ROUTER_ID_1 3
#define TEST_DIR_ROUTER_ID_2 5
diff --git a/src/test/test_dir_handle_get.c b/src/test/test_dir_handle_get.c
index 90ca7d357c..571b0386e2 100644
--- a/src/test/test_dir_handle_get.c
+++ b/src/test/test_dir_handle_get.c
@@ -9,37 +9,37 @@
#define CONFIG_PRIVATE
#define RENDCACHE_PRIVATE
-#include "or/or.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/consdiffmgr.h"
-#include "or/directory.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "feature/dircache/consdiffmgr.h"
+#include "feature/dircache/directory.h"
#include "test/test.h"
#include "lib/compress/compress.h"
-#include "or/rendcommon.h"
-#include "or/rendcache.h"
-#include "or/router.h"
-#include "or/routerlist.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/rend/rendcache.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
#include "test/rend_test_helpers.h"
-#include "or/microdesc.h"
+#include "feature/nodelist/microdesc.h"
#include "test/test_helpers.h"
-#include "or/nodelist.h"
-#include "or/entrynodes.h"
-#include "or/routerparse.h"
-#include "or/networkstatus.h"
-#include "or/proto_http.h"
-#include "or/geoip.h"
-#include "or/dirserv.h"
-#include "or/dirauth/dirvote.h"
+#include "feature/nodelist/nodelist.h"
+#include "feature/client/entrynodes.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/networkstatus.h"
+#include "core/proto/proto_http.h"
+#include "feature/stats/geoip.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/dirauth/dirvote.h"
#include "test/log_test_helpers.h"
-#include "or/voting_schedule.h"
-
-#include "or/dir_connection_st.h"
-#include "or/dir_server_st.h"
-#include "or/networkstatus_st.h"
-#include "or/rend_encoded_v2_service_descriptor_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerlist_st.h"
+#include "feature/dircommon/voting_schedule.h"
+
+#include "feature/dircommon/dir_connection_st.h"
+#include "feature/dirclient/dir_server_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/rend/rend_encoded_v2_service_descriptor_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerlist_st.h"
#ifdef _WIN32
/* For mkdir() */
diff --git a/src/test/test_dns.c b/src/test/test_dns.c
index 1407a5c47e..8369f844f6 100644
--- a/src/test/test_dns.c
+++ b/src/test/test_dns.c
@@ -1,18 +1,18 @@
/* Copyright (c) 2015-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
#define DNS_PRIVATE
-#include "or/dns.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/router.h"
+#include "feature/relay/dns.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "feature/relay/router.h"
-#include "or/edge_connection_st.h"
-#include "or/or_circuit_st.h"
+#include "core/or/edge_connection_st.h"
+#include "core/or/or_circuit_st.h"
#define NS_MODULE dns
diff --git a/src/test/test_dos.c b/src/test/test_dos.c
index 4ba24292ca..b411e7b38a 100644
--- a/src/test/test_dos.c
+++ b/src/test/test_dos.c
@@ -5,20 +5,20 @@
#define TOR_CHANNEL_INTERNAL_
#define CIRCUITLIST_PRIVATE
-#include "or/or.h"
-#include "or/dos.h"
-#include "or/circuitlist.h"
+#include "core/or/or.h"
+#include "core/or/dos.h"
+#include "core/or/circuitlist.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/geoip.h"
-#include "or/channel.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/routerlist.h"
-
-#include "or/networkstatus_st.h"
-#include "or/or_connection_st.h"
-#include "or/routerstatus_st.h"
+#include "feature/stats/geoip.h"
+#include "core/or/channel.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "feature/nodelist/routerlist.h"
+
+#include "feature/nodelist/networkstatus_st.h"
+#include "core/or/or_connection_st.h"
+#include "feature/nodelist/routerstatus_st.h"
#include "test/test.h"
#include "test/log_test_helpers.h"
diff --git a/src/test/test_entryconn.c b/src/test/test_entryconn.c
index b23f12087e..bec70090e6 100644
--- a/src/test/test_entryconn.c
+++ b/src/test/test_entryconn.c
@@ -6,21 +6,21 @@
#define CONNECTION_PRIVATE
#define CONNECTION_EDGE_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
-#include "or/addressmap.h"
-#include "or/config.h"
-#include "or/confparse.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/nodelist.h"
+#include "feature/client/addressmap.h"
+#include "app/config/config.h"
+#include "app/config/confparse.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "feature/nodelist/nodelist.h"
-#include "or/hs_cache.h"
-#include "or/rendcache.h"
+#include "feature/hs/hs_cache.h"
+#include "feature/rend/rendcache.h"
-#include "or/entry_connection_st.h"
-#include "or/socks_request_st.h"
+#include "core/or/entry_connection_st.h"
+#include "core/or/socks_request_st.h"
#include "lib/encoding/confline.h"
diff --git a/src/test/test_entrynodes.c b/src/test/test_entrynodes.c
index 9c35cdaaf2..cafdeb6863 100644
--- a/src/test/test_entrynodes.c
+++ b/src/test/test_entrynodes.c
@@ -10,35 +10,35 @@
#define ROUTERLIST_PRIVATE
#define DIRECTORY_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
-#include "or/bridges.h"
-#include "or/circuitlist.h"
-#include "or/circuitbuild.h"
-#include "or/config.h"
-#include "or/confparse.h"
+#include "feature/client/bridges.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuitbuild.h"
+#include "app/config/config.h"
+#include "app/config/confparse.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/directory.h"
-#include "or/entrynodes.h"
-#include "or/nodelist.h"
-#include "or/networkstatus.h"
-#include "or/policies.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/routerset.h"
-#include "or/statefile.h"
-
-#include "or/cpath_build_state_st.h"
-#include "or/crypt_path_st.h"
-#include "or/dir_connection_st.h"
-#include "or/microdesc_st.h"
-#include "or/networkstatus_st.h"
-#include "or/node_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/or_state_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerstatus_st.h"
+#include "feature/dircache/directory.h"
+#include "feature/client/entrynodes.h"
+#include "feature/nodelist/nodelist.h"
+#include "feature/nodelist/networkstatus.h"
+#include "core/or/policies.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/routerset.h"
+#include "app/config/statefile.h"
+
+#include "core/or/cpath_build_state_st.h"
+#include "core/or/crypt_path_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "feature/nodelist/microdesc_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/node_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "app/config/or_state_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerstatus_st.h"
#include "test/test_helpers.h"
#include "test/log_test_helpers.h"
diff --git a/src/test/test_extorport.c b/src/test/test_extorport.c
index 4ddef4e43b..ff987563c6 100644
--- a/src/test/test_extorport.c
+++ b/src/test/test_extorport.c
@@ -4,17 +4,17 @@
#define CONNECTION_PRIVATE
#define EXT_ORPORT_PRIVATE
#define MAIN_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/container/buffers.h"
-#include "or/connection.h"
-#include "or/connection_or.h"
-#include "or/config.h"
-#include "or/control.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_or.h"
+#include "app/config/config.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/ext_orport.h"
-#include "or/main.h"
+#include "feature/relay/ext_orport.h"
+#include "core/mainloop/main.h"
-#include "or/or_connection_st.h"
+#include "core/or/or_connection_st.h"
#include "test/test.h"
diff --git a/src/test/test_geoip.c b/src/test/test_geoip.c
index 9aa46786ed..9df8ea7988 100644
--- a/src/test/test_geoip.c
+++ b/src/test/test_geoip.c
@@ -8,9 +8,9 @@
/* These macros pull in declarations for some functions and structures that
* are typically file-private. */
#define GEOIP_PRIVATE
-#include "or/or.h"
-#include "or/config.h"
-#include "or/geoip.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "feature/stats/geoip.h"
#include "test/test.h"
/* Record odd numbered fake-IPs using ipv6, even numbered fake-IPs
diff --git a/src/test/test_guardfraction.c b/src/test/test_guardfraction.c
index 3c293e378b..f45a723295 100644
--- a/src/test/test_guardfraction.c
+++ b/src/test/test_guardfraction.c
@@ -6,16 +6,16 @@
#define NETWORKSTATUS_PRIVATE
#include "orconfig.h"
-#include "or/or.h"
-#include "or/config.h"
-#include "or/dirserv.h"
-#include "or/entrynodes.h"
-#include "or/routerparse.h"
-#include "or/networkstatus.h"
-
-#include "or/networkstatus_st.h"
-#include "or/vote_microdesc_hash_st.h"
-#include "or/vote_routerstatus_st.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "feature/dircache/dirserv.h"
+#include "feature/client/entrynodes.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/networkstatus.h"
+
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/dirauth/vote_microdesc_hash_st.h"
+#include "feature/nodelist/vote_routerstatus_st.h"
#include "test/test.h"
#include "test/test_helpers.h"
diff --git a/src/test/test_helpers.c b/src/test/test_helpers.c
index 6d410af526..c666bca59a 100644
--- a/src/test/test_helpers.c
+++ b/src/test/test_helpers.c
@@ -12,24 +12,24 @@
#define MAIN_PRIVATE
#include "orconfig.h"
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/container/buffers.h"
-#include "or/config.h"
-#include "or/confparse.h"
-#include "or/connection.h"
+#include "app/config/config.h"
+#include "app/config/confparse.h"
+#include "core/mainloop/connection.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/main.h"
-#include "or/nodelist.h"
-#include "or/relay.h"
-#include "or/routerlist.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/relay.h"
+#include "feature/nodelist/routerlist.h"
#include "lib/encoding/confline.h"
-#include "or/cell_st.h"
-#include "or/connection_st.h"
-#include "or/node_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/routerlist_st.h"
+#include "core/or/cell_st.h"
+#include "core/or/connection_st.h"
+#include "feature/nodelist/node_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "feature/nodelist/routerlist_st.h"
#include "test/test.h"
#include "test/test_helpers.h"
@@ -41,7 +41,7 @@ DISABLE_GCC_WARNING(overlength-strings)
* at large. */
#endif
#include "test_descriptors.inc"
-#include "or/circuitlist.h"
+#include "core/or/circuitlist.h"
#ifdef HAVE_CFLAG_WOVERLENGTH_STRINGS
ENABLE_GCC_WARNING(overlength-strings)
#endif
diff --git a/src/test/test_helpers.h b/src/test/test_helpers.h
index c6339d97fa..3196c93e6b 100644
--- a/src/test/test_helpers.h
+++ b/src/test/test_helpers.h
@@ -4,7 +4,7 @@
#ifndef TOR_TEST_HELPERS_H
#define TOR_TEST_HELPERS_H
-#include "or/or.h"
+#include "core/or/or.h"
const char *get_yesterday_date_str(void);
diff --git a/src/test/test_hs.c b/src/test/test_hs.c
index b17e8cf21f..135df8e9f3 100644
--- a/src/test/test_hs.c
+++ b/src/test/test_hs.c
@@ -12,21 +12,21 @@
#define RENDSERVICE_PRIVATE
#define HS_SERVICE_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
-#include "or/control.h"
-#include "or/config.h"
-#include "or/hs_common.h"
-#include "or/rendcommon.h"
-#include "or/rendservice.h"
-#include "or/routerlist.h"
-#include "or/routerset.h"
-#include "or/circuitbuild.h"
-
-#include "or/node_st.h"
-#include "or/rend_encoded_v2_service_descriptor_st.h"
-#include "or/rend_intro_point_st.h"
-#include "or/routerinfo_st.h"
+#include "feature/control/control.h"
+#include "app/config/config.h"
+#include "feature/hs/hs_common.h"
+#include "feature/rend/rendcommon.h"
+#include "feature/rend/rendservice.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerset.h"
+#include "core/or/circuitbuild.h"
+
+#include "feature/nodelist/node_st.h"
+#include "feature/rend/rend_encoded_v2_service_descriptor_st.h"
+#include "feature/rend/rend_intro_point_st.h"
+#include "feature/nodelist/routerinfo_st.h"
#include "test/test_helpers.h"
diff --git a/src/test/test_hs_cache.c b/src/test/test_hs_cache.c
index c22cc46386..c1a69af829 100644
--- a/src/test/test_hs_cache.c
+++ b/src/test/test_hs_cache.c
@@ -11,16 +11,16 @@
#define HS_CACHE_PRIVATE
#include "trunnel/ed25519_cert.h"
-#include "or/hs_cache.h"
-#include "or/rendcache.h"
-#include "or/directory.h"
-#include "or/networkstatus.h"
-#include "or/connection.h"
-#include "or/proto_http.h"
+#include "feature/hs/hs_cache.h"
+#include "feature/rend/rendcache.h"
+#include "feature/dircache/directory.h"
+#include "feature/nodelist/networkstatus.h"
+#include "core/mainloop/connection.h"
+#include "core/proto/proto_http.h"
#include "lib/crypt_ops/crypto_format.h"
-#include "or/dir_connection_st.h"
-#include "or/networkstatus_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "feature/nodelist/networkstatus_st.h"
#include "test/hs_test_helpers.h"
#include "test/test_helpers.h"
diff --git a/src/test/test_hs_cell.c b/src/test/test_hs_cell.c
index 4bb3c3f77d..b47929e8eb 100644
--- a/src/test/test_hs_cell.c
+++ b/src/test/test_hs_cell.c
@@ -15,9 +15,9 @@
#include "lib/crypt_ops/crypto_ed25519.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/hs_cell.h"
-#include "or/hs_intropoint.h"
-#include "or/hs_service.h"
+#include "feature/hs/hs_cell.h"
+#include "feature/hs/hs_intropoint.h"
+#include "feature/hs/hs_service.h"
/* Trunnel. */
#include "trunnel/hs/cell_establish_intro.h"
diff --git a/src/test/test_hs_client.c b/src/test/test_hs_client.c
index 1458c358d2..57da03ca28 100644
--- a/src/test/test_hs_client.c
+++ b/src/test/test_hs_client.c
@@ -20,34 +20,34 @@
#include "test/rend_test_helpers.h"
#include "test/hs_test_helpers.h"
-#include "or/config.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto.h"
#include "lib/crypt_ops/crypto_dh.h"
-#include "or/channeltls.h"
-#include "or/directory.h"
-#include "or/main.h"
-#include "or/nodelist.h"
-#include "or/routerset.h"
-
-#include "or/hs_circuit.h"
-#include "or/hs_circuitmap.h"
-#include "or/hs_client.h"
-#include "or/hs_ident.h"
-#include "or/hs_cache.h"
-#include "or/circuitlist.h"
-#include "or/circuitbuild.h"
-#include "or/connection.h"
-#include "or/connection_edge.h"
-#include "or/networkstatus.h"
-
-#include "or/cpath_build_state_st.h"
-#include "or/crypt_path_st.h"
-#include "or/dir_connection_st.h"
-#include "or/entry_connection_st.h"
-#include "or/extend_info_st.h"
-#include "or/networkstatus_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/socks_request_st.h"
+#include "core/or/channeltls.h"
+#include "feature/dircache/directory.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/nodelist.h"
+#include "feature/nodelist/routerset.h"
+
+#include "feature/hs/hs_circuit.h"
+#include "feature/hs/hs_circuitmap.h"
+#include "feature/hs/hs_client.h"
+#include "feature/hs/hs_ident.h"
+#include "feature/hs/hs_cache.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuitbuild.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_edge.h"
+#include "feature/nodelist/networkstatus.h"
+
+#include "core/or/cpath_build_state_st.h"
+#include "core/or/crypt_path_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "core/or/entry_connection_st.h"
+#include "core/or/extend_info_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "core/or/socks_request_st.h"
static int
mock_connection_ap_handshake_send_begin(entry_connection_t *ap_conn)
diff --git a/src/test/test_hs_common.c b/src/test/test_hs_common.c
index 4c39570e30..f17cc8aeb3 100644
--- a/src/test/test_hs_common.c
+++ b/src/test/test_hs_common.c
@@ -16,29 +16,29 @@
#include "test/log_test_helpers.h"
#include "test/hs_test_helpers.h"
-#include "or/connection_edge.h"
+#include "core/or/connection_edge.h"
#include "lib/crypt_ops/crypto_format.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/hs_common.h"
-#include "or/hs_client.h"
-#include "or/hs_service.h"
-#include "or/config.h"
-#include "or/networkstatus.h"
-#include "or/directory.h"
-#include "or/dirauth/dirvote.h"
-#include "or/nodelist.h"
-#include "or/routerlist.h"
-#include "or/statefile.h"
-#include "or/circuitlist.h"
-#include "or/dirauth/shared_random.h"
-#include "or/voting_schedule.h"
-
-#include "or/microdesc_st.h"
-#include "or/networkstatus_st.h"
-#include "or/node_st.h"
-#include "or/or_state_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerstatus_st.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_client.h"
+#include "feature/hs/hs_service.h"
+#include "app/config/config.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/dircache/directory.h"
+#include "feature/dirauth/dirvote.h"
+#include "feature/nodelist/nodelist.h"
+#include "feature/nodelist/routerlist.h"
+#include "app/config/statefile.h"
+#include "core/or/circuitlist.h"
+#include "feature/dirauth/shared_random.h"
+#include "feature/dircommon/voting_schedule.h"
+
+#include "feature/nodelist/microdesc_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/node_st.h"
+#include "app/config/or_state_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerstatus_st.h"
/** Test the validation of HS v3 addresses */
static void
diff --git a/src/test/test_hs_config.c b/src/test/test_hs_config.c
index 33ad09313c..498d2df197 100644
--- a/src/test/test_hs_config.c
+++ b/src/test/test_hs_config.c
@@ -13,11 +13,11 @@
#include "test/test_helpers.h"
#include "test/log_test_helpers.h"
-#include "or/config.h"
-#include "or/hs_common.h"
-#include "or/hs_config.h"
-#include "or/hs_service.h"
-#include "or/rendservice.h"
+#include "app/config/config.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_config.h"
+#include "feature/hs/hs_service.h"
+#include "feature/rend/rendservice.h"
static int
helper_config_service(const char *conf, int validate_only)
diff --git a/src/test/test_hs_control.c b/src/test/test_hs_control.c
index 6e5e783372..48402030bf 100644
--- a/src/test/test_hs_control.c
+++ b/src/test/test_hs_control.c
@@ -8,16 +8,16 @@
#define CONTROL_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
-#include "or/control.h"
-#include "or/config.h"
-#include "or/hs_common.h"
-#include "or/hs_control.h"
-#include "or/nodelist.h"
-
-#include "or/node_st.h"
-#include "or/routerstatus_st.h"
+#include "feature/control/control.h"
+#include "app/config/config.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_control.h"
+#include "feature/nodelist/nodelist.h"
+
+#include "feature/nodelist/node_st.h"
+#include "feature/nodelist/routerstatus_st.h"
#include "lib/crypt_ops/crypto_format.h"
#include "test/test_helpers.h"
diff --git a/src/test/test_hs_descriptor.c b/src/test/test_hs_descriptor.c
index a017facd2c..9a7e66eaea 100644
--- a/src/test/test_hs_descriptor.c
+++ b/src/test/test_hs_descriptor.c
@@ -13,10 +13,10 @@
#include "lib/crypt_ops/crypto_digest.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "trunnel/ed25519_cert.h"
-#include "or/or.h"
-#include "or/hs_descriptor.h"
+#include "core/or/or.h"
+#include "feature/hs/hs_descriptor.h"
#include "test/test.h"
-#include "or/torcert.h"
+#include "feature/nodelist/torcert.h"
#include "test/hs_test_helpers.h"
#include "test/test_helpers.h"
diff --git a/src/test/test_hs_intropoint.c b/src/test/test_hs_intropoint.c
index 2445a8fcf1..7da376471b 100644
--- a/src/test/test_hs_intropoint.c
+++ b/src/test/test_hs_intropoint.c
@@ -15,20 +15,20 @@
#include "test/log_test_helpers.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/or.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
+#include "core/or/or.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
#include "ht.h"
-#include "or/relay.h"
-#include "or/rendservice.h"
+#include "core/or/relay.h"
+#include "feature/rend/rendservice.h"
-#include "or/hs_cell.h"
-#include "or/hs_circuitmap.h"
-#include "or/hs_common.h"
-#include "or/hs_intropoint.h"
-#include "or/hs_service.h"
+#include "feature/hs/hs_cell.h"
+#include "feature/hs/hs_circuitmap.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_intropoint.h"
+#include "feature/hs/hs_service.h"
-#include "or/or_circuit_st.h"
+#include "core/or/or_circuit_st.h"
/* Trunnel. */
#include "trunnel/hs/cell_establish_intro.h"
diff --git a/src/test/test_hs_ntor.c b/src/test/test_hs_ntor.c
index c524409003..eeb0491657 100644
--- a/src/test/test_hs_ntor.c
+++ b/src/test/test_hs_ntor.c
@@ -12,7 +12,7 @@
#include "lib/crypt_ops/crypto_curve25519.h"
#include "lib/crypt_ops/crypto_ed25519.h"
-#include "or/hs_ntor.h"
+#include "core/crypto/hs_ntor.h"
/* Test the HS ntor handshake. Simulate the sending of an encrypted INTRODUCE1
* cell, and verify the proper derivation of decryption keys on the other end.
diff --git a/src/test/test_hs_ntor_cl.c b/src/test/test_hs_ntor_cl.c
index 8643897db5..03e34968be 100644
--- a/src/test/test_hs_ntor_cl.c
+++ b/src/test/test_hs_ntor_cl.c
@@ -13,13 +13,13 @@
#include <stdlib.h>
#define ONION_NTOR_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/crypt_ops/crypto.h"
#include "lib/crypt_ops/crypto_curve25519.h"
#include "lib/crypt_ops/crypto_ed25519.h"
#include "lib/crypt_ops/crypto_format.h"
-#include "or/hs_ntor.h"
-#include "or/onion_ntor.h"
+#include "core/crypto/hs_ntor.h"
+#include "core/crypto/onion_ntor.h"
#define N_ARGS(n) STMT_BEGIN { \
if (argc < (n)) { \
diff --git a/src/test/test_hs_service.c b/src/test/test_hs_service.c
index e81a5eff4f..8074d260a4 100644
--- a/src/test/test_hs_service.c
+++ b/src/test/test_hs_service.c
@@ -28,39 +28,39 @@
#include "test/rend_test_helpers.h"
#include "test/hs_test_helpers.h"
-#include "or/or.h"
-#include "or/config.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/circuituse.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/circuituse.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/dirauth/dirvote.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/relay.h"
-#include "or/routerparse.h"
-#include "or/hs_common.h"
-#include "or/hs_config.h"
-#include "or/hs_ident.h"
-#include "or/hs_intropoint.h"
-#include "or/hs_ntor.h"
-#include "or/hs_circuit.h"
-#include "or/hs_circuitmap.h"
-#include "or/hs_service.h"
-#include "or/hs_client.h"
-#include "or/main.h"
-#include "or/rendservice.h"
-#include "or/statefile.h"
-#include "or/dirauth/shared_random_state.h"
-#include "or/voting_schedule.h"
-
-#include "or/cpath_build_state_st.h"
-#include "or/crypt_path_st.h"
-#include "or/networkstatus_st.h"
-#include "or/node_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/or_state_st.h"
-#include "or/routerinfo_st.h"
+#include "feature/dirauth/dirvote.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/relay.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/hs/hs_common.h"
+#include "feature/hs/hs_config.h"
+#include "feature/hs/hs_ident.h"
+#include "feature/hs/hs_intropoint.h"
+#include "core/crypto/hs_ntor.h"
+#include "feature/hs/hs_circuit.h"
+#include "feature/hs/hs_circuitmap.h"
+#include "feature/hs/hs_service.h"
+#include "feature/hs/hs_client.h"
+#include "core/mainloop/main.h"
+#include "feature/rend/rendservice.h"
+#include "app/config/statefile.h"
+#include "feature/dirauth/shared_random_state.h"
+#include "feature/dircommon/voting_schedule.h"
+
+#include "core/or/cpath_build_state_st.h"
+#include "core/or/crypt_path_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/node_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "app/config/or_state_st.h"
+#include "feature/nodelist/routerinfo_st.h"
/* Trunnel */
#include "trunnel/hs/cell_establish_intro.h"
diff --git a/src/test/test_introduce.c b/src/test/test_introduce.c
index f62c7f8808..cdfb70bdff 100644
--- a/src/test/test_introduce.c
+++ b/src/test/test_introduce.c
@@ -3,11 +3,11 @@
#include "orconfig.h"
#include "lib/crypt_ops/crypto.h"
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
#define RENDSERVICE_PRIVATE
-#include "or/rendservice.h"
+#include "feature/rend/rendservice.h"
static uint8_t v0_test_plaintext[] =
/* 20 bytes of rendezvous point nickname */
diff --git a/src/test/test_keypin.c b/src/test/test_keypin.c
index e7897a8473..9af12ff548 100644
--- a/src/test/test_keypin.c
+++ b/src/test/test_keypin.c
@@ -3,8 +3,8 @@
#include "orconfig.h"
#define KEYPIN_PRIVATE
-#include "or/or.h"
-#include "or/keypin.h"
+#include "core/or/or.h"
+#include "feature/dirauth/keypin.h"
#include "test/test.h"
diff --git a/src/test/test_link_handshake.c b/src/test/test_link_handshake.c
index 515fdc50a7..e0d12fb472 100644
--- a/src/test/test_link_handshake.c
+++ b/src/test/test_link_handshake.c
@@ -8,21 +8,21 @@
#define TOR_CHANNEL_INTERNAL_
#define TORTLS_PRIVATE
-#include "or/or.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_or.h"
-#include "or/channeltls.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_or.h"
+#include "core/or/channeltls.h"
#include "trunnel/link_handshake.h"
-#include "or/router.h"
-#include "or/routerkeys.h"
-#include "or/scheduler.h"
-#include "or/torcert.h"
-
-#include "or/or_connection_st.h"
-#include "or/or_handshake_certs_st.h"
-#include "or/or_handshake_state_st.h"
-#include "or/var_cell_st.h"
+#include "feature/relay/router.h"
+#include "feature/relay/routerkeys.h"
+#include "core/or/scheduler.h"
+#include "feature/nodelist/torcert.h"
+
+#include "core/or/or_connection_st.h"
+#include "core/or/or_handshake_certs_st.h"
+#include "core/or/or_handshake_state_st.h"
+#include "core/or/var_cell_st.h"
#include "lib/tls/tortls.h"
diff --git a/src/test/test_logging.c b/src/test/test_logging.c
index 48cdf2e6bc..2e3b8800ac 100644
--- a/src/test/test_logging.c
+++ b/src/test/test_logging.c
@@ -4,8 +4,8 @@
#define CONFIG_PRIVATE
#include "orconfig.h"
-#include "or/or.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
#include "lib/err/torerr.h"
#include "lib/log/torlog.h"
#include "test/test.h"
diff --git a/src/test/test_mainloop.c b/src/test/test_mainloop.c
index 469820b591..f85c224ae9 100644
--- a/src/test/test_mainloop.c
+++ b/src/test/test_mainloop.c
@@ -9,8 +9,8 @@
#include "test/test.h"
#include "test/log_test_helpers.h"
-#include "or/or.h"
-#include "or/main.h"
+#include "core/or/or.h"
+#include "core/mainloop/main.h"
static const uint64_t BILLION = 1000000000;
diff --git a/src/test/test_microdesc.c b/src/test/test_microdesc.c
index 2038f54984..ec4779ead1 100644
--- a/src/test/test_microdesc.c
+++ b/src/test/test_microdesc.c
@@ -2,21 +2,21 @@
/* See LICENSE for licensing information */
#include "orconfig.h"
-#include "or/or.h"
+#include "core/or/or.h"
-#include "or/config.h"
+#include "app/config/config.h"
#define DIRVOTE_PRIVATE
-#include "or/dirauth/dirvote.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/torcert.h"
-
-#include "or/microdesc_st.h"
-#include "or/networkstatus_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerstatus_st.h"
+#include "feature/dirauth/dirvote.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/nodelist/torcert.h"
+
+#include "feature/nodelist/microdesc_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerstatus_st.h"
#include "test/test.h"
diff --git a/src/test/test_nodelist.c b/src/test/test_nodelist.c
index 1dc8bc2d24..cdd5e95cf0 100644
--- a/src/test/test_nodelist.c
+++ b/src/test/test_nodelist.c
@@ -6,17 +6,17 @@
* \brief Unit tests for nodelist related functions.
**/
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/torcert.h"
-
-#include "or/microdesc_st.h"
-#include "or/networkstatus_st.h"
-#include "or/node_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerstatus_st.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "feature/nodelist/torcert.h"
+
+#include "feature/nodelist/microdesc_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/node_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerstatus_st.h"
#include "test/test.h"
diff --git a/src/test/test_ntor_cl.c b/src/test/test_ntor_cl.c
index 5711a9116a..744b42c9d9 100644
--- a/src/test/test_ntor_cl.c
+++ b/src/test/test_ntor_cl.c
@@ -6,10 +6,10 @@
#include <stdlib.h>
#define ONION_NTOR_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/crypt_ops/crypto.h"
#include "lib/crypt_ops/crypto_curve25519.h"
-#include "or/onion_ntor.h"
+#include "core/crypto/onion_ntor.h"
#define N_ARGS(n) STMT_BEGIN { \
if (argc < (n)) { \
diff --git a/src/test/test_oom.c b/src/test/test_oom.c
index 6c3ee1a27b..313a6b3114 100644
--- a/src/test/test_oom.c
+++ b/src/test/test_oom.c
@@ -7,21 +7,21 @@
#define BUFFERS_PRIVATE
#define CIRCUITLIST_PRIVATE
#define CONNECTION_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/container/buffers.h"
-#include "or/circuitlist.h"
+#include "core/or/circuitlist.h"
#include "lib/evloop/compat_libevent.h"
-#include "or/connection.h"
-#include "or/config.h"
+#include "core/mainloop/connection.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/relay.h"
+#include "core/or/relay.h"
#include "test/test.h"
#include "test/test_helpers.h"
-#include "or/cell_st.h"
-#include "or/entry_connection_st.h"
-#include "or/or_circuit_st.h"
-#include "or/origin_circuit_st.h"
+#include "core/or/cell_st.h"
+#include "core/or/entry_connection_st.h"
+#include "core/or/or_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
/* small replacement mock for circuit_mark_for_close_ to avoid doing all
* the other bookkeeping that comes with marking circuits. */
diff --git a/src/test/test_oos.c b/src/test/test_oos.c
index f101390d67..5f9942d8ae 100644
--- a/src/test/test_oos.c
+++ b/src/test/test_oos.c
@@ -5,16 +5,16 @@
#define CONNECTION_PRIVATE
-#include "or/or.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/connection_or.h"
-#include "or/directory.h"
-#include "or/main.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/or/connection_or.h"
+#include "feature/dircache/directory.h"
+#include "core/mainloop/main.h"
#include "test/test.h"
-#include "or/dir_connection_st.h"
-#include "or/or_connection_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "core/or/or_connection_st.h"
static or_options_t mock_options;
diff --git a/src/test/test_options.c b/src/test/test_options.c
index f2aaf30c23..396965401e 100644
--- a/src/test/test_options.c
+++ b/src/test/test_options.c
@@ -4,22 +4,22 @@
/* See LICENSE for licensing information */
#define CONFIG_PRIVATE
-#include "or/or.h"
-#include "or/confparse.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "app/config/confparse.h"
+#include "app/config/config.h"
#include "test/test.h"
-#include "or/geoip.h"
+#include "feature/stats/geoip.h"
#define ROUTERSET_PRIVATE
-#include "or/routerset.h"
-#include "or/main.h"
+#include "feature/nodelist/routerset.h"
+#include "core/mainloop/main.h"
#include "test/log_test_helpers.h"
#include "lib/sandbox/sandbox.h"
#include "lib/memarea/memarea.h"
#include "lib/osinfo/uname.h"
#include "lib/encoding/confline.h"
-#include "or/policies.h"
+#include "core/or/policies.h"
#include "test/test_helpers.h"
#define NS_MODULE test_options
diff --git a/src/test/test_periodic_event.c b/src/test/test_periodic_event.c
index b353cf87a3..03ba3df793 100644
--- a/src/test/test_periodic_event.c
+++ b/src/test/test_periodic_event.c
@@ -14,12 +14,12 @@
#include "test/test.h"
#include "test/test_helpers.h"
-#include "or/or.h"
-#include "or/config.h"
-#include "or/hibernate.h"
-#include "or/hs_service.h"
-#include "or/main.h"
-#include "or/periodic.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "feature/hibernate/hibernate.h"
+#include "feature/hs/hs_service.h"
+#include "core/mainloop/main.h"
+#include "core/mainloop/periodic.h"
/** Helper function: This is replaced in some tests for the event callbacks so
* we don't actually go into the code path of those callbacks. */
diff --git a/src/test/test_policy.c b/src/test/test_policy.c
index a6906af41f..4b1adc91f0 100644
--- a/src/test/test_policy.c
+++ b/src/test/test_policy.c
@@ -1,21 +1,21 @@
/* Copyright (c) 2013-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#define CONFIG_PRIVATE
-#include "or/config.h"
-#include "or/router.h"
-#include "or/routerparse.h"
+#include "app/config/config.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerparse.h"
#define POLICIES_PRIVATE
-#include "or/policies.h"
+#include "core/or/policies.h"
#include "lib/encoding/confline.h"
#include "test/test.h"
-#include "or/addr_policy_st.h"
-#include "or/node_st.h"
-#include "or/port_cfg_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerstatus_st.h"
+#include "core/or/addr_policy_st.h"
+#include "feature/nodelist/node_st.h"
+#include "core/or/port_cfg_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerstatus_st.h"
/* Helper: assert that short_policy parses and writes back out as itself,
or as <b>expected</b> if that's provided. */
diff --git a/src/test/test_procmon.c b/src/test/test_procmon.c
index e2915d0fb4..2c7918f580 100644
--- a/src/test/test_procmon.c
+++ b/src/test/test_procmon.c
@@ -3,7 +3,7 @@
#define PROCMON_PRIVATE
#include "orconfig.h"
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
#include "lib/evloop/procmon.h"
diff --git a/src/test/test_proto_http.c b/src/test/test_proto_http.c
index 57bfe24633..1cfa0a752c 100644
--- a/src/test/test_proto_http.c
+++ b/src/test/test_proto_http.c
@@ -6,10 +6,10 @@
* \brief Tests for our HTTP protocol parser code
*/
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
#include "lib/container/buffers.h"
-#include "or/proto_http.h"
+#include "core/proto/proto_http.h"
#include "test/log_test_helpers.h"
#define S(str) str, sizeof(str)-1
diff --git a/src/test/test_proto_misc.c b/src/test/test_proto_misc.c
index 7f066e14ad..1fcb763421 100644
--- a/src/test/test_proto_misc.c
+++ b/src/test/test_proto_misc.c
@@ -6,16 +6,16 @@
* \brief Test our smaller buffer-based protocol functions
*/
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
#include "lib/container/buffers.h"
-#include "or/connection_or.h"
-#include "or/ext_orport.h"
-#include "or/proto_cell.h"
-#include "or/proto_control0.h"
-#include "or/proto_ext_or.h"
+#include "core/or/connection_or.h"
+#include "feature/relay/ext_orport.h"
+#include "core/proto/proto_cell.h"
+#include "core/proto/proto_control0.h"
+#include "core/proto/proto_ext_or.h"
-#include "or/var_cell_st.h"
+#include "core/or/var_cell_st.h"
static void
test_proto_var_cell(void *arg)
diff --git a/src/test/test_protover.c b/src/test/test_protover.c
index f17f68ced2..a90ff5a08c 100644
--- a/src/test/test_protover.c
+++ b/src/test/test_protover.c
@@ -6,10 +6,10 @@
#include "orconfig.h"
#include "test/test.h"
-#include "or/protover.h"
+#include "core/proto/protover.h"
-#include "or/or.h"
-#include "or/connection_or.h"
+#include "core/or/or.h"
+#include "core/or/connection_or.h"
static void
test_protover_parse(void *arg)
diff --git a/src/test/test_pt.c b/src/test/test_pt.c
index 189cb25846..dea3791da2 100644
--- a/src/test/test_pt.c
+++ b/src/test/test_pt.c
@@ -9,18 +9,18 @@
#define STATEFILE_PRIVATE
#define CONTROL_PRIVATE
#define SUBPROCESS_PRIVATE
-#include "or/or.h"
-#include "or/config.h"
-#include "or/confparse.h"
-#include "or/control.h"
-#include "or/transports.h"
-#include "or/circuitbuild.h"
-#include "or/statefile.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "app/config/confparse.h"
+#include "feature/control/control.h"
+#include "feature/client/transports.h"
+#include "core/or/circuitbuild.h"
+#include "app/config/statefile.h"
#include "test/test.h"
#include "lib/process/subprocess.h"
#include "lib/encoding/confline.h"
-#include "or/or_state_st.h"
+#include "app/config/or_state_st.h"
static void
reset_mp(managed_proxy_t *mp)
diff --git a/src/test/test_relay.c b/src/test/test_relay.c
index fe5795d11d..25084fab37 100644
--- a/src/test/test_relay.c
+++ b/src/test/test_relay.c
@@ -1,17 +1,17 @@
/* Copyright (c) 2014-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#define CIRCUITBUILD_PRIVATE
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
#define RELAY_PRIVATE
-#include "or/relay.h"
+#include "core/or/relay.h"
/* For init/free stuff */
-#include "or/scheduler.h"
+#include "core/or/scheduler.h"
-#include "or/cell_st.h"
-#include "or/or_circuit_st.h"
+#include "core/or/cell_st.h"
+#include "core/or/or_circuit_st.h"
/* Test suite stuff */
#include "test/test.h"
diff --git a/src/test/test_relaycell.c b/src/test/test_relaycell.c
index 9f314b7704..eb30cab0ec 100644
--- a/src/test/test_relaycell.c
+++ b/src/test/test_relaycell.c
@@ -5,22 +5,22 @@
#define RELAY_PRIVATE
#define CIRCUITLIST_PRIVATE
-#include "or/or.h"
-#include "or/main.h"
-#include "or/config.h"
-#include "or/connection.h"
+#include "core/or/or.h"
+#include "core/mainloop/main.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
#include "lib/crypt_ops/crypto.h"
-#include "or/circuitbuild.h"
-#include "or/circuitlist.h"
-#include "or/connection_edge.h"
-#include "or/relay.h"
+#include "core/or/circuitbuild.h"
+#include "core/or/circuitlist.h"
+#include "core/or/connection_edge.h"
+#include "core/or/relay.h"
#include "test/test.h"
-#include "or/cell_st.h"
-#include "or/crypt_path_st.h"
-#include "or/entry_connection_st.h"
-#include "or/origin_circuit_st.h"
-#include "or/socks_request_st.h"
+#include "core/or/cell_st.h"
+#include "core/or/crypt_path_st.h"
+#include "core/or/entry_connection_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "core/or/socks_request_st.h"
static int srm_ncalls;
static entry_connection_t *srm_conn;
diff --git a/src/test/test_relaycrypt.c b/src/test/test_relaycrypt.c
index 7f0ca06983..c3cfb7d10b 100644
--- a/src/test/test_relaycrypt.c
+++ b/src/test/test_relaycrypt.c
@@ -3,17 +3,17 @@
* Copyright (c) 2007-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
-#include "or/circuitbuild.h"
+#include "core/or/or.h"
+#include "core/or/circuitbuild.h"
#define CIRCUITLIST_PRIVATE
-#include "or/circuitlist.h"
+#include "core/or/circuitlist.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/relay.h"
-#include "or/relay_crypto.h"
+#include "core/or/relay.h"
+#include "core/crypto/relay_crypto.h"
-#include "or/cell_st.h"
-#include "or/or_circuit_st.h"
-#include "or/origin_circuit_st.h"
+#include "core/or/cell_st.h"
+#include "core/or/or_circuit_st.h"
+#include "core/or/origin_circuit_st.h"
#include "test/test.h"
diff --git a/src/test/test_rendcache.c b/src/test/test_rendcache.c
index 3d606aac0d..394e28d785 100644
--- a/src/test/test_rendcache.c
+++ b/src/test/test_rendcache.c
@@ -2,21 +2,21 @@
/* See LICENSE for licensing information */
#include "orconfig.h"
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
#define RENDCACHE_PRIVATE
-#include "or/rendcache.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/config.h"
-#include "or/hs_common.h"
-
-#include "or/extend_info_st.h"
-#include "or/rend_encoded_v2_service_descriptor_st.h"
-#include "or/rend_intro_point_st.h"
-#include "or/rend_service_descriptor_st.h"
-#include "or/routerinfo_st.h"
+#include "feature/rend/rendcache.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "app/config/config.h"
+#include "feature/hs/hs_common.h"
+
+#include "core/or/extend_info_st.h"
+#include "feature/rend/rend_encoded_v2_service_descriptor_st.h"
+#include "feature/rend/rend_intro_point_st.h"
+#include "feature/rend/rend_service_descriptor_st.h"
+#include "feature/nodelist/routerinfo_st.h"
#include "test/rend_test_helpers.h"
#include "test/log_test_helpers.h"
diff --git a/src/test/test_replay.c b/src/test/test_replay.c
index 7f9c0b09e4..bca3a6660a 100644
--- a/src/test/test_replay.c
+++ b/src/test/test_replay.c
@@ -4,8 +4,8 @@
#define REPLAYCACHE_PRIVATE
#include "orconfig.h"
-#include "or/or.h"
-#include "or/replaycache.h"
+#include "core/or/or.h"
+#include "feature/hs_common/replaycache.h"
#include "test/test.h"
static const char *test_buffer =
diff --git a/src/test/test_router.c b/src/test/test_router.c
index 6e9424a3ad..a398c7497b 100644
--- a/src/test/test_router.c
+++ b/src/test/test_router.c
@@ -7,14 +7,14 @@
* \brief Unittests for code in src/or/router.c
**/
-#include "or/or.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_curve25519.h"
#include "lib/crypt_ops/crypto_ed25519.h"
-#include "or/router.h"
-#include "or/routerlist.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
-#include "or/routerinfo_st.h"
+#include "feature/nodelist/routerinfo_st.h"
/* Test suite stuff */
#include "test/test.h"
diff --git a/src/test/test_routerkeys.c b/src/test/test_routerkeys.c
index 2a761ad6e1..1a1bf63ba0 100644
--- a/src/test/test_routerkeys.c
+++ b/src/test/test_routerkeys.c
@@ -5,13 +5,13 @@
#include "orconfig.h"
#define ROUTER_PRIVATE
-#include "or/or.h"
-#include "or/config.h"
-#include "or/router.h"
-#include "or/routerkeys.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "feature/relay/router.h"
+#include "feature/relay/routerkeys.h"
#include "lib/crypt_ops/crypto.h"
#include "lib/crypt_ops/crypto_format.h"
-#include "or/torcert.h"
+#include "feature/nodelist/torcert.h"
#include "test/test.h"
#ifdef _WIN32
diff --git a/src/test/test_routerlist.c b/src/test/test_routerlist.c
index b25a0be9a4..89d1f4f90f 100644
--- a/src/test/test_routerlist.c
+++ b/src/test/test_routerlist.c
@@ -13,32 +13,32 @@
#define NETWORKSTATUS_PRIVATE
#define ROUTERLIST_PRIVATE
#define TOR_UNIT_TESTING
-#include "or/or.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/control.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "feature/control/control.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/directory.h"
-#include "or/dirauth/dirvote.h"
-#include "or/entrynodes.h"
-#include "or/hibernate.h"
-#include "or/microdesc.h"
-#include "or/networkstatus.h"
-#include "or/nodelist.h"
-#include "or/policies.h"
-#include "or/router.h"
-#include "or/routerlist.h"
-#include "or/routerset.h"
-#include "or/routerparse.h"
-#include "or/dirauth/shared_random.h"
-#include "or/statefile.h"
-
-#include "or/authority_cert_st.h"
-#include "or/dir_connection_st.h"
-#include "or/networkstatus_st.h"
-#include "or/node_st.h"
-#include "or/or_state_st.h"
-#include "or/routerstatus_st.h"
+#include "feature/dircache/directory.h"
+#include "feature/dirauth/dirvote.h"
+#include "feature/client/entrynodes.h"
+#include "feature/hibernate/hibernate.h"
+#include "feature/nodelist/microdesc.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/nodelist/nodelist.h"
+#include "core/or/policies.h"
+#include "feature/relay/router.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerset.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/dirauth/shared_random.h"
+#include "app/config/statefile.h"
+
+#include "feature/nodelist/authority_cert_st.h"
+#include "feature/dircommon/dir_connection_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "feature/nodelist/node_st.h"
+#include "app/config/or_state_st.h"
+#include "feature/nodelist/routerstatus_st.h"
#include "lib/encoding/confline.h"
#include "lib/container/buffers.h"
diff --git a/src/test/test_routerset.c b/src/test/test_routerset.c
index ea8b43498e..2017ef0050 100644
--- a/src/test/test_routerset.c
+++ b/src/test/test_routerset.c
@@ -3,18 +3,18 @@
#define ROUTERSET_PRIVATE
-#include "or/or.h"
-#include "or/geoip.h"
-#include "or/routerset.h"
-#include "or/routerparse.h"
-#include "or/policies.h"
-#include "or/nodelist.h"
-
-#include "or/addr_policy_st.h"
-#include "or/extend_info_st.h"
-#include "or/node_st.h"
-#include "or/routerinfo_st.h"
-#include "or/routerstatus_st.h"
+#include "core/or/or.h"
+#include "feature/stats/geoip.h"
+#include "feature/nodelist/routerset.h"
+#include "feature/nodelist/routerparse.h"
+#include "core/or/policies.h"
+#include "feature/nodelist/nodelist.h"
+
+#include "core/or/addr_policy_st.h"
+#include "core/or/extend_info_st.h"
+#include "feature/nodelist/node_st.h"
+#include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerstatus_st.h"
#include "test/test.h"
diff --git a/src/test/test_scheduler.c b/src/test/test_scheduler.c
index 555a2a6bfd..2d562299ab 100644
--- a/src/test/test_scheduler.c
+++ b/src/test/test_scheduler.c
@@ -8,15 +8,15 @@
#define SCHEDULER_KIST_PRIVATE
#define TOR_CHANNEL_INTERNAL_
#define CHANNEL_PRIVATE_
-#include "or/or.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "app/config/config.h"
#include "lib/evloop/compat_libevent.h"
-#include "or/channel.h"
-#include "or/channeltls.h"
-#include "or/connection.h"
-#include "or/networkstatus.h"
+#include "core/or/channel.h"
+#include "core/or/channeltls.h"
+#include "core/mainloop/connection.h"
+#include "feature/nodelist/networkstatus.h"
#define SCHEDULER_PRIVATE_
-#include "or/scheduler.h"
+#include "core/or/scheduler.h"
/* Test suite stuff */
#include "test/test.h"
diff --git a/src/test/test_shared_random.c b/src/test/test_shared_random.c
index 1b4fdc8992..ccf051606f 100644
--- a/src/test/test_shared_random.c
+++ b/src/test/test_shared_random.c
@@ -6,25 +6,25 @@
#define CONFIG_PRIVATE
#define DIRVOTE_PRIVATE
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
-#include "or/config.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/dirauth/dirvote.h"
-#include "or/dirauth/shared_random.h"
-#include "or/dirauth/shared_random_state.h"
+#include "feature/dirauth/dirvote.h"
+#include "feature/dirauth/shared_random.h"
+#include "feature/dirauth/shared_random_state.h"
#include "test/log_test_helpers.h"
-#include "or/networkstatus.h"
-#include "or/router.h"
-#include "or/routerkeys.h"
-#include "or/routerlist.h"
-#include "or/routerparse.h"
-#include "or/shared_random_client.h"
-#include "or/voting_schedule.h"
-
-#include "or/dir_server_st.h"
-#include "or/networkstatus_st.h"
-#include "or/or_state_st.h"
+#include "feature/nodelist/networkstatus.h"
+#include "feature/relay/router.h"
+#include "feature/relay/routerkeys.h"
+#include "feature/nodelist/routerlist.h"
+#include "feature/nodelist/routerparse.h"
+#include "feature/hs_common/shared_random_client.h"
+#include "feature/dircommon/voting_schedule.h"
+
+#include "feature/dirclient/dir_server_st.h"
+#include "feature/nodelist/networkstatus_st.h"
+#include "app/config/or_state_st.h"
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
diff --git a/src/test/test_slow.c b/src/test/test_slow.c
index 951851ec07..0b665363ab 100644
--- a/src/test/test_slow.c
+++ b/src/test/test_slow.c
@@ -15,7 +15,7 @@
#include <fcntl.h>
#endif
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
struct testgroup_t testgroups[] = {
diff --git a/src/test/test_socks.c b/src/test/test_socks.c
index 0a01bf6431..e064cc8db1 100644
--- a/src/test/test_socks.c
+++ b/src/test/test_socks.c
@@ -3,14 +3,14 @@
* Copyright (c) 2007-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/container/buffers.h"
-#include "or/config.h"
-#include "or/connection.h"
-#include "or/proto_socks.h"
+#include "app/config/config.h"
+#include "core/mainloop/connection.h"
+#include "core/proto/proto_socks.h"
#include "test/test.h"
#include "test/log_test_helpers.h"
-#include "or/socks_request_st.h"
+#include "core/or/socks_request_st.h"
#include "lib/net/socks5_status.h"
typedef struct socks_test_data_t {
diff --git a/src/test/test_status.c b/src/test/test_status.c
index c92ba48e2f..3cc23955ad 100644
--- a/src/test/test_status.c
+++ b/src/test/test_status.c
@@ -11,24 +11,24 @@
#include <float.h>
#include <math.h>
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/log/torlog.h"
#include "tor_queue.h"
-#include "or/status.h"
-#include "or/circuitlist.h"
-#include "or/config.h"
-#include "or/hibernate.h"
-#include "or/rephist.h"
-#include "or/relay.h"
-#include "or/router.h"
-#include "or/main.h"
-#include "or/nodelist.h"
-#include "or/statefile.h"
+#include "core/or/status.h"
+#include "core/or/circuitlist.h"
+#include "app/config/config.h"
+#include "feature/hibernate/hibernate.h"
+#include "feature/stats/rephist.h"
+#include "core/or/relay.h"
+#include "feature/relay/router.h"
+#include "core/mainloop/main.h"
+#include "feature/nodelist/nodelist.h"
+#include "app/config/statefile.h"
#include "lib/tls/tortls.h"
-#include "or/origin_circuit_st.h"
-#include "or/or_state_st.h"
-#include "or/routerinfo_st.h"
+#include "core/or/origin_circuit_st.h"
+#include "app/config/or_state_st.h"
+#include "feature/nodelist/routerinfo_st.h"
#include "test/test.h"
diff --git a/src/test/test_storagedir.c b/src/test/test_storagedir.c
index efb6a0027a..68cee418ad 100644
--- a/src/test/test_storagedir.c
+++ b/src/test/test_storagedir.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2017-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "lib/fs/storagedir.h"
#include "lib/encoding/confline.h"
diff --git a/src/test/test_switch_id.c b/src/test/test_switch_id.c
index 95801822f9..d8a1d15e4e 100644
--- a/src/test/test_switch_id.c
+++ b/src/test/test_switch_id.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2015-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/process/setuid.h"
#ifdef HAVE_SYS_CAPABILITY_H
diff --git a/src/test/test_threads.c b/src/test/test_threads.c
index e698e4f618..f0a4dd2057 100644
--- a/src/test/test_threads.c
+++ b/src/test/test_threads.c
@@ -4,7 +4,7 @@
/* See LICENSE for licensing information */
#include "orconfig.h"
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/thread/threads.h"
#include "test/test.h"
diff --git a/src/test/test_tortls.c b/src/test/test_tortls.c
index 9ae9d4dfbd..2b40ed72d9 100644
--- a/src/test/test_tortls.c
+++ b/src/test/test_tortls.c
@@ -30,11 +30,11 @@ DISABLE_GCC_WARNING(redundant-decls)
ENABLE_GCC_WARNING(redundant-decls)
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/log/torlog.h"
-#include "or/config.h"
+#include "app/config/config.h"
#include "lib/tls/tortls.h"
-#include "or/or_state_st.h"
+#include "app/config/or_state_st.h"
#include "test/test.h"
#include "test/log_test_helpers.h"
diff --git a/src/test/test_util.c b/src/test/test_util.c
index 60cd7ad66a..99fee4c5a5 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -12,11 +12,11 @@
#define SOCKET_PRIVATE
#define SUBPROCESS_PRIVATE
#include "lib/testsupport/testsupport.h"
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/container/buffers.h"
-#include "or/config.h"
-#include "or/control.h"
-#include "or/transports.h"
+#include "app/config/config.h"
+#include "feature/control/control.h"
+#include "feature/client/transports.h"
#include "lib/crypt_ops/crypto_format.h"
#include "lib/crypt_ops/crypto_rand.h"
#include "test/test.h"
diff --git a/src/test/test_util_format.c b/src/test/test_util_format.c
index ea42d8dd5a..85d8a8e62e 100644
--- a/src/test/test_util_format.c
+++ b/src/test/test_util_format.c
@@ -2,7 +2,7 @@
/* See LICENSE for licensing information */
#include "orconfig.h"
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
diff --git a/src/test/test_util_process.c b/src/test/test_util_process.c
index 9dce520d04..44c4da9169 100644
--- a/src/test/test_util_process.c
+++ b/src/test/test_util_process.c
@@ -3,7 +3,7 @@
#define UTIL_PROCESS_PRIVATE
#include "orconfig.h"
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
diff --git a/src/test/test_voting_schedule.c b/src/test/test_voting_schedule.c
index b5df596436..c3a581cf21 100644
--- a/src/test/test_voting_schedule.c
+++ b/src/test/test_voting_schedule.c
@@ -3,8 +3,8 @@
#include "orconfig.h"
-#include "or/or.h"
-#include "or/voting_schedule.h"
+#include "core/or/or.h"
+#include "feature/dircommon/voting_schedule.h"
#include "test/test.h"
diff --git a/src/test/test_workqueue.c b/src/test/test_workqueue.c
index 2cb42734c4..4550bad1f0 100644
--- a/src/test/test_workqueue.c
+++ b/src/test/test_workqueue.c
@@ -3,9 +3,9 @@
* Copyright (c) 2007-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-#include "or/or.h"
+#include "core/or/or.h"
#include "lib/thread/threads.h"
-#include "or/onion.h"
+#include "core/crypto/onion.h"
#include "lib/evloop/workqueue.h"
#include "lib/crypt_ops/crypto_curve25519.h"
#include "lib/crypt_ops/crypto_rand.h"
diff --git a/src/test/testing_common.c b/src/test/testing_common.c
index b0514f85ec..3880bca9c5 100644
--- a/src/test/testing_common.c
+++ b/src/test/testing_common.c
@@ -10,17 +10,17 @@
#define MAIN_PRIVATE
#include "orconfig.h"
-#include "or/or.h"
-#include "or/control.h"
-#include "or/config.h"
+#include "core/or/or.h"
+#include "feature/control/control.h"
+#include "app/config/config.h"
#include "lib/crypt_ops/crypto_dh.h"
#include "lib/crypt_ops/crypto_ed25519.h"
#include "lib/crypt_ops/crypto_rand.h"
-#include "or/rephist.h"
+#include "feature/stats/rephist.h"
#include "lib/err/backtrace.h"
#include "test/test.h"
-#include "or/channelpadding.h"
-#include "or/main.h"
+#include "core/or/channelpadding.h"
+#include "core/mainloop/main.h"
#include "lib/compress/compress.h"
#include "lib/evloop/compat_libevent.h"
diff --git a/src/test/testing_rsakeys.c b/src/test/testing_rsakeys.c
index 087a14e649..a8c9ce4ce8 100644
--- a/src/test/testing_rsakeys.c
+++ b/src/test/testing_rsakeys.c
@@ -5,7 +5,7 @@
#include "lib/crypt_ops/crypto_rand.h"
#include "orconfig.h"
-#include "or/or.h"
+#include "core/or/or.h"
#include "test/test.h"
/** Define this if unit tests spend too much time generating public keys.
diff --git a/src/tools/tor_runner.c b/src/tools/tor_runner.c
index 8e74a06cd9..dd90af3df5 100644
--- a/src/tools/tor_runner.c
+++ b/src/tools/tor_runner.c
@@ -23,8 +23,8 @@
* functions. Don't add more dependencies!
*/
-#include "or/tor_api.h"
-#include "or/tor_api_internal.h"
+#include "feature/api/tor_api.h"
+#include "feature/api/tor_api_internal.h"
#include "orconfig.h"
#ifdef HAVE_UNISTD_H