summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| | | * | | | | | | Issues with router_get_by_nickname()Robert Hogan2010-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://trac.torproject.org/projects/tor/ticket/1859 Use router_get_by_digest() instead of router_get_by_hexdigest() in circuit_discard_optional_exit_enclaves() and rend_client_get_random_intro(), per Nick's comments. Using router_get_by_digest() in rend_client_get_random_intro() will break hidden services published by Tor versions pre 0.1.2.18 and 0.2.07-alpha as they only publish by nickname. This is acceptable however as these versions only publish to authority tor26 and don't work for versions in the 0.2.2.x series anyway.
| | | * | | | | | | Issues with router_get_by_nickname()Robert Hogan2010-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://trac.torproject.org/projects/tor/ticket/1859 There are two problems in this bug: 1. When an OP makes a .exit request specifying itself as the exit, and the exit is not yet listed, Tor gets all the routerinfos needed for the circuit but discovers in circuit_is_acceptable() that its own routerinfo is not in the routerdigest list and cannot be used. Tor then gets locked in a cycle of repeating these two steps. When gathering the routerinfos for a circuit, specifically when the exit has been chosen by .exit notation, Tor needs to apply the same rules it uses later on when deciding if it can build a circuit with those routerinfos. 2. A different bug arises in the above situation when the Tor instance's routerinfo *is* listed in the routerlist, it shares its nickname with a number of other Tor nodes, and it does not have 'Named' rights to its nickname. So for example, if (i) there are five nodes named Bob in the network, (ii) I am running one of them but am flagged as 'Unnamed' because someone else claimed the 'Bob' nickname first, and (iii) I run my Tor as both client and exit the following can happen to me: - I go to www.evil.com - I click on a link www.evil.com.bob.exit - My request will exit through my own Tor node rather than the 'Named' node Bob or any of the others. - www.evil.com now knows I am actually browsing from the same computer that is running my 'Bob' node So to solve both issues we need to ensure: - When fulfilling a .exit request we only choose a routerinfo if it exists in the routerlist, even when that routerinfo is ours. - When getting a router by nickname we only return our own router information if it is not going to be used for building a circuit. We ensure this by removing the special treatment afforded our own router in router_get_by_nickname(). This means the function will only return the routerinfo of our own router if it is in the routerlist built from authority info and has a unique nickname or is bound to a non-unique nickname. There are some uses of router_get_by_nickname() where we are looking for the router by name because of a configuration directive, specifically local declaration of NodeFamilies and EntryNodes and other routers' declaration of MyFamily. In these cases it is not at first clear if we need to continue returning our own routerinfo even if our router is not listed and/or has a non-unique nickname with the Unnamed flag. The patch treats each of these cases as follows: Other Routers' Declaration of MyFamily This happens in routerlist_add_family(). If another router declares our router in its family and our router has the Unnamed flag or is not in the routerlist yet, should we take advantage of the fact that we know our own routerinfo to add us in anyway? This patch says 'no, treat our own router just like any other'. This is a safe choice because it ensures our client has the same view of the network as other clients. We also have no good way of knowing if our router is Named or not independently of the authorities, so we have to rely on them in this. Local declaration of NodeFamilies Again, we have no way of knowing if the declaration 'NodeFamilies Bob,Alice,Ringo' refers to our router Bob or the Named router Bob, so we have to defer to the authorities and treat our own router like any other. Local declaration of NodeFamilies Again, same as above. There's also no good reason we would want our client to choose it's own router as an entry guard if it does not meet the requirements expected of any other router on the network. In order to reduce the possibility of error, the patch also replaces two instances where we were using router_get_by_nickname() with calls to router_get_by_hexdigest() where the identity digest of the router is available.
* | | | | | | | | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2011-02-22
|\ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / /
| * | | | | | | | | changes file for removing torspec from the tarballRoger Dingledine2011-02-22
| | | | | | | | | |
| * | | | | | | | | Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2Nick Mathewson2011-02-22
| |\ \ \ \ \ \ \ \ \ | | |/ / / / / / / / | | | | / / / / / / | | |_|/ / / / / / | |/| | | | | | | Use "ours" strategy" to avoid taking bug2402 fix.
| | * | | | | | | Merge remote branch 'public/bug2402_nothing' into maint-0.2.1Nick Mathewson2011-02-22
| | |\ \ \ \ \ \ \
| | | * | | | | | | Simplest fix to bug2402: do not include SVN versionsNick Mathewson2011-01-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we stopped using svn, 0.2.1.x lost the ability to notice its svn revision and report it in the version number. However, it kept looking at the micro-revision.i file... so if you switched to master, built tor, then switched to 0.2.1.x, you'd get a micro-revision.i file from master reported as an SVN tag. This patch takes out the "include the svn tag" logic entirely. Bugfix on 0.2.1.15-rc; fixes bug 2402.
| | * | | | | | | | changes file for removing torspec from the tarballRoger Dingledine2011-02-22
| | | | | | | | | |
* | | | | | | | | | Merge branch 'maint-0.2.2'Roger Dingledine2011-02-22
|\ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / /
| * | | | | | | | | Merge branch 'maint-0.2.1' into maint-0.2.2Roger Dingledine2011-02-22
| |\ \ \ \ \ \ \ \ \ | | |/ / / / / / / /
| | * | | | | | | | prefer https urlsRoger Dingledine2011-02-22
| | | | | | | | | |
* | | | | | | | | | Merge remote branch 'sebastian/bug2496'Nick Mathewson2011-02-22
|\ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | Don't tell Tor client users about missing geoipSebastian Hahn2011-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | They don't need the geoip file for stats, so a missing geoipfile is not a big issue. Also make the log message a bit friendlier. Fixes bug 2496.
* | | | | | | | | | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2011-02-22
|\ \ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/or/policies.c src/or/policies.h
| * | | | | | | | | | Don't let bad DNS make exit policy and declared exit policy get out of syncNick Mathewson2011-02-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch from "postman" on trac. Fixes bg 2366. Bug on 0.1.2.5-alpha.
* | | | | | | | | | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2011-02-22
|\ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / /
| * | | | | | | | | | Merge branch 'log_domains' into maint-0.2.2Nick Mathewson2011-02-22
| |\ \ \ \ \ \ \ \ \ \
| | * | | | | | | | | | That shalt also not have a label without a statement.Nick Mathewson2011-02-22
| | | | | | | | | | | |
| | * | | | | | | | | | Thou shalt not overflow even stupidly small buffersRobert Ransom2011-02-04
| | | | | | | | | | | |
| | * | | | | | | | | | Add a torrc option to report log domainsNick Mathewson2011-01-25
| | | | | | | | | | | |
| | * | | | | | | | | | Simplify syntax for negated log domainsNick Mathewson2011-01-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously if you wanted to say "All messages except network messages", you needed to say "[*,~net]" and if you said "[~net]" by mistake, you would get no messages at all. Now, if you say "[~net]", you get everything except networking messages.
| | * | | | | | | | | | Add manpage entry for logging domainsNick Mathewson2011-01-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes issue 2215.
* | | | | | | | | | | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2011-02-22
|\ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / /
| * | | | | | | | | | | Merge remote branch 'sebastian/bug2504' into maint-0.2.2Nick Mathewson2011-02-22
| |\ \ \ \ \ \ \ \ \ \ \
| | * | | | | | | | | | | Windows has EACCES, not EACCESSSebastian Hahn2011-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Once again spotted by mobmix Also add a changes file for the fix
* | | | | | | | | | | | | Add a changes file for the heartbeat codeNick Mathewson2011-02-22
| | | | | | | | | | | | |
* | | | | | | | | | | | | Tweak some names and comments in asn's heartbeat patchNick Mathewson2011-02-22
| | | | | | | | | | | | |
* | | | | | | | | | | | | Implement more heartbeat message stuff.George Kadianakis2011-02-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (This squashes multiple commits: * Adds uptime monitoring support. * Adds circuit counting code. * Trivially tweaks the documentation. * Trivial run_scheduled_events() code tweaking. * Adds a status.h to export functions. * Added bandwidth monitoring code. * Added consensus presense detection code. * Restricts the precision of the bandwidth output. * Various fixes. * Fixed style and spacing problems. * Tidied up src/or/Makefile.am * Couple of minor fixes on status.c functions. * 'Implemented' client heartbeat support )
* | | | | | | | | | | | | Initial heartbeat subsystem commit.Sebastian Hahn2011-02-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sets: * Documentation * Logging domain * Configuration option * Scheduled event * Makefile It also creates status.c and the log_heartbeat() function. All code was written by Sebastian Hahn. Commit message was written by me (George Kadianakis).
* | | | | | | | | | | | | Merge remote branch 'sebastian/bug2444'Nick Mathewson2011-02-22
|\ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | Log which config file we readSebastian Hahn2011-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is often not entirely clear what options Tor was built with, so it might not be immediately obvious which config file Tor is using when it found one. Log the config file at startup.
* | | | | | | | | | | | | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2011-02-22
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / / / / | |/| | | | | | | | | | | |
| * | | | | | | | | | | | | Merge remote branch 'rransom/bug2572' into maint-0.2.2Nick Mathewson2011-02-22
| |\ \ \ \ \ \ \ \ \ \ \ \ \
| | * | | | | | | | | | | | | Don't crash a bridge authority on SIGHUP if it's not in the consensusRobert Ransom2011-02-16
| | | |/ / / / / / / / / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes bug 2572.
* | | | | | | | | | | | | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2011-02-21
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/spec/Makefile.am doc/spec/control-spec.txt doc/spec/dir-spec.txt doc/spec/proposals/000-index.txt doc/spec/proposals/001-process.txt doc/spec/proposals/ideas/xxx-encrypted-services.txt
| * | | | | | | | | | | | | Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2Nick Mathewson2011-02-21
| |\ \ \ \ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / / / / | |/| | | | / / / / / / / / | | | |_|_|/ / / / / / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/Makefile.am doc/spec/Makefile.am doc/spec/address-spec.txt doc/spec/bridges-spec.txt doc/spec/control-spec-v0.txt doc/spec/control-spec.txt doc/spec/dir-spec-v1.txt doc/spec/dir-spec-v2.txt doc/spec/dir-spec.txt doc/spec/path-spec.txt doc/spec/proposals/000-index.txt doc/spec/proposals/001-process.txt doc/spec/proposals/098-todo.txt doc/spec/proposals/099-misc.txt doc/spec/proposals/100-tor-spec-udp.txt doc/spec/proposals/101-dir-voting.txt doc/spec/proposals/102-drop-opt.txt doc/spec/proposals/103-multilevel-keys.txt doc/spec/proposals/104-short-descriptors.txt doc/spec/proposals/105-handshake-revision.txt doc/spec/proposals/106-less-tls-constraint.txt doc/spec/proposals/107-uptime-sanity-checking.txt doc/spec/proposals/108-mtbf-based-stability.txt doc/spec/proposals/109-no-sharing-ips.txt doc/spec/proposals/110-avoid-infinite-circuits.txt doc/spec/proposals/111-local-traffic-priority.txt doc/spec/proposals/112-bring-back-pathlencoinweight.txt doc/spec/proposals/113-fast-authority-interface.txt doc/spec/proposals/114-distributed-storage.txt doc/spec/proposals/115-two-hop-paths.txt doc/spec/proposals/116-two-hop-paths-from-guard.txt doc/spec/proposals/117-ipv6-exits.txt doc/spec/proposals/118-multiple-orports.txt doc/spec/proposals/119-controlport-auth.txt doc/spec/proposals/120-shutdown-descriptors.txt doc/spec/proposals/121-hidden-service-authentication.txt doc/spec/proposals/122-unnamed-flag.txt doc/spec/proposals/123-autonaming.txt doc/spec/proposals/124-tls-certificates.txt doc/spec/proposals/125-bridges.txt doc/spec/proposals/126-geoip-reporting.txt doc/spec/proposals/127-dirport-mirrors-downloads.txt doc/spec/proposals/128-bridge-families.txt doc/spec/proposals/129-reject-plaintext-ports.txt doc/spec/proposals/130-v2-conn-protocol.txt doc/spec/proposals/131-verify-tor-usage.txt doc/spec/proposals/132-browser-check-tor-service.txt doc/spec/proposals/134-robust-voting.txt doc/spec/proposals/135-private-tor-networks.txt doc/spec/proposals/137-bootstrap-phases.txt doc/spec/proposals/138-remove-down-routers-from-consensus.txt doc/spec/proposals/140-consensus-diffs.txt doc/spec/proposals/141-jit-sd-downloads.txt doc/spec/proposals/142-combine-intro-and-rend-points.txt doc/spec/proposals/143-distributed-storage-improvements.txt doc/spec/proposals/145-newguard-flag.txt doc/spec/proposals/146-long-term-stability.txt doc/spec/proposals/147-prevoting-opinions.txt doc/spec/proposals/148-uniform-client-end-reason.txt doc/spec/proposals/149-using-netinfo-data.txt doc/spec/proposals/150-exclude-exit-nodes.txt doc/spec/proposals/151-path-selection-improvements.txt doc/spec/proposals/152-single-hop-circuits.txt doc/spec/proposals/153-automatic-software-update-protocol.txt doc/spec/proposals/154-automatic-updates.txt doc/spec/proposals/155-four-hidden-service-improvements.txt doc/spec/proposals/156-tracking-blocked-ports.txt doc/spec/proposals/157-specific-cert-download.txt doc/spec/proposals/158-microdescriptors.txt doc/spec/proposals/159-exit-scanning.txt doc/spec/proposals/ideas/xxx-hide-platform.txt doc/spec/proposals/ideas/xxx-port-knocking.txt doc/spec/proposals/ideas/xxx-separate-streams-by-port.txt doc/spec/proposals/ideas/xxx-what-uses-sha1.txt doc/spec/proposals/reindex.py doc/spec/rend-spec.txt doc/spec/socks-extensions.txt doc/spec/tor-spec.txt doc/spec/version-spec.txt
| | * | | | | | | | | | | Remove specs from 0.2.1 branch: they have moved to a new repository.Nick Mathewson2011-02-21
| | | | | | | | | | | | |
* | | | | | | | | | | | | Add a perl script to find changes files that have already been merged into ↵Nick Mathewson2011-02-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | release-0.2.2
* | | | | | | | | | | | | Remove changes files that predate current origin/release-0.2.2Nick Mathewson2011-02-21
| | | | | | | | | | | | |
* | | | | | | | | | | | | latest revision of cert normalization specJacob Appelbaum2011-02-21
| | | | | | | | | | | | |
* | | | | | | | | | | | | Add fixed string and nonce to prop 176 at suggestion from aglNick Mathewson2011-02-21
| | | | | | | | | | | | |
* | | | | | | | | | | | | Add TLS/cert normalization spec draftJacob Appelbaum2011-02-18
| | | | | | | | | | | | |
* | | | | | | | | | | | | Quick patch to pluggable transport specJacob Appelbaum2011-02-18
| | | | | | | | | | | | |
* | | | | | | | | | | | | Add proposal 177: Abstaining from votes on individual flagsNick Mathewson2011-02-14
| | | | | | | | | | | | |
* | | | | | | | | | | | | get a proposal i started last month into gitRoger Dingledine2011-02-14
| | | | | | | | | | | | |
* | | | | | | | | | | | | Merge branch 'maint-0.2.2'Roger Dingledine2011-02-11
|\ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / /
| * | | | | | | | | | | | Merge branch 'maint-0.2.1' into maint-0.2.2Roger Dingledine2011-02-11
| |\ \ \ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / / /
| | * | | | | | | | | | | fix the other half of bug 1074Roger Dingledine2011-02-10
| | | | | | | | | | | | |
* | | | | | | | | | | | | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-02-10
|\ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / /
| * | | | | | | | | | | | Merge remote-tracking branch 'rransom/bug2089' into maint-0.2.2Nick Mathewson2011-02-10
| |\ \ \ \ \ \ \ \ \ \ \ \