]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Allow internal IPv6 addresses in descriptors in private networks
authorteor (Tim Wilson-Brown) <teor2345@gmail.com>
Tue, 1 Mar 2016 15:41:52 +0000 (16:41 +0100)
committerteor (Tim Wilson-Brown) <teor2345@gmail.com>
Tue, 1 Mar 2016 15:48:16 +0000 (16:48 +0100)
changes/bug17153 [new file with mode: 0644]
src/or/router.c

diff --git a/changes/bug17153 b/changes/bug17153
new file mode 100644 (file)
index 0000000..15a53c1
--- /dev/null
@@ -0,0 +1,4 @@
+  o Minor bugfixes (test networks, IPv6):
+    - Allow internal IPv6 addresses in descriptors in test networks.
+      Fixes bug 17153; bugfix on 6b4af1071 in 0.2.3.16-alpha.
+      Patch by "teor", reported by "karsten".
index 80732c90364af44086b25c38a3878771eff55658..60b03c0b54ec0f6ad32b413465f99a93f290459c 100644 (file)
@@ -1941,7 +1941,11 @@ router_build_fresh_descriptor(routerinfo_t **r, extrainfo_t **e)
           ! p->server_cfg.no_advertise &&
           ! p->server_cfg.bind_ipv4_only &&
           tor_addr_family(&p->addr) == AF_INET6) {
-        if (! tor_addr_is_internal(&p->addr, 0)) {
+        /* Like IPv4, if the relay is configured using the default
+         * authorities, disallow internal IPs. Otherwise, allow them. */
+        const int default_auth = (!options->DirAuthorities &&
+                                  !options->AlternateDirAuthority);
+        if (! tor_addr_is_internal(&p->addr, 0) || ! default_auth) {
           ipv6_orport = p;
           break;
         } else {