From bcae392e0edc682990da71524a0802cf79e3e698 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Wed, 13 Apr 2016 03:13:12 -0400 Subject: avoid another redundant check we should avoid launching a consensus fetch if we don't want one, but if we do end up with an extra one, we should let the other checks take care of it. --- src/or/directory.c | 39 +-------------------------------------- src/or/directory.h | 1 - src/or/networkstatus.c | 9 --------- src/or/networkstatus.h | 1 - 4 files changed, 1 insertion(+), 49 deletions(-) (limited to 'src/or') diff --git a/src/or/directory.c b/src/or/directory.c index 2008d07f3e..89b08223d2 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -1173,12 +1173,6 @@ directory_initiate_command_rend(const tor_addr_port_t *or_addr_port, return; } - /* ensure we don't make excess connections when we're already downloading - * a consensus during bootstrap */ - if (connection_dir_avoid_extra_connection_for_purpose(dir_purpose)) { - return; - } - conn = dir_connection_new(tor_addr_family(&addr)); /* set up conn so it's got all the data we need to remember */ @@ -3676,36 +3670,6 @@ connection_dir_finished_flushing(dir_connection_t *conn) return 0; } -/* Check if we would close excess consensus connections. If we would, any - * new consensus connection would become excess immediately, so return 1. - * Otherwise, return 0. */ -int -connection_dir_avoid_extra_connection_for_purpose(unsigned int purpose) -{ - const or_options_t *options = get_options(); - - /* We're not interested in connections that aren't fetching a consensus. */ - if (purpose != DIR_PURPOSE_FETCH_CONSENSUS) { - return 0; - } - - /* we're only interested in avoiding excess connections if we could - * have created any in the first place */ - if (!networkstatus_consensus_can_use_multiple_directories(options)) { - return 0; - } - - /* If there are connections downloading a consensus, and we are still - * bootstrapping (that is, we have no usable consensus), we can be sure that - * any further connections would be excess. */ - if (networkstatus_consensus_is_downloading_usable_flavor() - && networkstatus_consensus_is_bootstrapping(time(NULL))) { - return 1; - } - - return 0; -} - /* We just got a new consensus! If there are other in-progress requests * for this consensus flavor (for example because we launched several in * parallel), cancel them. @@ -3736,8 +3700,7 @@ connection_dir_close_consensus_fetches(dir_connection_t *except_this_one, } /** Connected handler for directory connections: begin sending data to the - * server, and return 0, or, if the connection is an excess bootstrap - * connection, close all excess bootstrap connections. + * server, and return 0. * Only used when connections don't immediately connect. */ int connection_dir_finished_connecting(dir_connection_t *conn) diff --git a/src/or/directory.h b/src/or/directory.h index 3254e073d2..7646cac03f 100644 --- a/src/or/directory.h +++ b/src/or/directory.h @@ -78,7 +78,6 @@ void directory_initiate_command(const tor_addr_t *or_addr, uint16_t or_port, const char *resource, const char *payload, size_t payload_len, time_t if_modified_since); -int connection_dir_avoid_extra_connection_for_purpose(unsigned int purpose); #define DSR_HEX (1<<0) #define DSR_BASE64 (1<<1) diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c index 4a9b36771b..3b38c07ea0 100644 --- a/src/or/networkstatus.c +++ b/src/or/networkstatus.c @@ -1369,15 +1369,6 @@ networkstatus_consensus_is_already_downloading(const char *resource) return answer; } -/* Is tor currently downloading a consensus of the usable flavor? */ -int -networkstatus_consensus_is_downloading_usable_flavor(void) -{ - const char *resource = - networkstatus_get_flavor_name(usable_consensus_flavor()); - return networkstatus_consensus_is_already_downloading(resource); -} - /** Given two router status entries for the same router identity, return 1 if * if the contents have changed between them. Otherwise, return 0. */ static int diff --git a/src/or/networkstatus.h b/src/or/networkstatus.h index e1cd10bf5b..667bc1f062 100644 --- a/src/or/networkstatus.h +++ b/src/or/networkstatus.h @@ -77,7 +77,6 @@ int networkstatus_consensus_can_use_extra_fallbacks( const or_options_t *options); int networkstatus_consensus_has_excess_connections(void); int networkstatus_consensus_is_already_downloading(const char *resource); -int networkstatus_consensus_is_downloading_usable_flavor(void); #define NSSET_FROM_CACHE 1 #define NSSET_WAS_WAITING_FOR_CERTS 2 -- cgit v1.2.3-54-g00ecf