Tor
0.4.7.0-alpha-dev
|
core/or: Onion routing happens here!
More...Files | |
file | addr_policy_st.h [code] |
Address policy structures. | |
file | address_set.c [code] |
Implementation for a set of addresses. | |
file | address_set.h [code] |
Types to handle sets of addresses. | |
file | cell_queue_st.h [code] |
Cell queue structures. | |
file | cell_st.h [code] |
Fixed-size cell structure. | |
file | channel.c [code] |
OR/OP-to-OR channel abstraction layer. A channel's job is to transfer cells from Tor instance to Tor instance. Currently, there is only one implementation of the channel abstraction: in channeltls.c. | |
file | channel.h [code] |
Header file for channel.c. | |
file | channelpadding.c [code] |
Link-level padding code. | |
file | channeltls.c [code] |
A concrete subclass of channel_t using or_connection_t to transfer cells between Tor instances. | |
file | channeltls.h [code] |
Header file for channeltls.c. | |
file | circuit_st.h [code] |
Base circuit structure. | |
file | circuitbuild.c [code] |
Implements the details of building circuits (by choosing paths, constructing/sending create/extend cells, and so on). | |
file | circuitbuild.h [code] |
Header file for circuitbuild.c. | |
file | circuitlist.c [code] |
Manage global structures that list and index circuits, and look up circuits within them. | |
file | circuitlist.h [code] |
Header file for circuitlist.c. | |
file | circuitmux.c [code] |
Circuit mux/cell selection abstraction. | |
file | circuitmux.h [code] |
Header file for circuitmux.c. | |
file | circuitmux_ewma.c [code] |
EWMA circuit selection as a circuitmux_t policy. | |
file | circuitmux_ewma.h [code] |
Header file for circuitmux_ewma.c. | |
file | circuitpadding.c [code] |
Circuit-level padding implementation. | |
file | circuitpadding.h [code] |
Header file for circuitpadding.c. | |
file | circuitpadding_machines.c [code] |
Circuit padding state machines. | |
file | circuitpadding_machines.h [code] |
Header file for circuitpadding_machines.c. | |
file | circuitstats.c [code] |
Maintains and analyzes statistics about circuit built times, so we can tell how long we may need to wait for a fast circuit to be constructed. | |
file | circuitstats.h [code] |
Header file for circuitstats.c. | |
file | circuituse.c [code] |
Launch the right sort of circuits and attach the right streams to them. | |
file | circuituse.h [code] |
Header file for circuituse.c. | |
file | command.c [code] |
Functions for processing incoming cells. | |
file | command.h [code] |
Header file for command.c. | |
file | connection_edge.c [code] |
Handle edge streams. | |
file | connection_edge.h [code] |
Header file for connection_edge.c. | |
file | connection_or.c [code] |
Functions to handle OR connections, TLS handshaking, and cells on the network. | |
file | connection_or.h [code] |
Header file for connection_or.c. | |
file | connection_st.h [code] |
Base connection structure. | |
file | cpath_build_state_st.h [code] |
Circuit-build-stse structure. | |
file | crypt_path.c [code] |
Functions dealing with layered circuit encryption. This file aims to provide an API around the crypt_path_t structure which holds crypto information about a specific hop of a circuit. | |
file | crypt_path.h [code] |
Header file for crypt_path.c. | |
file | crypt_path_reference_st.h [code] |
reference-counting structure for crypt_path_t | |
file | crypt_path_st.h [code] |
Path structures for origin circuits. | |
file | destroy_cell_queue_st.h [code] |
Destroy-cell queue structures. | |
file | dos_config.c [code] |
Code to interpret the user's configuration of DoS module. | |
file | dos_config.h [code] |
Header for core/or/dos_config.c. | |
file | dos_options.inc [code] |
Declare configuration options for the DoS module. | |
file | dos_options_st.h [code] |
Structure dos_options_t to hold options for the DoS subsystem. | |
file | dos_sys.c [code] |
Subsystem definitions for DOS module. | |
file | dos_sys.h [code] |
Header for core/or/dos_sys.c. | |
file | edge_connection_st.h [code] |
Edge-connection structure. | |
file | entry_connection_st.h [code] |
Entry connection structure. | |
file | entry_port_cfg_st.h [code] |
Configuration structure for client ports. | |
file | extend_info_st.h [code] |
Extend-info structure. | |
file | extendinfo.c [code] |
Functions for creating and using extend_info_t objects. | |
file | extendinfo.h [code] |
Header for core/or/extendinfo.c. | |
file | half_edge_st.h [code] |
Half-open connection structure. | |
file | listener_connection_st.h [code] |
Listener connection structure. | |
file | lttng_circuit.inc [code] |
LTTng tracing probe declaration for the circuit subsystem. It is in this .inc file due to the non C standard syntax and the way we guard the header with the LTTng specific TRACEPOINT_HEADER_MULTI_READ. | |
file | ocirc_event.c [code] |
Publish state change messages for origin circuits. | |
file | ocirc_event.h [code] |
Header file for ocirc_event.c. | |
file | onion.c [code] |
Functions to queue create cells, and parse and create the CREATE cell and its allies. | |
file | onion.h [code] |
Header file for onion.c. | |
file | or.h [code] |
Master header file for Tor-specific functionality. | |
file | or_connection_st.h [code] |
OR connection structure. | |
file | or_handshake_certs_st.h [code] |
OR handshake certs structure. | |
file | or_handshake_state_st.h [code] |
OR handshake state structure. | |
file | or_periodic.c [code] |
Periodic callbacks for the onion routing subsystem. | |
file | or_periodic.h [code] |
Header for core/or/or_periodic.c. | |
file | or_sys.c [code] |
Subsystem definitions for OR module. | |
file | or_sys.h [code] |
Header for core/or/or_sys.c. | |
file | orconn_event.c [code] |
Publish state change messages for OR connections. | |
file | orconn_event.h [code] |
Header file for orconn_event.c. | |
file | origin_circuit_st.h [code] |
Origin circuit structure. | |
file | policies.c [code] |
Code to parse and use address policies and exit policies. | |
file | policies.h [code] |
Header file for policies.c. | |
file | port_cfg_st.h [code] |
Listener port configuration structure. | |
file | protover.c [code] |
Versioning information for different pieces of the Tor protocol. | |
file | protover.h [code] |
Headers and type declarations for protover.c. | |
file | reasons.c [code] |
Convert circuit, stream, and orconn error reasons to and/or from strings and errno values. | |
file | reasons.h [code] |
Header file for reasons.c. | |
file | relay.c [code] |
Handle relay cell encryption/decryption, plus packaging and receiving from circuits, plus queuing on circuits. | |
file | relay.h [code] |
Header file for relay.c. | |
file | relay_crypto_st.h [code] |
Relay-cell encryption state structure. | |
file | scheduler.c [code] |
Channel scheduling system: decides which channels should send and receive when. | |
file | scheduler.h [code] |
Header file for scheduler*.c. | |
file | scheduler_kist.c [code] |
Implements the KIST cell scheduler. | |
file | scheduler_vanilla.c [code] |
"Vanilla" (pre-KIST) cell scheduler code. | |
file | sendme.c [code] |
Code that is related to SENDME cells both in terms of creating/parsing cells and handling the content. | |
file | sendme.h [code] |
Header file for sendme.c. | |
file | server_port_cfg_st.h [code] |
Configuration structure for server ports. | |
file | socks_request_st.h [code] |
Client request structure. | |
file | status.c [code] |
Collect status information and log heartbeat messages. | |
file | status.h [code] |
Header for status.c. | |
file | tor_version_st.h [code] |
Parsed Tor version structure. | |
file | trace_probes_circuit.c [code] |
Tracepoint provider source file for the circuit subsystem. Probes are generated within this C file for LTTng-UST. | |
file | var_cell_st.h [code] |
Variable-length cell structure. | |
file | versions.c [code] |
Code to manipulate, parse, and compare Tor versions. | |
file | versions.h [code] |
Header file for versions.c. | |
core/or: Onion routing happens here!
This is the central part of Tor that handles the core tasks of onion routing: building circuit, handling circuits, attaching circuit to streams, moving data around, and so forth.
Some aspects of this module should probably be refactored into others.
Notable files here include:
channel.c
: Generic channel implementation. Channels handle sending and receiving cells among tor nodes.
channeltls.c
: Channel implementation for TLS-based OR connections. Uses connection_or.c
.
circuitbuild.c
: Code for constructing circuits and choosing their paths. (Note: this module could plausibly be split into handling the client side, the server side, and the path generation aspects of circuit building.)
circuitlist.c
: Code for maintaining and navigating the global list of circuits.
circuitmux.c
: Generic circuitmux implementation. A circuitmux handles deciding, for a particular channel, which circuit should write next.
circuitmux_ewma.c
: A circuitmux implementation based on the EWMA (exponentially weighted moving average) algorithm.
circuituse.c
: Code to actually send and receive data on circuits.
command.c
: Handles incoming cells on channels.
connection.c
: Generic and common connection tools, and implementation for the simpler connection types.
connection_edge.c
: Implementation for entry and exit connections.
connection_or.c
: Implementation for OR connections (the ones that send cells over TLS).
onion.c
: Generic code for generating and responding to CREATE and CREATED cells, and performing the appropriate onion handshakes. Also contains code to manage the server-side onion queue.
relay.c
: Handles particular types of relay cells, and provides code to receive, encrypt, route, and interpret relay cells.
scheduler.c
: Decides which channel/circuit pair is ready to receive the next cell.