mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
relay: Don't trigger an address discovery without an ORPort
We would before do an address discovery and then a lookup in the cache if not found which is now simplified by calling relay_find_addr_to_publish() directly which does all those combined. Furthermore, by doing so, we won't trigger an address discovery every minute if we have no ORPort configured for the family. Fixes #40254 Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
committed by
Nick Mathewson
parent
b4220a09b7
commit
2e600019ea
@@ -0,0 +1,4 @@
|
||||
o Minor bugfixes (relay, configuration):
|
||||
- Don't attempt to discover address (IPv4 or IPv6) if no ORPort for it can
|
||||
be found in the configuration. Fixes bug 40254; bugfix on 0.4.5.1-alpha.
|
||||
|
||||
@@ -2671,18 +2671,11 @@ check_descriptor_ipaddress_changed(time_t now)
|
||||
previous = &my_ri->ipv6_addr;
|
||||
}
|
||||
|
||||
/* Ignore returned value because we want to notice not only an address
|
||||
* change but also if an address is lost (current == UNSPEC). */
|
||||
bool found = find_my_address(get_options(), family, LOG_INFO, ¤t,
|
||||
&method, &hostname);
|
||||
if (!found) {
|
||||
/* Address was possibly not found because it is simply not configured or
|
||||
* discoverable. Fallback to our cache, which includes any suggestion
|
||||
* sent by a trusted directory server. */
|
||||
found = relay_find_addr_to_publish(get_options(), family,
|
||||
RELAY_FIND_ADDR_CACHE_ONLY,
|
||||
¤t);
|
||||
}
|
||||
/* Attempt to discovery the publishable address for the family which will
|
||||
* actively attempt to discover the address if we are configured with a
|
||||
* port for the family. */
|
||||
relay_find_addr_to_publish(get_options(), family, RELAY_FIND_ADDR_NO_FLAG,
|
||||
¤t);
|
||||
|
||||
/* The "current" address might be UNSPEC meaning it was not discovered nor
|
||||
* found in our current cache. If we had an address before and we have
|
||||
|
||||
Reference in New Issue
Block a user