Send IPv6 address in NETINFO cells.

Closes #6364.
This commit is contained in:
Linus Nordberg 2012-08-14 14:03:58 +02:00
parent 661bd3fe71
commit 9216e2819b
2 changed files with 11 additions and 1 deletions

3
changes/bug6364 Normal file
View File

@ -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.

View File

@ -1988,12 +1988,19 @@ connection_or_send_netinfo(or_connection_t *conn)
if ((public_server_mode(get_options()) || !conn->is_outgoing) && if ((public_server_mode(get_options()) || !conn->is_outgoing) &&
(me = router_get_my_routerinfo())) { (me = router_get_my_routerinfo())) {
tor_addr_t my_addr; 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); tor_addr_from_ipv4h(&my_addr, me->addr);
len = append_address_to_payload(out, &my_addr); len = append_address_to_payload(out, &my_addr);
if (len < 0) if (len < 0)
return -1; 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 { } else {
*out = 0; *out = 0;
} }