diff options
author | Roger Dingledine <arma@torproject.org> | 2009-04-11 19:40:42 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2009-04-11 19:40:42 +0000 |
commit | c024928b63ac41d722d5dd8b8ef7a305ca10fae2 (patch) | |
tree | c6ee7ed58ae874d0cc5b98e846cdc6dcb20f81af | |
parent | 419d158c74789c82ed3e8d3ef419b177a9ab6d4f (diff) | |
download | tor-c024928b63ac41d722d5dd8b8ef7a305ca10fae2.tar.gz tor-c024928b63ac41d722d5dd8b8ef7a305ca10fae2.zip |
For belt-and-suspenders, relays that don't set Address in their config
now avoid using begin_dir for all direct connections.
svn:r19296
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | src/or/directory.c | 3 |
2 files changed, 8 insertions, 6 deletions
@@ -7,11 +7,12 @@ Changes in version 0.2.1.14-rc - 2009-04-11 o Major bugfixes (on 0.2.0): - Finally fix the bug where dynamic-IP relays disappear when their - IP address changes: directory mirrors were mistakenly telling them - their old address if they asked via begin_dir, so they never got - an accurate answer about their new address, so they just vanished - after a day. Should fix bugs 827, 883, and 900 -- but alas, only - after every directory mirror has upgraded. + IP address changes: directory mirrors were mistakenly telling + them their old address if they asked via begin_dir, so they + never got an accurate answer about their new address, so they + just vanished after a day. For belt-and-suspenders, relays that + don't set Address in their config now avoid using begin_dir for + all direct connections. Should fix bugs 827, 883, and 900. - Relays were falling out of the networkstatus consensus for part of a day if they changed their local config but the authorities discarded their new descriptor as "not sufficiently diff --git a/src/or/directory.c b/src/or/directory.c index 8117dc5f0e..c72061a9f9 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -681,7 +681,8 @@ directory_command_should_use_begindir(or_options_t *options, return 0; /* We don't know an ORPort -- no chance. */ if (!anonymized_connection) if (!fascist_firewall_allows_address_or(addr, or_port) || - directory_fetches_from_authorities(options)) + directory_fetches_from_authorities(options) || + (server_mode(options) && !options->Address)) return 0; /* We're firewalled or are acting like a relay -- also no. */ if (!options->TunnelDirConns && router_purpose != ROUTER_PURPOSE_BRIDGE) |