diff --git a/matrix_sdk/src/client.rs b/matrix_sdk/src/client.rs index 0d05b302..9375410f 100644 --- a/matrix_sdk/src/client.rs +++ b/matrix_sdk/src/client.rs @@ -347,19 +347,20 @@ impl Client { panic!("Error parsing homeserver url") }; - let http_client = if let Some(client) = config.client { - HttpClient { - homeserver: homeserver.clone(), - inner: client, - } + let client = if let Some(client) = config.client { + client } else { - HttpClient { - homeserver: homeserver.clone(), - inner: Arc::new(DefaultHttpClient::with_config(&config)?), - } + Arc::new(DefaultHttpClient::with_config(&config)?) }; let base_client = BaseClient::new_with_config(config.base_config)?; + let session = base_client.session().clone(); + + let http_client = HttpClient { + homeserver: homeserver.clone(), + inner: client, + session, + }; Ok(Self { homeserver, @@ -1104,9 +1105,7 @@ impl Client { Request: OutgoingRequest + Debug, Error: From>, { - self.http_client - .send(request, self.base_client.session().clone()) - .await + self.http_client.send(request).await } #[cfg(feature = "encryption")] @@ -1428,9 +1427,7 @@ impl Client { .await .map(|sas| Sas { inner: sas, - session: self.base_client.session().clone(), http_client: self.http_client.clone(), - homeserver: self.homeserver.clone(), }) } @@ -1455,9 +1452,7 @@ impl Client { Ok(Sas { inner: sas, - session: self.base_client.session().clone(), http_client: self.http_client.clone(), - homeserver: self.homeserver.clone(), }) } diff --git a/matrix_sdk/src/http_client.rs b/matrix_sdk/src/http_client.rs index f7063256..7ef6ef28 100644 --- a/matrix_sdk/src/http_client.rs +++ b/matrix_sdk/src/http_client.rs @@ -68,6 +68,7 @@ pub trait HttpSend: Sync + Send + Debug { pub(crate) struct HttpClient { pub(crate) inner: Arc, pub(crate) homeserver: Arc, + pub(crate) session: Arc>>, } impl HttpClient { @@ -120,16 +121,12 @@ impl HttpClient { Ok(http_builder.body(body).unwrap()) } - pub async fn send( - &self, - request: Request, - session: Arc>>, - ) -> Result + pub async fn send(&self, request: Request) -> Result where Request: OutgoingRequest, Error: From>, { - let response = self.send_request(request, session).await?; + let response = self.send_request(request, self.session.clone()).await?; trace!("Got response: {:?}", response); diff --git a/matrix_sdk/src/sas.rs b/matrix_sdk/src/sas.rs index 1ebac676..b1dca584 100644 --- a/matrix_sdk/src/sas.rs +++ b/matrix_sdk/src/sas.rs @@ -12,14 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -use std::sync::Arc; - -use url::Url; - -use matrix_sdk_base::{Device, Sas as BaseSas, Session}; -use matrix_sdk_common::{ - api::r0::to_device::send_event_to_device::Request as ToDeviceRequest, locks::RwLock, -}; +use matrix_sdk_base::{Device, Sas as BaseSas}; +use matrix_sdk_common::api::r0::to_device::send_event_to_device::Request as ToDeviceRequest; use crate::{error::Result, http_client::HttpClient}; @@ -27,9 +21,7 @@ use crate::{error::Result, http_client::HttpClient}; #[derive(Debug, Clone)] pub struct Sas { pub(crate) inner: BaseSas, - pub(crate) homeserver: Arc, pub(crate) http_client: HttpClient, - pub(crate) session: Arc>>, } impl Sas { @@ -42,7 +34,7 @@ impl Sas { messages: req.messages, }; - self.http_client.send(request, self.session.clone()).await?; + self.http_client.send(request).await?; } Ok(()) } @@ -56,7 +48,7 @@ impl Sas { messages: req.messages, }; - self.http_client.send(request, self.session.clone()).await?; + self.http_client.send(request).await?; } Ok(()) @@ -71,7 +63,7 @@ impl Sas { messages: req.messages, }; - self.http_client.send(request, self.session.clone()).await?; + self.http_client.send(request).await?; } Ok(()) }