Browse Source

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.
teor (Tim Wilson-Brown) 8 years ago
parent
commit
c58b3726d6
2 changed files with 10 additions and 3 deletions
  1. 5 0
      changes/routerset-parse-IPv6-literals
  2. 5 3
      src/or/routerset.c

+ 5 - 0
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.

+ 5 - 3
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 {