Merge branch 'mr_224_squashed'

This commit is contained in:
Nick Mathewson 2020-12-09 10:03:45 -05:00
commit 2bfb76b927
3 changed files with 28 additions and 0 deletions

4
changes/ticket30477 Normal file
View File

@ -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.

View File

@ -831,6 +831,25 @@ router_initialize_tls_context(void)
(unsigned int)lifetime); (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 /** Compute fingerprint (or hashed fingerprint if hashed is 1) and write
* it to 'fingerprint' (or 'hashed-fingerprint'). Return 0 on success, or * it to 'fingerprint' (or 'hashed-fingerprint'). Return 0 on success, or
* -1 if Tor should die, * -1 if Tor should die,
@ -1133,6 +1152,10 @@ init_keys(void)
return -1; return -1;
} }
/* Display URL to bridge status page. */
if (! public_server_mode(options))
router_announce_bridge_status_page();
if (!authdir_mode(options)) if (!authdir_mode(options))
return 0; return 0;
/* 6. [authdirserver only] load approved-routers file */ /* 6. [authdirserver only] load approved-routers file */

View File

@ -129,6 +129,7 @@ void router_free_all(void);
STATIC void get_platform_str(char *platform, size_t len); STATIC void get_platform_str(char *platform, size_t len);
STATIC int router_write_fingerprint(int hashed, int ed25519_identity); STATIC int router_write_fingerprint(int hashed, int ed25519_identity);
STATIC smartlist_t *get_my_declared_family(const or_options_t *options); STATIC smartlist_t *get_my_declared_family(const or_options_t *options);
STATIC void router_announce_bridge_status_page(void);
#ifdef TOR_UNIT_TESTS #ifdef TOR_UNIT_TESTS
extern time_t desc_clean_since; extern time_t desc_clean_since;