Commit ed3f46a3 authored by Alexander Hansen Færøy's avatar Alexander Hansen Færøy 💬 Committed by Nick Mathewson
Browse files

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: #30477
parent bff3c6f4
Loading
Loading
Loading
Loading

changes/ticket30477

0 → 100644
+4 −0
Original line number Diff line number Diff line
  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.
+23 −0
Original line number Diff line number Diff line
@@ -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 */
+1 −0
Original line number Diff line number Diff line
@@ -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;