Pārlūkot izejas kodu

Remove MIN_METHOD_FOR and MIN_METHOD_FOR_A_LINES

Also, in networkstatus.c, remove client code for recognizing pre-
MIN_METHOD_FOR_A_LINES consensuses, and corresponding unit tests in
test_dir.c.
Nick Mathewson 6 gadi atpakaļ
vecāks
revīzija
08373467b1
4 mainītis faili ar 12 papildinājumiem un 30 dzēšanām
  1. 6 9
      src/or/dirvote.c
  2. 0 7
      src/or/dirvote.h
  3. 1 1
      src/or/networkstatus.c
  4. 5 13
      src/test/test_dir.c

+ 6 - 9
src/or/dirvote.c

@@ -549,12 +549,12 @@ compute_routerstatus_consensus(smartlist_t *votes, int consensus_method,
 
   tor_assert(most);
 
-  /* If we're producing "a" lines, vote on potential alternative (sets
-   * of) OR port(s) in the winning routerstatuses.
+  /* Vote on potential alternative (sets of) OR port(s) in the winning
+   * routerstatuses.
    *
    * XXX prop186 There's at most one alternative OR port (_the_ IPv6
    * port) for now. */
-  if (consensus_method >= MIN_METHOD_FOR_A_LINES && best_alt_orport_out) {
+  if (best_alt_orport_out) {
     smartlist_t *alt_orports = smartlist_new();
     const tor_addr_port_t *most_alt_orport = NULL;
 
@@ -1890,10 +1890,8 @@ networkstatus_compute_consensus(smartlist_t *votes,
       rs_out.published_on = rs->status.published_on;
       rs_out.dir_port = rs->status.dir_port;
       rs_out.or_port = rs->status.or_port;
-      if (consensus_method >= MIN_METHOD_FOR_A_LINES) {
-        tor_addr_copy(&rs_out.ipv6_addr, &alt_orport.addr);
-        rs_out.ipv6_orport = alt_orport.port;
-      }
+      tor_addr_copy(&rs_out.ipv6_addr, &alt_orport.addr);
+      rs_out.ipv6_orport = alt_orport.port;
       rs_out.has_bandwidth = 0;
       rs_out.has_exitsummary = 0;
 
@@ -3846,8 +3844,7 @@ dirvote_create_microdescriptor(const routerinfo_t *ri, int consensus_method)
 
   /* We originally put a lines in the micrdescriptors, but then we worked out
    * that we needed them in the microdesc consensus. See #20916. */
-  if (consensus_method >= MIN_METHOD_FOR_A_LINES &&
-      consensus_method < MIN_METHOD_FOR_NO_A_LINES_IN_MICRODESC &&
+  if (consensus_method < MIN_METHOD_FOR_NO_A_LINES_IN_MICRODESC &&
       !tor_addr_is_null(&ri->ipv6_addr) && ri->ipv6_orport)
     smartlist_add_asprintf(chunks, "a %s\n",
                            fmt_addrport(&ri->ipv6_addr, ri->ipv6_orport));

+ 0 - 7
src/or/dirvote.h

@@ -61,13 +61,6 @@
 /** The highest consensus method that we currently support. */
 #define MAX_SUPPORTED_CONSENSUS_METHOD 28
 
-/** Lowest consensus method where microdesc consensuses omit any entry
- * with no microdesc. */
-#define MIN_METHOD_FOR_MANDATORY_MICRODESC 13
-
-/** Lowest consensus method that contains "a" lines. */
-#define MIN_METHOD_FOR_A_LINES 14
-
 /** Lowest consensus method where microdescs may include a "p6" line. */
 #define MIN_METHOD_FOR_P6_LINES 15
 

+ 1 - 1
src/or/networkstatus.c

@@ -1528,7 +1528,7 @@ networkstatus_consensus_has_ipv6(const or_options_t* options)
     return
        cons->consensus_method >= MIN_METHOD_FOR_A_LINES_IN_MICRODESC_CONSENSUS;
   } else {
-    return cons->consensus_method >= MIN_METHOD_FOR_A_LINES;
+    return 1;
   }
 }
 

+ 5 - 13
src/test/test_dir.c

@@ -5771,22 +5771,10 @@ test_dir_networkstatus_consensus_has_ipv6(void *arg)
   /* Test the bounds for A lines in the NS consensus */
   mock_options->UseMicrodescriptors = 0;
 
-  mock_networkstatus->consensus_method = MIN_METHOD_FOR_A_LINES;
+  mock_networkstatus->consensus_method = MIN_SUPPORTED_CONSENSUS_METHOD;
   has_ipv6 = networkstatus_consensus_has_ipv6(get_options());
   tt_assert(has_ipv6);
 
-  mock_networkstatus->consensus_method = MIN_METHOD_FOR_A_LINES + 1;
-  has_ipv6 = networkstatus_consensus_has_ipv6(get_options());
-  tt_assert(has_ipv6);
-
-  mock_networkstatus->consensus_method = MIN_METHOD_FOR_A_LINES + 20;
-  has_ipv6 = networkstatus_consensus_has_ipv6(get_options());
-  tt_assert(has_ipv6);
-
-  mock_networkstatus->consensus_method = MIN_METHOD_FOR_A_LINES - 1;
-  has_ipv6 = networkstatus_consensus_has_ipv6(get_options());
-  tt_assert(!has_ipv6);
-
   /* Test the bounds for A lines in the microdesc consensus */
   mock_options->UseMicrodescriptors = 1;
 
@@ -5795,6 +5783,10 @@ test_dir_networkstatus_consensus_has_ipv6(void *arg)
   has_ipv6 = networkstatus_consensus_has_ipv6(get_options());
   tt_assert(has_ipv6);
 
+  mock_networkstatus->consensus_method = MAX_SUPPORTED_CONSENSUS_METHOD + 20;
+  has_ipv6 = networkstatus_consensus_has_ipv6(get_options());
+  tt_assert(has_ipv6);
+
   mock_networkstatus->consensus_method =
       MIN_METHOD_FOR_A_LINES_IN_MICRODESC_CONSENSUS + 1;
   has_ipv6 = networkstatus_consensus_has_ipv6(get_options());