[tor-commits] [tor/master] Announce URL to bridge status page when starting Tor as a bridge relay.

nickm at torproject.org nickm at torproject.org
Wed Dec 9 15:04:01 UTC 2020


commit ed3f46a38559eead8ff70bcb935c17b1b23cc78d
Author: Alexander Færøy <ahf at torproject.org>
Date:   Mon Nov 23 23:41:17 2020 +0000

    Announce URL to bridge status page when starting Tor as a bridge relay.
    
    This patch makes Tor announce the relay specific bridge status page URL
    when Tor is starting up before bootstrap occours.
    
    See: tor#30477
---
 changes/ticket30477        |  4 ++++
 src/feature/relay/router.c | 23 +++++++++++++++++++++++
 src/feature/relay/router.h |  1 +
 3 files changed, 28 insertions(+)

diff --git a/changes/ticket30477 b/changes/ticket30477
new file mode 100644
index 0000000000..379fc4e7eb
--- /dev/null
+++ b/changes/ticket30477
@@ -0,0 +1,4 @@
+  o Minor features (bridge):
+    - We now announce the URL to Tor's new bridge status at
+      https://bridges.torproject.org/ when Tor is configured to run as a bridge
+      relay. Closes ticket 30477.
diff --git a/src/feature/relay/router.c b/src/feature/relay/router.c
index 89ac40bb4d..04ffe8e48e 100644
--- a/src/feature/relay/router.c
+++ b/src/feature/relay/router.c
@@ -831,6 +831,25 @@ router_initialize_tls_context(void)
                               (unsigned int)lifetime);
 }
 
+/** Announce URL to bridge status page. */
+STATIC void
+router_announce_bridge_status_page(void)
+{
+  char fingerprint[FINGERPRINT_LEN + 1];
+
+  if (crypto_pk_get_hashed_fingerprint(get_server_identity_key(),
+                                       fingerprint) < 0) {
+    // LCOV_EXCL_START
+    log_err(LD_GENERAL, "Unable to compute bridge fingerprint");
+    return;
+    // LCOV_EXCL_STOP
+  }
+
+  log_notice(LD_GENERAL, "You can check the status of your bridge relay at "
+                         "https://bridges.torproject.org/status?id=%s",
+                         fingerprint);
+}
+
 /** Compute fingerprint (or hashed fingerprint if hashed is 1) and write
  * it to 'fingerprint' (or 'hashed-fingerprint'). Return 0 on success, or
  * -1 if Tor should die,
@@ -1133,6 +1152,10 @@ init_keys(void)
     return -1;
   }
 
+  /* Display URL to bridge status page. */
+  if (! public_server_mode(options))
+    router_announce_bridge_status_page();
+
   if (!authdir_mode(options))
     return 0;
   /* 6. [authdirserver only] load approved-routers file */
diff --git a/src/feature/relay/router.h b/src/feature/relay/router.h
index f71ada8eb7..f9df1f5637 100644
--- a/src/feature/relay/router.h
+++ b/src/feature/relay/router.h
@@ -129,6 +129,7 @@ void router_free_all(void);
 STATIC void get_platform_str(char *platform, size_t len);
 STATIC int router_write_fingerprint(int hashed, int ed25519_identity);
 STATIC smartlist_t *get_my_declared_family(const or_options_t *options);
+STATIC void router_announce_bridge_status_page(void);
 
 #ifdef TOR_UNIT_TESTS
 extern time_t desc_clean_since;





More information about the tor-commits mailing list