summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/routerset-parse-IPv6-literals5
-rw-r--r--src/or/routerset.c8
2 files changed, 10 insertions, 3 deletions
diff --git a/changes/routerset-parse-IPv6-literals b/changes/routerset-parse-IPv6-literals
new file mode 100644
index 0000000000..c80c82c229
--- /dev/null
+++ b/changes/routerset-parse-IPv6-literals
@@ -0,0 +1,5 @@
+ o Minor bug fixes (routersets, IPv6):
+ - routerset_parse now accepts IPv6 literal addresses.
+ Fix for ticket 17060. Patch by "teor".
+ Patch on 3ce6e2fba290 (24 Jul 2008), and related commits,
+ released in 0.2.1.3-alpha.
diff --git a/src/or/routerset.c b/src/or/routerset.c
index 9fe5dffdeb..6a93a327ee 100644
--- a/src/or/routerset.c
+++ b/src/or/routerset.c
@@ -104,9 +104,11 @@ routerset_parse(routerset_t *target, const char *s, const char *description)
description);
smartlist_add(target->country_names, countryname);
added_countries = 1;
- } else if ((strchr(nick,'.') || strchr(nick, '*')) &&
- (p = router_parse_addr_policy_item_from_string(
- nick, ADDR_POLICY_REJECT))) {
+ } else if ((strchr(nick,'.') || strchr(nick, ':') || strchr(nick, '*'))
+ && (p = router_parse_addr_policy_item_from_string(
+ nick, ADDR_POLICY_REJECT))) {
+ /* IPv4 addresses contain '.', IPv6 addresses contain ':',
+ * and wildcard addresses contain '*'. */
log_debug(LD_CONFIG, "Adding address %s to %s", nick, description);
smartlist_add(target->policies, p);
} else {