Prop 312: 3.2.4. Use Own Hostname IPv6 Addresses
This ticket depends on Address IPv6
support in #33233 (moved) and IPv6 resolution support in #33234 (moved).
If they don't have usable Address, ORPort, or interface addresses, relays (and bridges) should get their local hostname, look up its addresses, and use them as its IPv4 and IPv6 addresses.
We propose to use the same underlying lookup functions to look up the IPv4 and IPv6 addresses for:
- the Address torrc option (see section 3.2.1), and
- the local hostname. However, OS APIs typically only return a single hostname. (Rather than a separate hostname for IPv4 and IPv6.)
The hostname lookup should ignore private addresses on public relays. If multiple IPv4 or IPv6 addresses are returned, the first public address from each family should be used.
See proposal 312, section 3.2.4: https://gitweb.torproject.org/torspec.git/tree/proposals/312-relay-auto-ipv6-addr.txt#n408