1. 18 Apr, 2006 1 commit
2. 26 Mar, 2006 1 commit
3. 12 Mar, 2006 1 commit
• Cleanup on time-relaqted constants. New conventions: · 474c60b7
Nick Mathewson authored
1) Surround all constants by (parens), whether we'll be using them
in a denominator or not.
2) Express all time periods as products (24*60*60), not as multiplied-out
constants (86400).
3) Comments like "(60*60) /* one hour */" are as pointless as comments
like "c = a + b; /* set c to the sum of a and b */".  Remove them.
4) All time periods should be #defined constants, not given inline.
5) All time periods should have doxygen comments.
6) All time periods, unless specified, are in seconds.  It's not necessary
to say so.

To summarize, the old (lack of) style would allow:

#define FOO_RETRY_INTERVAL 60*60 /* one hour (seconds) */
next_try = now + 3600;

The new style is:

/** How often do we reattempt foo? */
#define FOO_RETRY_INTERVAL (60*60)

next_try = now + RETRY_INTERVAL;

svn:r6142
4. 13 Feb, 2006 1 commit
5. 09 Feb, 2006 1 commit
6. 11 Jan, 2006 2 commits
7. 02 Jan, 2006 2 commits
8. 29 Dec, 2005 1 commit
9. 24 Dec, 2005 1 commit
10. 23 Dec, 2005 1 commit
11. 14 Dec, 2005 1 commit
12. 25 Nov, 2005 1 commit
• Start the process of treating internal circuits and exit circuits · fe221f3d
Roger Dingledine authored
separately. It's important to keep them separate because internal
circuits have their last hops picked like middle hops, rather than like
exit hops. So exiting on them will break the user's expectations.

- Stop cannibalizing internal circuits for general exits, and stop
cannibalizing exit circuits for rendezvous stuff.

- Don't let new exit streams attach to internal circuits.

- When deciding if we have enough circuits for internal and for exit,
don't count the wrong ones.

- Treat predicted resolves as predicted port 80 exits.

svn:r5457
13. 23 Nov, 2005 1 commit
14. 25 Oct, 2005 1 commit
15. 18 Oct, 2005 2 commits
16. 30 Sep, 2005 2 commits
17. 23 Sep, 2005 2 commits
18. 13 Aug, 2005 1 commit
19. 25 Jul, 2005 1 commit
20. 18 Jul, 2005 1 commit
21. 15 Jun, 2005 1 commit
22. 11 Jun, 2005 1 commit
23. 09 Jun, 2005 1 commit
24. 06 Jun, 2005 1 commit
25. 01 Apr, 2005 1 commit
26. 28 Feb, 2005 1 commit
27. 11 Feb, 2005 1 commit
28. 10 Feb, 2005 1 commit
29. 17 Jan, 2005 1 commit
• Introduce a notion of 'internal' circs, which are chosen without regard · d2400a5a
Roger Dingledine authored
to the exit policy of the last hop. Intro and rendezvous circs must
be internal circs, to avoid leaking information. Resolve and connect
streams can use internal circs if they want.

New circuit pooling algorithm: make sure to have enough circs around
to satisfy any predicted ports, and also make sure to have 2 internal
circs around if we've required internal circs lately (with high uptime
if we've seen that lately).

Split NewCircuitPeriod config option into NewCircuitPeriod (30 secs),
which describes how often we retry making new circuits if current ones
are dirty, and MaxCircuitDirtiness (10 mins), which describes how long
we're willing to make use of an already-dirty circuit.

Once rendezvous circuits are established, keep using the same circuit as
long as you attach a new stream to it at least every 10 minutes. (So web
browsing doesn't require you to build new rend circs every 30 seconds.)

Cannibalize GENERAL circs to be C_REND, C_INTRO, S_INTRO, and S_REND
circ as necessary, if there are any completed ones lying around when
we try to launch one.

Re-instate the ifdef's to use version-0 style introduce cells, since
there was yet another bug in handling version-1 style. We'll try switching
over again after 0.0.9 is obsolete.

Bugfix: when choosing an exit node for a new non-internal circ, don't take
into account whether it'll be useful for any pending x.onion addresses --
it won't.

Bugfix: we weren't actually publishing the hidden service descriptor when
it became dirty. So we only published it every 20 minutes or so, which
means when you first start your Tor, the hidden service will seem broken.

svn:r3360
30. 07 Dec, 2004 2 commits
• I'm a bad person. · 802d374a
Roger Dingledine authored
Stop treating the uint16_t's as null-terminated strings,
and stop looking at the byte after them to see if it's null,
because sometimes you're not allowed to look there.

svn:r3108
• Renormalize whitespace · d19648b3
Nick Mathewson authored
svn:r3095
31. 05 Dec, 2004 1 commit
• New circuit building strategy: keep a list of ports that we've used in ... · ef6c9d18
Roger Dingledine authored
New circuit building strategy: keep a list of ports that we've used in                     the past 6 hours, and always try to have 2 circuits open or on the way
that will handle each such port. (We can extend this to include addresses
if exit policies shift to require that.) Seed us with port 80 so web
browsers won't complain that Tor is "slow to start up".

This was necessary because our old circuit building strategy just involved
counting circuits, and as time went by we would build up a big pile of
circuits that had peculiar exit policies (e.g. only exit to 9001-9100)
which would take up space in the circuit pile but never get used.