[tor-commits] [tor/master] Ignore [::] when building descriptors.

nickm at torproject.org nickm at torproject.org
Thu May 10 18:10:28 UTC 2012


commit 6b4af1071668028b367f185121688758988ff489
Author: Linus Nordberg <linus at nordberg.se>
Date:   Thu May 3 22:19:38 2012 +0200

    Ignore [::] when building descriptors.
    
    This is how IPv6 says "0.0.0.0" and something we will have to
    translate into a globally reachable address before putting it in a
    descriptor.
    
    The fix is a short term solution until a real one is implemented.
    
    Closes #5146.
---
 src/or/router.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/or/router.c b/src/or/router.c
index 4cdfd02..c51bb5d 100644
--- a/src/or/router.c
+++ b/src/or/router.c
@@ -1530,10 +1530,18 @@ router_rebuild_descriptor(int force)
       if (p->type == CONN_TYPE_OR_LISTENER &&
           ! p->no_advertise &&
           ! p->ipv4_only &&
-          tor_addr_family(&p->addr) == AF_INET6 &&
-          ! tor_addr_is_internal(&p->addr, 1)) {
-        ipv6_orport = p;
-        break;
+          tor_addr_family(&p->addr) == AF_INET6) {
+        if (! tor_addr_is_internal(&p->addr, 0)) {
+          ipv6_orport = p;
+          break;
+        } else {
+          char addrbuf[TOR_ADDR_BUF_LEN];
+          log_warn(LD_CONFIG,
+                   "Unable to use configured IPv6 address \"%s\" in a "
+                   "descriptor. Skipping it. "
+                   "Try specifying a globally reachable address explicitly. ",
+                   tor_addr_to_str(addrbuf, &p->addr, sizeof(addrbuf), 1));
+        }
       }
     } SMARTLIST_FOREACH_END(p);
     if (ipv6_orport) {





More information about the tor-commits mailing list