|
file | addressmap.c |
| The addressmap module manages the processes by which we rewrite addresses in client requess. It handles the MapAddress controller and torrc commands, and the TrackHostExits feature, and the client-side DNS cache (deprecated).
|
|
file | bridges.c |
| Code to manage bridges and bridge selection.
|
|
file | bridges.h [code] |
| Header file for circuitbuild.c.
|
|
file | channel.c |
| 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 | channeltls.c |
| 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 | circpathbias.c |
| Code to track success/failure rates of circuits built through different tor nodes, in an attempt to detect attacks where an attacker deliberately causes circuits to fail until the client choses a path they like.
|
|
file | circuitbuild.c |
| Implements the details of building circuits (by chosing paths, constructing/sending create/extend cells, and so on).
|
|
file | circuitbuild.h [code] |
| Header file for circuitbuild.c.
|
|
file | circuitlist.c |
| 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 |
| Circuit mux/cell selection abstraction.
|
|
file | circuitmux.h [code] |
| Header file for circuitmux.c.
|
|
file | circuitmux_ewma.c |
| EWMA circuit selection as a circuitmux_t policy.
|
|
file | circuitmux_ewma.h [code] |
| Header file for circuitmux_ewma.c.
|
|
file | circuitstats.c |
| 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 |
| 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 |
| Functions for processing incoming cells.
|
|
file | command.h [code] |
| Header file for command.c.
|
|
file | config.c |
| Code to interpret the user's configuration of Tor.
|
|
file | config.h [code] |
| Header file for config.c.
|
|
file | confparse.c |
| Back-end for parsing and generating key-value files, used to implement the torrc file format and the state file.
|
|
file | connection.c |
| General high-level functions to handle reading and writing on connections.
|
|
file | connection.h [code] |
| Header file for connection.c.
|
|
file | connection_edge.c |
| Handle edge streams.
|
|
file | connection_edge.h [code] |
| Header file for connection_edge.c.
|
|
file | connection_or.c |
| Functions to handle OR connections, TLS handshaking, and cells on the network.
|
|
file | connection_or.h [code] |
| Header file for connection_or.c.
|
|
file | consdiff.c |
| Consensus diff implementation, including both the generation and the application of diffs in a minimal ed format.
|
|
file | control.c |
| Implementation for Tor's control-socket interface.
|
|
file | control.h [code] |
| Header file for control.c.
|
|
file | cpuworker.c |
| Uses the workqueue/threadpool code to farm CPU-intensive activities out to subprocesses.
|
|
file | cpuworker.h [code] |
| Header file for cpuworker.c.
|
|
file | directory.c |
| Code to send and fetch information from directory authorities and caches via HTTP.
|
|
file | directory.h [code] |
| Header file for directory.c.
|
|
file | dirserv.c |
| Directory server core implementation. Manages directory contents and generates directories.
|
|
file | dirserv.h [code] |
| Header file for dirserv.c.
|
|
file | dns.c |
| Implements a local cache for DNS results for Tor servers. This is implemented as a wrapper around Adam Langley's eventdns.c code. (We can't just use gethostbyname() and friends because we really need to be nonblocking.)
|
|
file | dns.h [code] |
| Header file for dns.c.
|
|
file | dns_structs.h [code] |
| Structures used in dns.c. Exposed to dns.c, and to the unit tests that declare DNS_PRIVATE.
|
|
file | dnsserv.c |
| Implements client-side DNS proxy server code.
|
|
file | dnsserv.h [code] |
| Header file for dnsserv.c.
|
|
file | entrynodes.c |
| Code to manage our fixed first nodes for various functions.
|
|
file | entrynodes.h [code] |
| Header file for circuitbuild.c.
|
|
file | ext_orport.c |
| Code implementing the Extended ORPort.
|
|
file | fp_pair.c |
| Manages data structures for associating pairs of fingerprints. Used to handle combinations of identity/signing-key fingerprints for authorities.
|
|
file | fp_pair.h [code] |
| Header file for fp_pair.c.
|
|
file | geoip.c |
| Functions related to maintaining an IP-to-country database; to summarizing client connections by country to entry guards, bridges, and directory servers; and for statistics on answering network status requests.
|
|
file | geoip.h [code] |
| Header file for geoip.c.
|
|
file | hibernate.c |
| Functions to close listeners, stop allowing new circuits, etc in preparation for closing down or going dormant; and to track bandwidth and time intervals to know when to hibernate and when to stop hibernating.
|
|
file | hibernate.h [code] |
| Header file for hibernate.c.
|
|
file | hs_cache.c |
| Handle hidden service descriptor caches.
|
|
file | hs_cache.h [code] |
| Header file for hs_cache.c.
|
|
file | hs_cell.c |
| Hidden service API for cell creation and handling.
|
|
file | hs_cell.h [code] |
| Header file containing cell data for the whole HS subsytem.
|
|
file | hs_circuit.c |
|
file | hs_circuit.h [code] |
| Header file containing circuit data for the whole HS subsytem.
|
|
file | hs_circuitmap.c |
| Hidden service circuitmap: A hash table that maps binary tokens to introduction and rendezvous circuits; it's used: (a) by relays acting as intro points and rendezvous points (b) by hidden services to find intro and rend circuits and (c) by HS clients to find rendezvous circuits.
|
|
file | hs_circuitmap.h [code] |
| Header file for hs_circuitmap.c.
|
|
file | hs_client.c |
| Implement next generation hidden service client functionality.
|
|
file | hs_client.h [code] |
| Header file containing client data for the HS subsytem.
|
|
file | hs_common.c |
| Contains code shared between different HS protocol version as well as useful data structures and accessors used by other subsystems. The rendcommon.c should only contains code relating to the v2 protocol.
|
|
file | hs_common.h [code] |
| Header file containing common data for the whole HS subsytem.
|
|
file | hs_config.c |
| Implement hidden service configuration subsystem.
|
|
file | hs_config.h [code] |
| Header file containing configuration ABI/API for the HS subsytem.
|
|
file | hs_control.c |
| Contains control port event related code.
|
|
file | hs_control.h [code] |
| Header file containing control port event related code.
|
|
file | hs_descriptor.c |
| Handle hidden service descriptor encoding/decoding.
|
|
file | hs_descriptor.h [code] |
| Header file for hs_descriptor.c.
|
|
file | hs_ident.c |
| Contains circuit and connection identifier code for the whole HS subsytem.
|
|
file | hs_ident.h [code] |
| Header file containing circuit and connection identifier data for the whole HS subsytem.
|
|
file | hs_intropoint.c |
| Implement next generation introductions point functionality.
|
|
file | hs_intropoint.h [code] |
| Header file for hs_intropoint.c.
|
|
file | hs_ntor.c |
| Implements the ntor variant used in Tor hidden services.
|
|
file | hs_service.c |
| Implement next generation hidden service functionality.
|
|
file | hs_service.h [code] |
| Header file containing service data for the HS subsytem.
|
|
file | hs_stats.c |
| Keeps stats about the activity of our onion service(s).
|
|
file | hs_stats.h [code] |
| Header file for hs_stats.c.
|
|
file | keypin.c |
| Functions and structures for associating routers' RSA key fingerprints with their ED25519 keys.
|
|
file | main.c |
| Toplevel module. Handles signals, multiplexes between connections, implements main loop, and drives scheduled events.
|
|
file | main.h [code] |
| Header file for main.c.
|
|
file | microdesc.c |
| Implements microdescriptors – an abbreviated description of less-frequently-changing router information.
|
|
file | microdesc.h [code] |
| Header file for microdesc.c.
|
|
file | networkstatus.c |
| Functions and structures for handling networkstatus documents as a client or as a directory cache.
|
|
file | networkstatus.h [code] |
| Header file for networkstatus.c.
|
|
file | nodelist.c |
| Structures and functions for tracking what we know about the routers on the Tor network, and correlating information from networkstatus, routerinfo, and microdescs.
|
|
file | nodelist.h [code] |
| Header file for nodelist.c.
|
|
file | ntmain.c |
| Entry points for running/configuring Tor as a Windows Service.
|
|
file | ntmain.h [code] |
| Header file for ntmain.c.
|
|
file | onion.c |
| Functions to queue create cells, wrap the various onionskin types, and parse and create the CREATE cell and its allies.
|
|
file | onion.h [code] |
| Header file for onion.c.
|
|
file | onion_fast.c |
| Functions implement the CREATE_FAST circuit handshake.
|
|
file | onion_fast.h [code] |
| Header file for onion_fast.c.
|
|
file | onion_ntor.c |
| Implementation for the ntor handshake.
|
|
file | onion_tap.c |
| Functions to implement the original Tor circuit extension handshake (a.k.a TAP).
|
|
file | onion_tap.h [code] |
| Header file for onion_tap.c.
|
|
file | or.h [code] |
| Master header file for Tor-specific functionality.
|
|
file | parsecommon.c |
| Common code to parse and validate various type of descriptors.
|
|
file | parsecommon.h [code] |
| Header file for parsecommon.c.
|
|
file | periodic.c |
| Generic backend for handling periodic events.
|
|
file | policies.c |
| Code to parse and use address policies and exit policies.
|
|
file | policies.h [code] |
| Header file for policies.c.
|
|
file | protover.c |
| Versioning information for different pieces of the Tor protocol.
|
|
file | protover.h [code] |
| Headers and type declarations for protover.c.
|
|
file | reasons.c |
| 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 |
| 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 | rendcache.c |
| Hidden service descriptor cache.
|
|
file | rendcache.h [code] |
| Header file for rendcache.c.
|
|
file | rendclient.c |
| Client code to access location-hidden services.
|
|
file | rendclient.h [code] |
| Header file for rendclient.c.
|
|
file | rendcommon.c |
| Rendezvous implementation: shared code between introducers, services, clients, and rendezvous points.
|
|
file | rendcommon.h [code] |
| Header file for rendcommon.c.
|
|
file | rendmid.c |
| Implement introductions points and rendezvous points.
|
|
file | rendmid.h [code] |
| Header file for rendmid.c.
|
|
file | rendservice.c |
| The hidden-service side of rendezvous functionality.
|
|
file | rendservice.h [code] |
| Header file for rendservice.c.
|
|
file | rephist.c |
| Basic history and performance-tracking functionality.
|
|
file | rephist.h [code] |
| Header file for rephist.c.
|
|
file | replaycache.c |
| Self-scrubbing replay cache for rendservice.c.
|
|
file | replaycache.h [code] |
| Header file for replaycache.c.
|
|
file | router.c |
| Miscellaneous relay functionality, including RSA key maintenance, generating and uploading server descriptors, picking an address to advertise, and so on.
|
|
file | router.h [code] |
| Header file for router.c.
|
|
file | routerkeys.c |
| Functions and structures to handle generating and maintaining the set of keypairs necessary to be an OR.
|
|
file | routerlist.c |
| Code to maintain and access the global list of routerinfos for known servers.
|
|
file | routerlist.h [code] |
| Header file for routerlist.c.
|
|
file | routerparse.c |
| Code to parse and validate router descriptors, consenus directories, and similar objects.
|
|
file | routerparse.h [code] |
| Header file for routerparse.c.
|
|
file | routerset.c |
| Functions and structures to handle set-type selection of routers by name, ID, address, etc.
|
|
file | scheduler.c |
| Channel scheduling system: decides which channels should send and receive when.
|
|
file | scheduler.h [code] |
| Header file for scheduler*.c.
|
|
file | shared_random_client.c |
| This file contains functions that are from the shared random subsystem but used by many part of tor. The full feature is built as part of the dirauth module.
|
|
file | shared_random_client.h [code] |
| Header file for shared_random_client.c.
|
|
file | statefile.c |
| Handles parsing and encoding the persistent 'state' file that carries miscellaneous persistent state between Tor invocations.
|
|
file | status.c |
| Collect status information and log heartbeat messages.
|
|
file | tor_api.c |
|
file | tor_api.h [code] |
| Public C API for the Tor network service.
|
|
file | tor_main.c |
| Stub module containing a main() function.
|
|
file | torcert.c |
| Implementation for ed25519-signed certificates as used in the Tor protocol.
|
|
file | transports.c |
| Pluggable Transports related code.
|
|
file | transports.h [code] |
| Headers for transports.c.
|
|
file | voting_schedule.c |
| This file contains functions that are from the directory authority subsystem related to voting specifically but used by many part of tor. The full feature is built as part of the dirauth module.
|
|
file | voting_schedule.h [code] |
| Header file for voting_schedule.c.
|
|