File List

Here is a list of all documented files with brief descriptions:
address.cFunctions to use and manipulate the tor_addr_t structure
address.h [code]Headers for address.h
aes.cImplements the AES cipher (with 128-bit keys and blocks), and a counter-mode stream cipher on top of AES. This code is taken from the main Rijndael distribution. (We include this because many people are running older versions of OpenSSL without AES support.)
aes.h [code]Headers for aes.c
buffers.cImplements a generic interface buffer. Buffers are fairly opaque string holders that can read to or flush from: memory, file descriptors, or TLS connections
circuitbuild.cThe actual details of building circuits
circuitlist.cManage the global circuit list
circuituse.cLaunch the right sort of circuits and attach streams to them
command.cFunctions for processing incoming cells
compat.cWrappers to make calls more portable. This code defines functions such as tor_malloc, tor_snprintf, get/set various data types, renaming, setting socket options, switching user IDs. It is basically where the non-portable items are conditionally included depending on the platform
compat.h [code]
compat_libevent.cWrappers to handle porting between different versions of libevent
compat_libevent.h [code]
config.cCode to parse and interpret configuration files
connection.cGeneral high-level functions to handle reading and writing on connections
connection_edge.cHandle edge streams
connection_or.cFunctions to handle OR connections, TLS handshaking, and cells on the network
container.cImplements a smartlist (a resizable array) along with helper functions to use smartlists. Also includes hash table implementations of a string-to-void* map, and of a digest-to-void* map
container.h [code]
control.cImplementation for Tor's control-socket interface. See doc/spec/control-spec.txt for full details on protocol
cpuworker.cImplements a farm of 'CPU worker' processes to perform CPU-intensive tasks in another thread or process, to not interrupt the main thread
crypto.cWrapper functions to present a consistent interface to public-key and symmetric cryptography operations from OpenSSL
crypto.h [code]Headers for crypto.c
directory.cCode to send and fetch directories and router descriptors via HTTP. Directories use dirserv.c to generate the results; clients use routers.c to parse them
dirserv.cDirectory server core implementation. Manages directory contents and generates directories
dirvote.cFunctions to compute directory consensus, and schedule voting
dns.cImplements 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.)
dnsserv.cImplements client-side DNS proxy server code. Note: this is the DNS Server code, not the Server DNS code. Confused? This code runs on client-side, and acts as a DNS server. The code in dns.c, on the other hand, runs on Tor servers, and acts as a DNS client
eventdns.h [code]
eventdns_tor.h [code]
geoip.cFunctions related to maintaining an IP-to-country database and to summarizing client connections by country
hibernate.cFunctions 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
ht.h [code]
log.cFunctions to send messages to log files or the console
log.h [code]Headers for log.c
main.cToplevel module. Handles signals, multiplexes between connections, implements main loop, and drives scheduled events
memarea.cImplementation for memarea_t, an allocator for allocating lots of small objects that will be freed all at once
memarea.h [code]
mempool.h [code]Headers for mempool.c
networkstatus.cFunctions and structures for handling network status documents as a client or cache
onion.cFunctions to queue create cells, and handle onionskin parsing and creation
or.h [code]Master header file for Tor-specific functionality
policies.cCode to parse and use address policies and exit policies
reasons.cConvert circuit, stream, and orconn error reasons to and/or from strings and errno values
relay.cHandle relay cell encryption/decryption, plus packaging and receiving from circuits, plus queuing on circuits
rendclient.cClient code to access location-hidden services
rendcommon.cRendezvous implementation: shared code between introducers, services, clients, and rendezvous points
rendmid.cImplement introductions points and rendezvous points
rendservice.cThe hidden-service side of rendezvous functionality
rephist.cBasic history and "reputation" functionality to remember which servers have worked in the past, how much bandwidth we've been using, which ports we tend to want, and so on
router.cOR functionality, including key maintenance, generating and uploading server descriptors, retrying OR connections
routerlist.cCode to maintain and access the global list of routerinfos for known servers
routerparse.cCode to parse and validate router descriptors and directories
sha256.c
tor_main.cStub module containing a main() function. Allows unit test binary to link against main.c
torgzip.cA simple in-memory gzip implementation
torgzip.h [code]Headers for torgzip.h
torint.h [code]Header file to define uint32_t and friends
tortls.cWrapper functions to present a consistent interface to TLS, SSL, and X.509 functions from OpenSSL
tortls.h [code]Headers for tortls.c
tortls_states.h [code]
util.cCommon functions for strings, IO, network, data structures, process control
util.h [code]Headers for util.c

Generated on Tue May 25 00:31:28 2010 for tor by  doxygen 1.5.6