From c8c22980151b220ec79fc2979bc7db3a9fe962d5 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 8 Oct 2013 11:48:33 -0400 Subject: 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. --- src/or/circuitbuild.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) (limited to 'src/or') diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index a203ceeef1..a685b0b272 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 nodes 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; } -- cgit v1.2.3-54-g00ecf