]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Send IPv6 address in NETINFO cells.
authorLinus Nordberg <linus@torproject.org>
Tue, 14 Aug 2012 12:03:58 +0000 (14:03 +0200)
committerLinus Nordberg <linus@torproject.org>
Mon, 20 Aug 2012 15:01:18 +0000 (17:01 +0200)
Closes #6364.

changes/bug6364 [new file with mode: 0644]
src/or/connection_or.c

diff --git a/changes/bug6364 b/changes/bug6364
new file mode 100644 (file)
index 0000000..c0eb453
--- /dev/null
@@ -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.
index 55ea32e57b6f926fe65e848b51faf863da5d3819..da27cba32d849144af087f196e32c876f5429c30 100644 (file)
@@ -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;
   }