Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
T
Tor
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Benjamin J. Thompson
Tor
Commits
c5b986ec
Commit
c5b986ec
authored
19 years ago
by
Roger Dingledine
Browse files
Options
Downloads
Patches
Plain Diff
clean up hacking file, based on patch from tyranix
svn:r4237
parent
85de62e9
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/HACKING
+77
-11
77 additions, 11 deletions
doc/HACKING
with
77 additions
and
11 deletions
doc/HACKING
+
77
−
11
View file @
c5b986ec
...
...
@@ -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]
router
s
.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
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment