[tor-commits] [tor/maint-0.4.5] relay: Log address suggested by directory authorities

dgoulet at torproject.org dgoulet at torproject.org
Mon Dec 21 19:56:29 UTC 2020


commit aae9a05a018b0baed785cb030c941adc4d2c2d12
Author: David Goulet <dgoulet at torproject.org>
Date:   Mon Dec 21 14:41:52 2020 -0500

    relay: Log address suggested by directory authorities
    
    If we get an address suggestion from a directory authority and we have no
    address configured or discovered, log it at notice level so the operator can
    learn what address will be used by Tor.
    
    Fixes #40201
    
    Signed-off-by: David Goulet <dgoulet at torproject.org>
---
 changes/ticket40201           |  3 +++
 src/app/config/resolve_addr.c | 12 ++++++++++--
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/changes/ticket40201 b/changes/ticket40201
new file mode 100644
index 0000000000..cdf8d99172
--- /dev/null
+++ b/changes/ticket40201
@@ -0,0 +1,3 @@
+  o Minor bugfixes (logging, relay):
+    - Logs the address discovered by the directory authorities if none were
+      configured or detected before. Fixes bug 40201; bugfix on 0.4.5.1-alpha.
diff --git a/src/app/config/resolve_addr.c b/src/app/config/resolve_addr.c
index b811a68b8c..080cb967bc 100644
--- a/src/app/config/resolve_addr.c
+++ b/src/app/config/resolve_addr.c
@@ -130,8 +130,16 @@ resolved_addr_set_suggested(const tor_addr_t *addr)
           tor_addr_family(addr) != AF_INET6)) {
     return;
   }
-  tor_addr_copy(&last_suggested_addrs[af_to_idx(tor_addr_family(addr))],
-                addr);
+
+  /* In case we don't have a configured address, log that we will be using the
+   * one discovered from the dirauth. */
+  const int idx = af_to_idx(tor_addr_family(addr));
+  if (tor_addr_is_null(&last_resolved_addrs[idx]) &&
+      !tor_addr_eq(&last_suggested_addrs[idx], addr)) {
+    log_notice(LD_CONFIG, "External address seen and suggested by a "
+                          "directory authority: %s", fmt_addr(addr));
+  }
+  tor_addr_copy(&last_suggested_addrs[idx], addr);
 }
 
 /** Copy the last resolved address of family into addr_out.



More information about the tor-commits mailing list