Browse Source

Bugfix on r13098. Backport candidate.
When we made bridge authorities stop serving bridge descriptors over
unencrypted links, we also broke DirPort reachability testing for
bridges. So bridges with a non-zero DirPort were printing spurious
warns to their logs. Bugfix on 0.2.0.16-alpha. Fixes bug 709.


svn:r17945

Roger Dingledine 15 years ago
parent
commit
d95b63f1e4
3 changed files with 11 additions and 5 deletions
  1. 4 0
      ChangeLog
  2. 2 2
      doc/TODO.021
  3. 5 3
      src/or/router.c

+ 4 - 0
ChangeLog

@@ -58,6 +58,10 @@ Changes in version 0.2.1.10-alpha - 2009-01-0?
       from rovv.
     - If a hidden service sends us an END cell, do not consider
       retrying the connection; just close it. Patch from rovv.
+    - When we made bridge authorities stop serving bridge descriptors over
+      unencrypted links, we also broke DirPort reachability testing for
+      bridges. So bridges with a non-zero DirPort were printing spurious
+      warns to their logs. Bugfix on 0.2.0.16-alpha. Fixes bug 709.
 
   o Deprecated and removed features:
     - The old "tor --version --version" command, which would print out

+ 2 - 2
doc/TODO.021

@@ -122,13 +122,13 @@ R   - then document the bridge user download timeline.
 For 0.2.1.x-alpha:
 R d bug: if we launch using bridges, and then stop using bridges, we
     still have our bridges in our entryguards section, and may use them.
-R d add an event to report geoip summaries to vidalia for bridge relays,
+  o add an event to report geoip summaries to vidalia for bridge relays,
     so vidalia can say "recent activity (1-8 users) from sa".
 R - investigate: it looks like if the bridge authority is unreachable,
     we're not falling back on querying bridges directly?
 R - if "no running bridges known", an application request should make
     us retry all our bridges.
-R d Setting DirPort when acting as bridge will give false Warnings
+  o Setting DirPort when acting as bridge will give false Warnings
 
 For 0.2.1.x:
   - Proposals to do:

+ 5 - 3
src/or/router.c

@@ -1412,10 +1412,12 @@ router_rebuild_descriptor(int force)
 
   ri->purpose =
     options->BridgeRelay ? ROUTER_PURPOSE_BRIDGE : ROUTER_PURPOSE_GENERAL;
-  if (!options->BridgeRelay) {
-    ri->cache_info.send_unencrypted = 1;
+  ri->cache_info.send_unencrypted = 1;
+  /* Let bridges serve their own descriptors unencrypted, so they can
+   * pass reachability testing. (If they want to be harder to notice,
+   * they can always leave the DirPort off). */
+  if (!options->BridgeRelay)
     ei->cache_info.send_unencrypted = 1;
-  }
 
   router_get_router_hash(ri->cache_info.signed_descriptor_body,
                          ri->cache_info.signed_descriptor_digest);