From 6b7bf80de51120b99eefdb56e9bfc1446ca84ee7 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Sun, 27 Jul 2025 02:48:55 +0000 Subject: [PATCH] Disable legacy media request fallbacks by default. Signed-off-by: Jason Volk --- src/core/config/mod.rs | 6 ++++++ src/service/media/remote.rs | 8 ++++++-- tuwunel-example.toml | 6 ++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/core/config/mod.rs b/src/core/config/mod.rs index 124f0904..b3c04a82 100644 --- a/src/core/config/mod.rs +++ b/src/core/config/mod.rs @@ -1318,6 +1318,12 @@ pub struct Config { #[serde(default)] pub allow_legacy_media: bool, + /// Fallback to requesting legacy unauthenticated media from remote servers. + /// Unauthenticated media was removed in ~2024Q3; enabling this adds + /// considerable federation requests which are unlikely to succeed. + #[serde(default)] + pub request_legacy_media: bool, + #[serde(default = "true_fn")] pub freeze_legacy_media: bool, diff --git a/src/service/media/remote.rs b/src/service/media/remote.rs index 4d7cba32..16c90b47 100644 --- a/src/service/media/remote.rs +++ b/src/service/media/remote.rs @@ -35,7 +35,9 @@ pub async fn fetch_remote_thumbnail( .fetch_thumbnail_authenticated(mxc, user, server, timeout_ms, dim) .await; - if let Err(Error::Request(NotFound, ..)) = &result { + if let Err(Error::Request(NotFound, ..)) = &result + && self.services.server.config.request_legacy_media + { return self .fetch_thumbnail_unauthenticated(mxc, user, server, timeout_ms, dim) .await; @@ -58,7 +60,9 @@ pub async fn fetch_remote_content( .fetch_content_authenticated(mxc, user, server, timeout_ms) .await; - if let Err(Error::Request(NotFound, ..)) = &result { + if let Err(Error::Request(NotFound, ..)) = &result + && self.services.server.config.request_legacy_media + { return self .fetch_content_unauthenticated(mxc, user, server, timeout_ms) .await; diff --git a/tuwunel-example.toml b/tuwunel-example.toml index 6dfa2672..887a43eb 100644 --- a/tuwunel-example.toml +++ b/tuwunel-example.toml @@ -1130,6 +1130,12 @@ # #allow_legacy_media = false +# Fallback to requesting legacy unauthenticated media from remote servers. +# Unauthenticated media was removed in ~2024Q3; enabling this adds +# considerable federation requests which are unlikely to succeed. +# +#request_legacy_media = false + # This item is undocumented. Please contribute documentation for it. # #freeze_legacy_media = true