]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
For belt-and-suspenders, relays that don't set Address in their config
authorRoger Dingledine <arma@torproject.org>
Sat, 11 Apr 2009 19:40:42 +0000 (19:40 +0000)
committerRoger Dingledine <arma@torproject.org>
Sat, 11 Apr 2009 19:40:42 +0000 (19:40 +0000)
now avoid using begin_dir for all direct connections.

svn:r19296

ChangeLog
src/or/directory.c

index dc583de5f2aca622d4b90237ab41eacbd29f1622..a2e2ff66aabfb6e81868885896bdb2dd5b83a752 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index 8117dc5f0e37efd89c50ff430e9bf485b6849484..c72061a9f9707489be11fc1a43700237e166baa1 100644 (file)
@@ -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)