aboutsummaryrefslogtreecommitdiff
path: root/src/or/policies.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2012-10-24 12:33:18 -0400
committerNick Mathewson <nickm@torproject.org>2012-11-14 23:16:21 -0500
commit2eb7eafc9d789cb5063dd36021412434b656bf75 (patch)
tree6fb621cd10a3d41a242d2588c9a533a743570194 /src/or/policies.c
parent462ebb270a10f02573b1847649db45b94c0e0fc3 (diff)
downloadtor-2eb7eafc9d789cb5063dd36021412434b656bf75.tar
tor-2eb7eafc9d789cb5063dd36021412434b656bf75.tar.gz
Add a new family-specific syntax for tor_addr_parse_mask_ports
By default, "*" means "All IPv4 addresses" with tor_addr_parse_mask_ports, so I won't break anything. But if the new EXTENDED_STAR flag is provided, then * means "any address", *4 means "any IPv4 address" (that is, 0.0.0.0/0), and "*6" means "any IPv6 address" (that is, [::]/0). This is going to let us have a syntax for specifying exit policies in torrc that won't drive people mad. Also, add a bunch of unit tests for tor_addr_parse_mask_ports to test these new features, and to increase coverage.
Diffstat (limited to 'src/or/policies.c')
-rw-r--r--src/or/policies.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/or/policies.c b/src/or/policies.c
index 09ba10bbe..442377b1c 100644
--- a/src/or/policies.c
+++ b/src/or/policies.c
@@ -87,7 +87,8 @@ policy_expand_private(smartlist_t **policy)
memcpy(&newpolicy, p, sizeof(addr_policy_t));
newpolicy.is_private = 0;
newpolicy.is_canonical = 0;
- if (tor_addr_parse_mask_ports(private_nets[i], &newpolicy.addr,
+ if (tor_addr_parse_mask_ports(private_nets[i], 0,
+ &newpolicy.addr,
&newpolicy.maskbits, &port_min, &port_max)<0) {
tor_assert(0);
}
@@ -1192,8 +1193,8 @@ policy_summary_add_item(smartlist_t *summary, addr_policy_t *p)
for (i = 0; private_nets[i]; ++i) {
tor_addr_t addr;
maskbits_t maskbits;
- if (tor_addr_parse_mask_ports(private_nets[i], &addr,
- &maskbits, NULL, NULL)<0) {
+ if (tor_addr_parse_mask_ports(private_nets[i], 0, &addr,
+ &maskbits, NULL, NULL)<0) {
tor_assert(0);
}
if (tor_addr_compare(&p->addr, &addr, CMP_EXACT) == 0 &&