[tor-commits] [tor/master] Simply route length generation code.

nickm at torproject.org nickm at torproject.org
Tue Oct 8 15:56:26 UTC 2013


commit c8c22980151b220ec79fc2979bc7db3a9fe962d5
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue Oct 8 11:48:33 2013 -0400

    Simply route length generation code.
    
    The old code had logic to use a shorter path length if we didn't
    have enough nodes. But we don't support 2-node networks anwyay.
    
    Fix for #9926.  I'm not calling this a bugfix on any particular
    version, since a 2-node network would fail to work for you for a lot
    of other reasons too, and it's not clear to me when that began, or if
    2-node networks would ever have worked.
---
 changes/bug9926       |    6 ++++++
 src/or/circuitbuild.c |   18 ++++--------------
 2 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/changes/bug9926 b/changes/bug9926
new file mode 100644
index 0000000..51af5e0
--- /dev/null
+++ b/changes/bug9926
@@ -0,0 +1,6 @@
+  o Minor bugfixes:
+    - Remove some old fallback code designed to keep Tor clients working
+      in a network with only two working nodes. Elsewhere in the code we
+      have long since stopped supporting such networks, so there wasn't
+      much point in keeping it around. Fixes bug 9926.
+
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index a203cee..a685b0b 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -2762,11 +2762,7 @@ onionskin_answer(or_circuit_t *circ,
  * number of endpoints that would give something away about our destination.
  *
  * If the routerlist <b>nodes</b> doesn't have enough routers
- * to handle the desired path length, return as large a path length as
- * is feasible, except if it's less than 2, in which case return -1.
- * XXX ^^ I think this behavior is a hold-over from back when we had only a
- *     few relays in the network, and certainly back before guards existed.
- *     We should very likely get rid of it. -RD
+ * to handle the desired path length, return -1.
  */
 static int
 new_route_len(uint8_t purpose, extend_info_t *exit, smartlist_t *nodes)
@@ -2787,19 +2783,13 @@ new_route_len(uint8_t purpose, extend_info_t *exit, smartlist_t *nodes)
   log_debug(LD_CIRC,"Chosen route length %d (%d/%d routers suitable).",
             routelen, num_acceptable_routers, smartlist_len(nodes));
 
-  if (num_acceptable_routers < 2) {
+  if (num_acceptable_routers < routelen) {
     log_info(LD_CIRC,
-             "Not enough acceptable routers (%d). Discarding this circuit.",
-             num_acceptable_routers);
+             "Not enough acceptable routers (%d/%d). Discarding this circuit.",
+             num_acceptable_routers, routelen);
     return -1;
   }
 
-  if (num_acceptable_routers < routelen) {
-    log_info(LD_CIRC,"Not enough routers: cutting routelen from %d to %d.",
-             routelen, num_acceptable_routers);
-    routelen = num_acceptable_routers;
-  }
-
   return routelen;
 }
 



More information about the tor-commits mailing list