commit c58b3726d6a6ab8990ec745702c21a5bb6f4a9c0 Author: teor (Tim Wilson-Brown) teor2345@gmail.com Date: Mon Sep 14 20:01:36 2015 +1000
Allow IPv6 literal addresses in routersets
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. --- changes/routerset-parse-IPv6-literals | 5 +++++ src/or/routerset.c | 8 +++++--- 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 0000000..c80c82c --- /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 9fe5dff..6a93a32 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 {