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;