From 08d2d7c404af9fd836f2fcc35936899a99f813ae Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 26 Aug 2016 14:07:53 -0400 Subject: [PATCH] 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(+) create mode 100644 changes/ticket20001 diff --git a/changes/ticket20001 b/changes/ticket20001 new file mode 100644 index 0000000000..a096e3a3d5 --- /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 03f8f4eded..d7fa17dd9d 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);