diff --git a/.env.template b/.env.template index b7ae6eaa..b388e6ff 100644 --- a/.env.template +++ b/.env.template @@ -49,6 +49,11 @@ ## otherwise it will delete them and they won't be downloaded again. # DISABLE_ICON_DOWNLOAD=false +## Icon download timeout +## Configure the timeout value when downloading the favicons. +## The default is 10 seconds, but this could be to low on slower network connections +# ICON_DOWNLOAD_TIMEOUT=10 + ## Controls if new users can register # SIGNUPS_ALLOWED=true diff --git a/src/api/icons.rs b/src/api/icons.rs index b7479f56..e93eef81 100644 --- a/src/api/icons.rs +++ b/src/api/icons.rs @@ -26,7 +26,7 @@ lazy_static! { // Reuse the client between requests static ref CLIENT: Client = Client::builder() .gzip(true) - .timeout(Duration::from_secs(5)) + .timeout(Duration::from_secs(CONFIG.icon_download_timeout())) .default_headers(_header_map()) .build() .unwrap(); diff --git a/src/config.rs b/src/config.rs index d7839a8e..fd153678 100644 --- a/src/config.rs +++ b/src/config.rs @@ -241,6 +241,8 @@ make_config! { icon_cache_ttl: u64, true, def, 2_592_000; /// Negative icon cache expiry |> Number of seconds before trying to download an icon that failed again. icon_cache_negttl: u64, true, def, 259_200; + /// Icon download timeout |> Number of seconds when to stop attempting to download an icon. + icon_download_timeout: u64, true, def, 10; /// Reload templates (Dev) |> When this is set to true, the templates get reloaded with every request. ONLY use this during development, as it can slow down the server reload_templates: bool, true, def, false;