Skip to content
Snippets Groups Projects
  1. Jun 03, 2006
  2. May 30, 2006
  3. Apr 18, 2006
  4. Mar 26, 2006
  5. Mar 12, 2006
    • Nick Mathewson's avatar
      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
      474c60b7
  6. Feb 13, 2006
  7. Feb 09, 2006
  8. Jan 11, 2006
  9. Jan 02, 2006
  10. Dec 29, 2005
  11. Dec 24, 2005
  12. Dec 23, 2005
  13. Dec 14, 2005
  14. Nov 25, 2005
    • Roger Dingledine's avatar
      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
      fe221f3d
  15. Nov 23, 2005
  16. Oct 25, 2005
  17. Oct 18, 2005
  18. Sep 30, 2005
  19. Sep 23, 2005
  20. Aug 13, 2005
  21. Jul 25, 2005
  22. Jul 18, 2005
  23. Jun 15, 2005
  24. Jun 11, 2005
  25. Jun 09, 2005
  26. Jun 06, 2005
  27. Apr 01, 2005
  28. Feb 28, 2005
  29. Feb 11, 2005
  30. Feb 10, 2005
  31. Jan 17, 2005
    • Roger Dingledine's avatar
      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
      d2400a5a
  32. Dec 07, 2004
  33. Dec 05, 2004
    • Roger Dingledine's avatar
      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.
      
      Fix router_compare_addr_to_addr_policy: it was not treating a port of *
      as always matching, so we were picking reject *:* nodes as exit nodes too.
      
      If you haven't used a clean circuit in an hour, throw it away, just to
      be on the safe side.
      
      This means after 6 hours a totally unused Tor client will have no
      circuits open.
      
      
      svn:r3078
      ef6c9d18
Loading