Browse Source

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().
Sebastian Hahn 15 years ago
parent
commit
25ec240cc3
1 changed files with 2 additions and 1 deletions
  1. 2 1
      src/or/dirserv.c

+ 2 - 1
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);