[tor-commits] [tor/master] Send IPv6 address in NETINFO cells.

nickm at torproject.org nickm at torproject.org
Mon Aug 27 13:53:56 UTC 2012


commit 9216e2819b563d3e519b131a7ec34b3ddc196e25
Author: Linus Nordberg <linus at torproject.org>
Date:   Tue Aug 14 14:03:58 2012 +0200

    Send IPv6 address in NETINFO cells.
    
    Closes #6364.
---
 changes/bug6364        |    3 +++
 src/or/connection_or.c |    9 ++++++++-
 2 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/changes/bug6364 b/changes/bug6364
new file mode 100644
index 0000000..c0eb453
--- /dev/null
+++ b/changes/bug6364
@@ -0,0 +1,3 @@
+  o Minor features:
+    - A relay with an IPv6 OR port now sends that address in NETINFO
+      cells. Fix for bug 6364.
diff --git a/src/or/connection_or.c b/src/or/connection_or.c
index 55ea32e..da27cba 100644
--- a/src/or/connection_or.c
+++ b/src/or/connection_or.c
@@ -1988,12 +1988,19 @@ connection_or_send_netinfo(or_connection_t *conn)
   if ((public_server_mode(get_options()) || !conn->is_outgoing) &&
       (me = router_get_my_routerinfo())) {
     tor_addr_t my_addr;
-    *out++ = 1; /* only one address is supported. */
+    *out++ = 1 + !tor_addr_is_null(&me->ipv6_addr);
 
     tor_addr_from_ipv4h(&my_addr, me->addr);
     len = append_address_to_payload(out, &my_addr);
     if (len < 0)
       return -1;
+    out += len;
+
+    if (!tor_addr_is_null(&me->ipv6_addr)) {
+      len = append_address_to_payload(out, &me->ipv6_addr);
+      if (len < 0)
+        return -1;
+    }
   } else {
     *out = 0;
   }





More information about the tor-commits mailing list