summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2016-04-13 03:13:12 -0400
committerRoger Dingledine <arma@torproject.org>2016-05-09 14:41:54 -0400
commitbcae392e0edc682990da71524a0802cf79e3e698 (patch)
tree235ff52b62f44c4e232fd88909efd7cbcb4a9630
parente230e80ab3021caf8153d2ba09bab5cb185366dc (diff)
downloadtor-bcae392e0edc682990da71524a0802cf79e3e698.tar.gz
tor-bcae392e0edc682990da71524a0802cf79e3e698.zip
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.
-rw-r--r--src/or/directory.c39
-rw-r--r--src/or/directory.h1
-rw-r--r--src/or/networkstatus.c9
-rw-r--r--src/or/networkstatus.h1
4 files changed, 1 insertions, 49 deletions
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