diff --git a/.env.template b/.env.template index b7ae6eaae51aecfb91ba42c03d76fd27b922ed85..b388e6ff703d8dbd25d6b45683f5d98d2397d4b8 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 b7479f568f3a09be7d77bc7100b2e11a9d306fe7..e93eef81e9fd292267d853f066713ee0dc149108 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 d7839a8ecaa47fe32c80cdb8ff5e02ebbb14a94a..fd153678721d6029e20c3ee416497e7bf6c9f1f1 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;