diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 47caebf8df..6d6386292f 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -1722,7 +1722,7 @@ smartlist_choose_by_bandwidth_weights(smartlist_t *sl, double weight = 1; if (statuses) { routerstatus_t *status = smartlist_get(sl, i); - is_exit = status->is_exit; + is_exit = status->is_exit && !status->is_bad_exit; is_guard = status->is_possible_guard; is_dir = (status->dir_port != 0); if (!status->has_bandwidth) { @@ -1742,7 +1742,7 @@ smartlist_choose_by_bandwidth_weights(smartlist_t *sl, routerinfo_t *router = smartlist_get(sl, i); rs = router_get_consensus_status_by_id( router->cache_info.identity_digest); - is_exit = router->is_exit; + is_exit = router->is_exit && !router->is_bad_exit; is_guard = router->is_possible_guard; is_dir = (router->dir_port != 0); if (rs && rs->has_bandwidth) {