diff --git a/matrix_sdk/src/client.rs b/matrix_sdk/src/client.rs index 831547c8..9b2f213e 100644 --- a/matrix_sdk/src/client.rs +++ b/matrix_sdk/src/client.rs @@ -105,6 +105,7 @@ pub struct ClientConfig { user_agent: Option, disable_ssl_verification: bool, base_config: BaseClientConfig, + timeout: Option, } // #[cfg_attr(tarpaulin, skip)] @@ -198,6 +199,12 @@ impl ClientConfig { self.base_config = self.base_config.passphrase(passphrase); self } + + /// Set a timeout duration for all HTTP requests. The default is no timeout. + pub fn timeout(mut self, timeout: Duration) -> Self { + self.timeout = Some(timeout); + self + } } #[derive(Debug, Default, Clone)] @@ -314,6 +321,11 @@ impl Client { #[cfg(not(target_arch = "wasm32"))] let http_client = { + let http_client = match config.timeout { + Some(x) => http_client.timeout(x), + None => http_client, + }; + let http_client = if config.disable_ssl_verification { http_client.danger_accept_invalid_certs(true) } else {