Skip to content

Commit ae15595

Browse files
committed
cleanup: move homeserver overriding to the SendRequest struct
1 parent 13718c6 commit ae15595

File tree

3 files changed

+21
-34
lines changed

3 files changed

+21
-34
lines changed

crates/matrix-sdk/src/client/futures.rs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ use crate::{
4747
#[allow(missing_debug_implementations)]
4848
pub struct SendRequest<R> {
4949
pub(crate) client: Client,
50-
pub(crate) sliding_sync_proxy_url: Option<String>,
50+
pub(crate) homeserver_override: Option<String>,
5151
pub(crate) request: R,
5252
pub(crate) config: Option<RequestConfig>,
5353
pub(crate) send_progress: SharedObservable<TransmissionProgress>,
@@ -69,6 +69,16 @@ impl<R> SendRequest<R> {
6969
self
7070
}
7171

72+
/// Replace this request's target (homeserver) with a custom one.
73+
///
74+
/// This is useful at the moment because the current sliding sync
75+
/// implementation uses a proxy server.
76+
#[cfg(feature = "experimental-sliding-sync")]
77+
pub fn with_homeserver_override(mut self, homeserver_override: Option<String>) -> Self {
78+
self.homeserver_override = homeserver_override;
79+
self
80+
}
81+
7282
/// Get a subscriber to observe the progress of sending the request
7383
/// body.
7484
#[cfg(not(target_arch = "wasm32"))]
@@ -87,13 +97,13 @@ where
8797
boxed_into_future!();
8898

8999
fn into_future(self) -> Self::IntoFuture {
90-
let Self { client, request, config, send_progress, sliding_sync_proxy_url } = self;
100+
let Self { client, request, config, send_progress, homeserver_override } = self;
91101

92102
Box::pin(async move {
93103
let res = Box::pin(client.send_inner(
94104
request.clone(),
95105
config,
96-
sliding_sync_proxy_url.clone(),
106+
homeserver_override.clone(),
97107
send_progress.clone(),
98108
))
99109
.await;
@@ -161,7 +171,7 @@ where
161171
return Box::pin(client.send_inner(
162172
request,
163173
config,
164-
sliding_sync_proxy_url,
174+
homeserver_override,
165175
send_progress,
166176
))
167177
.await;

crates/matrix-sdk/src/client/mod.rs

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1306,44 +1306,22 @@ impl Client {
13061306
request,
13071307
config,
13081308
send_progress: Default::default(),
1309-
sliding_sync_proxy_url: None,
1310-
}
1311-
}
1312-
1313-
#[cfg(feature = "experimental-sliding-sync")]
1314-
// FIXME: remove this as soon as Sliding-Sync isn't needing an external server
1315-
// anymore
1316-
pub(crate) fn send_with_homeserver<Request>(
1317-
&self,
1318-
request: Request,
1319-
config: Option<RequestConfig>,
1320-
sliding_sync_proxy: Option<String>,
1321-
) -> SendRequest<Request>
1322-
where
1323-
Request: OutgoingRequest + Clone + Debug,
1324-
HttpError: From<FromHttpResponseError<Request::EndpointError>>,
1325-
{
1326-
SendRequest {
1327-
client: self.clone(),
1328-
request,
1329-
config,
1330-
send_progress: Default::default(),
1331-
sliding_sync_proxy_url: sliding_sync_proxy,
1309+
homeserver_override: None,
13321310
}
13331311
}
13341312

13351313
pub(crate) async fn send_inner<Request>(
13361314
&self,
13371315
request: Request,
13381316
config: Option<RequestConfig>,
1339-
homeserver: Option<String>,
1317+
homeserver_override: Option<String>,
13401318
send_progress: SharedObservable<TransmissionProgress>,
13411319
) -> HttpResult<Request::IncomingResponse>
13421320
where
13431321
Request: OutgoingRequest + Debug,
13441322
HttpError: From<FromHttpResponseError<Request::EndpointError>>,
13451323
{
1346-
let homeserver = match homeserver {
1324+
let homeserver = match homeserver_override {
13471325
Some(hs) => hs,
13481326
None => self.homeserver().to_string(),
13491327
};

crates/matrix-sdk/src/sliding_sync/mod.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -573,11 +573,10 @@ impl SlidingSync {
573573
debug!("Sending request");
574574

575575
// Prepare the request.
576-
let request = self.inner.client.send_with_homeserver(
577-
request,
578-
Some(request_config),
579-
self.inner.sliding_sync_proxy.as_ref().map(ToString::to_string),
580-
);
576+
let request =
577+
self.inner.client.send(request, Some(request_config)).with_homeserver_override(
578+
self.inner.sliding_sync_proxy.as_ref().map(ToString::to_string),
579+
);
581580

582581
// Send the request and get a response with end-to-end encryption support.
583582
//

0 commit comments

Comments
 (0)