[tor-commits] [tor/master] prop272: Believe that all routers are Valid and Running.

nickm at torproject.org nickm at torproject.org
Mon Sep 26 18:03:40 UTC 2016


commit 08d2d7c404af9fd836f2fcc35936899a99f813ae
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Aug 26 14:07:53 2016 -0400

    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
---
 changes/ticket20001  | 6 ++++++
 src/or/routerparse.c | 7 +++++++
 2 files changed, 13 insertions(+)

diff --git a/changes/ticket20001 b/changes/ticket20001
new file mode 100644
index 0000000..a096e3a
--- /dev/null
+++ b/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.
+
diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index 03f8f4e..d7fa17d 100644
--- a/src/or/routerparse.c
+++ b/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);





More information about the tor-commits mailing list