|
@@ -1519,15 +1519,21 @@ dirserv_compute_performance_thresholds(digestmap_t *omit_as_sybil)
|
|
node->ri &&
|
|
node->ri &&
|
|
node->ri->purpose != ROUTER_PURPOSE_BRIDGE)
|
|
node->ri->purpose != ROUTER_PURPOSE_BRIDGE)
|
|
continue;
|
|
continue;
|
|
|
|
+
|
|
|
|
+ routerinfo_t *ri = node->ri;
|
|
|
|
+ if (ri) {
|
|
|
|
+ node->is_exit = (!router_exit_policy_rejects_all(ri) &&
|
|
|
|
+ exit_policy_is_general_exit(ri->exit_policy));
|
|
|
|
+ }
|
|
|
|
+
|
|
if (router_counts_toward_thresholds(node, now, omit_as_sybil,
|
|
if (router_counts_toward_thresholds(node, now, omit_as_sybil,
|
|
require_mbw)) {
|
|
require_mbw)) {
|
|
- routerinfo_t *ri = node->ri;
|
|
|
|
const char *id = node->identity;
|
|
const char *id = node->identity;
|
|
uint32_t bw_kb;
|
|
uint32_t bw_kb;
|
|
|
|
+
|
|
/* resolve spurious clang shallow analysis null pointer errors */
|
|
/* resolve spurious clang shallow analysis null pointer errors */
|
|
tor_assert(ri);
|
|
tor_assert(ri);
|
|
- node->is_exit = (!router_exit_policy_rejects_all(ri) &&
|
|
|
|
- exit_policy_is_general_exit(ri->exit_policy));
|
|
|
|
|
|
+
|
|
uptimes[n_active] = (uint32_t)real_uptime(ri, now);
|
|
uptimes[n_active] = (uint32_t)real_uptime(ri, now);
|
|
mtbfs[n_active] = rep_hist_get_stability(id, now);
|
|
mtbfs[n_active] = rep_hist_get_stability(id, now);
|
|
tks [n_active] = rep_hist_get_weighted_time_known(id, now);
|
|
tks [n_active] = rep_hist_get_weighted_time_known(id, now);
|