Merge remote-tracking branch 'tor-github/pr/1910/head'

This commit is contained in:
Nick Mathewson 2020-06-04 10:33:36 -04:00
commit 2b98df3c74
2 changed files with 11 additions and 1 deletions

View File

@ -110,6 +110,8 @@ resolve_my_address(int warn_severity, const or_options_t *options,
if (address && *address) {
strlcpy(hostname, address, sizeof(hostname));
log_debug(LD_CONFIG, "Trying configured Address '%s' as local hostname",
hostname);
} else { /* then we need to guess our address */
explicit_ip = 0; /* it's implicit */
explicit_hostname = 0; /* it's implicit */
@ -129,6 +131,8 @@ resolve_my_address(int warn_severity, const or_options_t *options,
if (tor_inet_aton(hostname, &in) == 0) {
/* then we have to resolve it */
log_debug(LD_CONFIG, "Local hostname '%s' is DNS address. "
"Trying to resolve to IP address.", hostname);
explicit_ip = 0;
if (tor_lookup_hostname(hostname, &addr)) { /* failed to resolve */
uint32_t interface_ip; /* host order */
@ -180,6 +184,8 @@ resolve_my_address(int warn_severity, const or_options_t *options,
}
}
} else {
log_debug(LD_CONFIG, "Local hostname '%s' is already IP address, "
"skipping DNS resolution", hostname);
addr = ntohl(in.s_addr); /* set addr so that addr_string is not
* illformed */
}

View File

@ -1694,11 +1694,15 @@ get_interface_address6,(int severity, sa_family_t family, tor_addr_t *addr))
* Ideally, we want the default route, see #12377 for details */
SMARTLIST_FOREACH_BEGIN(addrs, tor_addr_t *, a) {
tor_addr_copy(addr, a);
const bool is_internal = tor_addr_is_internal(a, 0);
rv = 0;
log_debug(LD_NET, "Found %s interface address '%s'",
(is_internal ? "internal" : "external"), fmt_addr(addr));
/* If we found a non-internal address, declare success. Otherwise,
* keep looking. */
if (!tor_addr_is_internal(a, 0))
if (!is_internal)
break;
} SMARTLIST_FOREACH_END(a);