• 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