From 25ec240cc344adc1ca0a5e10179d7e47d8af9532 Mon Sep 17 00:00:00 2001 From: Sebastian Hahn Date: Wed, 3 Feb 2010 23:54:18 +0100 Subject: [PATCH] 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(). --- src/or/dirserv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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);