From: Roger Dingledine Date: Tue, 13 Jun 2006 02:48:06 +0000 (+0000) Subject: reintroduce the logic to exit_policy_is_general_exit() to count X-Git-Tag: tor-0.1.1.23~233 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19408cf8d77218f00707f31dc85fbb040b5c7b5b;p=thirdparty%2Ftor.git reintroduce the logic to exit_policy_is_general_exit() to count how many ports are allowd. require two ports open, not just one. svn:r6609 --- diff --git a/src/or/policies.c b/src/or/policies.c index b7946f9204..7eff70fc90 100644 --- a/src/or/policies.c +++ b/src/or/policies.c @@ -603,11 +603,12 @@ policies_parse_exit_policy(config_line_t *cfg, addr_policy_t **dest, /** Return true iff ri is "useful as an exit node", meaning * it allows exit to at least one /8 address space for at least - * one of ports 80, 443, and 6667. */ + * two of ports 80, 443, and 6667. */ int exit_policy_is_general_exit(addr_policy_t *policy) { static const int ports[] = { 80, 443, 6667 }; + int n_allowed = 0; int i; for (i = 0; i < 3; ++i) { struct addr_policy_t *p = policy; @@ -620,10 +621,10 @@ exit_policy_is_general_exit(addr_policy_t *policy) continue; /* 127.x */ /* We have a match that is at least a /8. */ if (p->policy_type == ADDR_POLICY_ACCEPT) - return 1; + ++n_allowed; } } - return 0; + return n_allowed >= 2; } /** Release all storage held by p */