mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-14 15:23:27 +01:00
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
This commit is contained in:
parent
cce8ae1190
commit
19408cf8d7
@ -603,11 +603,12 @@ policies_parse_exit_policy(config_line_t *cfg, addr_policy_t **dest,
|
|||||||
|
|
||||||
/** Return true iff <b>ri</b> is "useful as an exit node", meaning
|
/** Return true iff <b>ri</b> is "useful as an exit node", meaning
|
||||||
* it allows exit to at least one /8 address space for at least
|
* 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
|
int
|
||||||
exit_policy_is_general_exit(addr_policy_t *policy)
|
exit_policy_is_general_exit(addr_policy_t *policy)
|
||||||
{
|
{
|
||||||
static const int ports[] = { 80, 443, 6667 };
|
static const int ports[] = { 80, 443, 6667 };
|
||||||
|
int n_allowed = 0;
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < 3; ++i) {
|
for (i = 0; i < 3; ++i) {
|
||||||
struct addr_policy_t *p = policy;
|
struct addr_policy_t *p = policy;
|
||||||
@ -620,10 +621,10 @@ exit_policy_is_general_exit(addr_policy_t *policy)
|
|||||||
continue; /* 127.x */
|
continue; /* 127.x */
|
||||||
/* We have a match that is at least a /8. */
|
/* We have a match that is at least a /8. */
|
||||||
if (p->policy_type == ADDR_POLICY_ACCEPT)
|
if (p->policy_type == ADDR_POLICY_ACCEPT)
|
||||||
return 1;
|
++n_allowed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return n_allowed >= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Release all storage held by <b>p</b> */
|
/** Release all storage held by <b>p</b> */
|
||||||
|
Loading…
Reference in New Issue
Block a user