mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
clean up hacking file, based on patch from tyranix
svn:r4237
This commit is contained in:
parent
85de62e9b9
commit
c5b986ec6c
88
doc/HACKING
88
doc/HACKING
@ -34,16 +34,33 @@ the distant future, stuff may have changed.)
|
||||
because many people are running older versions of OpenSSL without
|
||||
AES support.)
|
||||
|
||||
compat.[ch] -- Wrappers 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.
|
||||
|
||||
container.[ch] -- Implements a smart list which is a resizable array along
|
||||
with helper functions to use on these lists. Also includes a
|
||||
splay-tree implementation of the string-to-void* map.
|
||||
|
||||
crypto.[ch] -- Wrapper functions to present a consistent interface to
|
||||
public-key and symmetric cryptography operations from OpenSSL.
|
||||
|
||||
fakepoll.[ch] -- Used on systems that don't have a poll() system call;
|
||||
reimplements() poll using the select() system call.
|
||||
|
||||
log.[ch] -- Tor's logging subsystem.
|
||||
|
||||
strlcat.c -- Safer, size-bounded string concatenation. Use this instead
|
||||
of strncat because it has a safer API. Included for platforms that
|
||||
that don't already ship this code.
|
||||
|
||||
strlcpy.c -- Safer, size-bounded string copying. Use this instead of
|
||||
strncpy because it is a safer API which guarantees to NUL terminate.
|
||||
Included for platforms that don't already ship this code.
|
||||
|
||||
test.h -- Macros used by unit tests.
|
||||
|
||||
torgzip.[ch] -- A simple in-memory gzip implementation.
|
||||
|
||||
torint.h -- Provides missing [u]int*_t types for environments that
|
||||
don't have stdint.h.
|
||||
|
||||
@ -91,29 +108,70 @@ the distant future, stuff may have changed.)
|
||||
dirserv.c -- Code to manage directory contents and generate
|
||||
directories. [Directory server only]
|
||||
|
||||
routers.c -- Code to parse directories and router descriptors; and to
|
||||
router.c -- Code to parse directories and router descriptors; and to
|
||||
generate a router descriptor corresponding to this OR's
|
||||
capabilities. Also presents some high-level interfaces for
|
||||
managing an OR or OP's view of the directory.
|
||||
|
||||
[Circuit-related modules.]
|
||||
|
||||
circuit.c -- Code to create circuits, manage circuits, and route
|
||||
relay cells along circuits.
|
||||
circuitbuild.c -- Creates circuits.
|
||||
|
||||
circuitlist.c -- Manage the global circuit list.
|
||||
|
||||
circuituse.c -- Launch the right type of circuits and attach streams
|
||||
to them.
|
||||
|
||||
onion.c -- Code to generate and respond to "onion skins".
|
||||
|
||||
relay.c -- Handle relay cell encryption/decryption along with packaging
|
||||
and receiving from circuits.
|
||||
|
||||
[Core protocol implementation.]
|
||||
|
||||
command.c -- Code to handle specific cell types.
|
||||
|
||||
connection.c -- Code used in common by all connection types. See
|
||||
1.2. below for more general information about connections.
|
||||
|
||||
connection_edge.c -- Code used only by edge connections.
|
||||
|
||||
command.c -- Code to handle specific cell types.
|
||||
|
||||
connection_or.c -- Code to implement cell-speaking connections.
|
||||
|
||||
[Hidden services]
|
||||
|
||||
rendclient.c -- Client code to access location-hidden services. This
|
||||
allows clients and servers to run services and have people connect
|
||||
without either end knowing who they are connecting to.
|
||||
|
||||
rendcommon.c -- Rendevzous implementation: Shared code between
|
||||
introducers, services, clients, and rendezvous points.
|
||||
|
||||
rendmid.c -- Implement introduction and rendezvous points.
|
||||
|
||||
rendservice.c -- Hidden-service side of rendezvous functionality.
|
||||
|
||||
[Reputation]
|
||||
|
||||
rephist.c -- Basic history functionality for reputation module.
|
||||
|
||||
[Router lists]
|
||||
|
||||
routerlist.c -- Code to maintain and access global list of routerinfos for
|
||||
known servers.
|
||||
|
||||
routerparse.c -- Code to parse and validate router descriptors and
|
||||
directories.
|
||||
|
||||
[Bandwidth and GUI]
|
||||
|
||||
control.c -- Implementation of Tor's control socket interface. Useful
|
||||
for designing GUIs to interact with Tor.
|
||||
|
||||
hibernate.c -- Functions to close listeners, stop allowing new circuits,
|
||||
and so on in preparation of closing down or going dormant. Also used
|
||||
to track bandwidth and time intervals to know when to hibernate.
|
||||
|
||||
[Toplevel modules.]
|
||||
|
||||
main.c -- Toplevel module. Initializes keys, handles signals,
|
||||
@ -128,6 +186,7 @@ the distant future, stuff may have changed.)
|
||||
test.c -- Contains unit tests for many pieces of the lower level Tor
|
||||
modules.
|
||||
|
||||
|
||||
1.2. All about connections
|
||||
|
||||
All sockets in Tor are handled as different types of nonblocking
|
||||
@ -358,8 +417,8 @@ the distant future, stuff may have changed.)
|
||||
|
||||
2.1. Details
|
||||
|
||||
Use tor_malloc, tor_strdup, and tor_gettimeofday instead of their
|
||||
generic equivalents. (They always succeed or exit.)
|
||||
Use tor_malloc, tor_free, tor_snprintf, tor_strdup, and tor_gettimeofday
|
||||
instead of their generic equivalents. (They always succeed or exit.)
|
||||
|
||||
Use INLINE instead of 'inline', so that we work properly on windows.
|
||||
|
||||
@ -456,7 +515,14 @@ the distant future, stuff may have changed.)
|
||||
int b; /**< Or use the less-than symbol to put the comment after the element. */
|
||||
};
|
||||
|
||||
5. See the Doxygen manual for more information; this summary just scratches
|
||||
5. To generate documentation from the Tor source code, type:
|
||||
|
||||
$ doxygen -g
|
||||
|
||||
To generate a file called 'Doxyfile'. Edit that file and run 'doxygen' to
|
||||
generate the aPI documentation.
|
||||
|
||||
6. See the Doxygen manual for more information; this summary just scratches
|
||||
the surface.
|
||||
|
||||
3. References
|
||||
|
Loading…
Reference in New Issue
Block a user