aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Færøy <ahf@torproject.org>2021-10-20 21:44:56 +0000
committerAlexander Færøy <ahf@torproject.org>2021-10-20 21:44:56 +0000
commit2a247f425556a72b9652360635638e383d06d603 (patch)
tree3cbf5b5dbb20dfff4c5a9259ffc41183aa579ebd
parent46de5eb054cfdcedad0f7971d9a0defbd5e21db0 (diff)
parent73727397652f933c710d701c5b2e27cbac12af49 (diff)
downloadtor-2a247f425556a72b9652360635638e383d06d603.tar.gz
tor-2a247f425556a72b9652360635638e383d06d603.zip
Merge branch 'maint-0.3.5' into release-0.3.5
-rw-r--r--changes/ticket304774
-rw-r--r--src/feature/relay/router.c23
-rw-r--r--src/feature/relay/router.h1
3 files changed, 28 insertions, 0 deletions
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 283f7c326b..7ea2a4e719 100644
--- a/src/feature/relay/router.c
+++ b/src/feature/relay/router.c
@@ -803,6 +803,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,
@@ -1103,6 +1122,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 ab1f771017..2d9ff3f8f3 100644
--- a/src/feature/relay/router.h
+++ b/src/feature/relay/router.h
@@ -119,6 +119,7 @@ void router_free_all(void);
/* Used only by router.c and test.c */
STATIC void get_platform_str(char *platform, size_t len);
STATIC int router_write_fingerprint(int hashed);
+STATIC void router_announce_bridge_status_page(void);
#endif
#endif /* !defined(TOR_ROUTER_H) */