Authorities were adding downtime for every relay every restart

Stop marking every relay as having been down for one hour every
time we restart a directory authority. These artificial downtimes
were messing with our Stable and Guard flag calculations.

Fixes bug 8218 (introduced by the fix for 1035). Bugfix on 0.2.2.23-alpha.
This commit is contained in:
Roger Dingledine 2013-02-12 17:18:51 -05:00
parent 41e0f7146a
commit 5d400b5f7f
2 changed files with 9 additions and 2 deletions

6
changes/bug8218 Normal file
View File

@ -0,0 +1,6 @@
o Major bugfixes:
- Stop marking every relay as having been down for one hour every
time we restart a directory authority. These artificial downtimes
were messing with our Stable and Guard flag calculations. Fixes
bug 8218 (introduced by the fix for 1035). Bugfix on 0.2.2.23-alpha.

View File

@ -310,9 +310,10 @@ rep_hist_note_router_reachable(const char *id, const tor_addr_t *at_addr,
tor_assert(hist); tor_assert(hist);
tor_assert((!at_addr && !at_port) || (at_addr && at_port)); tor_assert((!at_addr && !at_port) || (at_addr && at_port));
addr_changed = at_addr && addr_changed = at_addr && !tor_addr_is_null(&hist->last_reached_addr) &&
tor_addr_compare(at_addr, &hist->last_reached_addr, CMP_EXACT) != 0; tor_addr_compare(at_addr, &hist->last_reached_addr, CMP_EXACT) != 0;
port_changed = at_port && at_port != hist->last_reached_port; port_changed = at_port && hist->last_reached_port &&
at_port != hist->last_reached_port;
if (!started_tracking_stability) if (!started_tracking_stability)
started_tracking_stability = time(NULL); started_tracking_stability = time(NULL);