Browse Source

prop272: Believe that all routers are Valid and Running.

(We check consensus method when deciding whether to assume a node is
valid.  No need to check the consensus method for Running, since
we will never see a method before 13.)

Closes ticket 20001

g
Nick Mathewson 7 years ago
parent
commit
08d2d7c404
2 changed files with 13 additions and 0 deletions
  1. 6 0
      changes/ticket20001
  2. 7 0
      src/or/routerparse.c

+ 6 - 0
changes/ticket20001

@@ -0,0 +1,6 @@
+  o Minor features (client, directory):
+    - Since authorities now omit all routers that lack the Running and Valid
+      flags, we assume that any authority present in the consensus must
+      have those flags. Closes ticket 20001; implements part of proposal
+      272.
+

+ 7 - 0
src/or/routerparse.c

@@ -2845,6 +2845,7 @@ routerstatus_parse_entry_from_string(memarea_t *area,
       }
     }
   } else if (tok) {
+    /* This is a consensus, not a vote. */
     int i;
     for (i=0; i < tok->n_args; ++i) {
       if (!strcmp(tok->args[i], "Exit"))
@@ -2875,6 +2876,12 @@ routerstatus_parse_entry_from_string(memarea_t *area,
         rs->is_v2_dir = 1;
       }
     }
+    /* These are implied true by having been included in a consensus made
+     * with a given method */
+    rs->is_flagged_running = 1; /* Starting with consensus method 4. */
+    if (consensus_method >= MIN_METHOD_FOR_EXCLUDING_INVALID_NODES)
+      rs->is_valid = 1;
+
   }
   if ((tok = find_opt_by_keyword(tokens, K_V))) {
     tor_assert(tok->n_args == 1);