Loading changes/bug8146_etc +3 −0 Original line number Diff line number Diff line Loading @@ -8,3 +8,6 @@ - Do not consider nodes with extremely low bandwidths when deciding thresholds for various directory flags. Another fix for 8145. - When marking a node as a likely sybil, reset its uptime metrics to zero, so that it cannot time towards getting marked as Guard, Stable, or HSDir. Fix for bug 8147. src/or/dirserv.c +5 −0 Original line number Diff line number Diff line Loading @@ -2776,6 +2776,11 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t *private_key, routers_sort_by_identity(routers); omit_as_sybil = get_possible_sybil_list(routers); DIGESTMAP_FOREACH(omit_as_sybil, sybil_id, void *, ignore) { (void) ignore; rep_hist_make_router_pessimal(sybil_id, now); } DIGESTMAP_FOREACH_END; dirserv_compute_performance_thresholds(rl, omit_as_sybil); routerstatuses = smartlist_new(); Loading src/or/rephist.c +15 −0 Original line number Diff line number Diff line Loading @@ -422,6 +422,21 @@ rep_hist_note_router_unreachable(const char *id, time_t when) } } /** Mark a router with ID <b>id</b> as non-Running, and retroactively declare * that it has never been running: give it no stability and no WFU. */ void rep_hist_make_router_pessimal(const char *id, time_t when) { or_history_t *hist = get_or_history(id); tor_assert(hist); rep_hist_note_router_unreachable(id, when); mark_or_down(hist, when, 1); hist->weighted_run_length = 0; hist->weighted_uptime = 0; } /** Helper: Discount all old MTBF data, if it is time to do so. Return * the time at which we should next discount MTBF data. */ time_t Loading src/or/rephist.h +2 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ void rep_hist_dump_stats(time_t now, int severity); void rep_hist_note_bytes_read(size_t num_bytes, time_t when); void rep_hist_note_bytes_written(size_t num_bytes, time_t when); void rep_hist_make_router_pessimal(const char *id, time_t when); void rep_hist_note_dir_bytes_read(size_t num_bytes, time_t when); void rep_hist_note_dir_bytes_written(size_t num_bytes, time_t when); Loading Loading
changes/bug8146_etc +3 −0 Original line number Diff line number Diff line Loading @@ -8,3 +8,6 @@ - Do not consider nodes with extremely low bandwidths when deciding thresholds for various directory flags. Another fix for 8145. - When marking a node as a likely sybil, reset its uptime metrics to zero, so that it cannot time towards getting marked as Guard, Stable, or HSDir. Fix for bug 8147.
src/or/dirserv.c +5 −0 Original line number Diff line number Diff line Loading @@ -2776,6 +2776,11 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t *private_key, routers_sort_by_identity(routers); omit_as_sybil = get_possible_sybil_list(routers); DIGESTMAP_FOREACH(omit_as_sybil, sybil_id, void *, ignore) { (void) ignore; rep_hist_make_router_pessimal(sybil_id, now); } DIGESTMAP_FOREACH_END; dirserv_compute_performance_thresholds(rl, omit_as_sybil); routerstatuses = smartlist_new(); Loading
src/or/rephist.c +15 −0 Original line number Diff line number Diff line Loading @@ -422,6 +422,21 @@ rep_hist_note_router_unreachable(const char *id, time_t when) } } /** Mark a router with ID <b>id</b> as non-Running, and retroactively declare * that it has never been running: give it no stability and no WFU. */ void rep_hist_make_router_pessimal(const char *id, time_t when) { or_history_t *hist = get_or_history(id); tor_assert(hist); rep_hist_note_router_unreachable(id, when); mark_or_down(hist, when, 1); hist->weighted_run_length = 0; hist->weighted_uptime = 0; } /** Helper: Discount all old MTBF data, if it is time to do so. Return * the time at which we should next discount MTBF data. */ time_t Loading
src/or/rephist.h +2 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ void rep_hist_dump_stats(time_t now, int severity); void rep_hist_note_bytes_read(size_t num_bytes, time_t when); void rep_hist_note_bytes_written(size_t num_bytes, time_t when); void rep_hist_make_router_pessimal(const char *id, time_t when); void rep_hist_note_dir_bytes_read(size_t num_bytes, time_t when); void rep_hist_note_dir_bytes_written(size_t num_bytes, time_t when); Loading