mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
router: Refactor IPv6 ORPort function logic
Return early when there is no suitable IPv6 ORPort. Show the address and port on error, using a convenience function. Code simplification and refactoring. Cleanup after 32588.
This commit is contained in:
@@ -1460,20 +1460,21 @@ router_get_advertised_ipv6_or_ap(const or_options_t *options,
|
||||
return;
|
||||
}
|
||||
|
||||
/* Like IPv4, if the relay is configured using the default
|
||||
* authorities, disallow internal IPs. Otherwise, allow them. */
|
||||
/* If the relay is configured using the default authorities, disallow
|
||||
* internal IPs. Otherwise, allow them. For IPv4 ORPorts and DirPorts,
|
||||
* this check is done in resolve_my_address(). See #33681. */
|
||||
const int default_auth = using_default_dir_authorities(options);
|
||||
if (! tor_addr_is_internal(addr, 0) || ! default_auth) {
|
||||
tor_addr_copy(&ipv6_ap_out->addr, addr);
|
||||
ipv6_ap_out->port = port;
|
||||
} else {
|
||||
char addrbuf[TOR_ADDR_BUF_LEN];
|
||||
if (tor_addr_is_internal(addr, 0) && default_auth) {
|
||||
log_warn(LD_CONFIG,
|
||||
"Unable to use configured IPv6 address \"%s\" in a "
|
||||
"Unable to use configured IPv6 ORPort \"%s\" in a "
|
||||
"descriptor. Skipping it. "
|
||||
"Try specifying a globally reachable address explicitly.",
|
||||
tor_addr_to_str(addrbuf, addr, sizeof(addrbuf), 1));
|
||||
fmt_addrport(addr, port));
|
||||
return;
|
||||
}
|
||||
|
||||
tor_addr_copy(&ipv6_ap_out->addr, addr);
|
||||
ipv6_ap_out->port = port;
|
||||
}
|
||||
|
||||
/** Return the port that we should advertise as our DirPort;
|
||||
|
||||
Reference in New Issue
Block a user