소스 검색

Send IPv6 address in NETINFO cells.

Closes #6364.
Linus Nordberg 11 년 전
부모
커밋
9216e2819b
2개의 변경된 파일11개의 추가작업 그리고 1개의 파일을 삭제
  1. 3 0
      changes/bug6364
  2. 8 1
      src/or/connection_or.c

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

+ 8 - 1
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;
   }