Просмотр исходного кода

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.
Roger Dingledine 10 лет назад
Родитель
Сommit
bcae392e0e
4 измененных файлов с 1 добавлено и 49 удалено
  1. 1 38
      src/or/directory.c
  2. 0 1
      src/or/directory.h
  3. 0 9
      src/or/networkstatus.c
  4. 0 1
      src/or/networkstatus.h

+ 1 - 38
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)

+ 0 - 1
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)

+ 0 - 9
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

+ 0 - 1
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