aboutsummaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorSebastian Hahn <sebastian@torproject.org>2010-02-03 23:54:18 +0100
committerSebastian Hahn <sebastian@torproject.org>2010-02-04 00:06:56 +0100
commit25ec240cc344adc1ca0a5e10179d7e47d8af9532 (patch)
tree9f74943984800a01ba9d15286ac5e75f15adc7d7 /src/or
parent82a5fbafab956de6fffc3c583a874830157d906d (diff)
downloadtor-25ec240cc344adc1ca0a5e10179d7e47d8af9532.tar.gz
tor-25ec240cc344adc1ca0a5e10179d7e47d8af9532.zip
Call exit_policy_is_general_exit less
When calculating the is_exit flag for a routerinfo_t, we don't need to call exit_policy_is_general_exit() if router_exit_policy_rejects_all() tells us it definitely is an exit. This check is much cheaper than running exit_policy_is_general_exit().
Diffstat (limited to 'src/or')
-rw-r--r--src/or/dirserv.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 3024612357..8009647c91 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -1776,7 +1776,8 @@ dirserv_compute_performance_thresholds(routerlist_t *rl)
if (router_is_active(ri, now)) {
const char *id = ri->cache_info.identity_digest;
uint32_t bw;
- ri->is_exit = exit_policy_is_general_exit(ri->exit_policy);
+ ri->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);
mtbfs[n_active] = rep_hist_get_stability(id, now);
tks [n_active] = rep_hist_get_weighted_time_known(id, now);