diff --git a/src/api/client_server/keys.rs b/src/api/client_server/keys.rs index f58ea248..4527fddf 100644 --- a/src/api/client_server/keys.rs +++ b/src/api/client_server/keys.rs @@ -17,7 +17,7 @@ use ruma::{ DeviceKeyAlgorithm, OwnedDeviceId, OwnedUserId, UserId, }; use serde_json::json; -use tracing::{debug, error}; +use tracing::debug; use super::SESSION_ID_LENGTH; use crate::{services, utils, Error, Result, Ruma}; @@ -368,23 +368,16 @@ pub(crate) async fn get_keys_helper bool>( for (user_id, keys) in vec { device_keys_input_fed.insert(user_id.to_owned(), keys.clone()); } - ( - server, - tokio::time::timeout( - Duration::from_secs(90), - services().sending.send_federation_request( - server, - federation::keys::get_keys::v1::Request { - device_keys: device_keys_input_fed, - }, - ), - ) - .await - .map_err(|e| { - error!("get_keys_helper query took too long: {e}"); - Error::BadServerResponse("get_keys_helper query took too long") - }), - ) + + let request = federation::keys::get_keys::v1::Request { + device_keys: device_keys_input_fed, + }; + let response = services() + .sending + .send_federation_request(server, request) + .await; + + (server, Ok(response)) }) .collect(); @@ -408,7 +401,7 @@ pub(crate) async fn get_keys_helper bool>( false, /* Dont notify. A notification would trigger another key request resulting in an * endless loop */ )?; - master_keys.insert(user, raw); + master_keys.insert(user.clone(), raw); } self_signing_keys.extend(response.self_signing_keys); diff --git a/src/service/sending/mod.rs b/src/service/sending/mod.rs index 51028723..30f83e1a 100644 --- a/src/service/sending/mod.rs +++ b/src/service/sending/mod.rs @@ -44,7 +44,6 @@ pub(crate) struct Service { receiver: Mutex>, startup_netburst: bool, startup_netburst_keep: i64, - timeout: u64, } #[derive(Clone, Debug, PartialEq, Eq)] @@ -95,7 +94,6 @@ impl Service { maximum_requests: Arc::new(Semaphore::new(config.max_concurrent_requests as usize)), startup_netburst: config.startup_netburst, startup_netburst_keep: config.startup_netburst_keep, - timeout: config.sender_timeout, }) } @@ -246,17 +244,10 @@ impl Service { where T: OutgoingRequest + Debug, { - let permit = self.maximum_requests.acquire().await; - let timeout = Duration::from_secs(self.timeout); let client = &services().globals.client.federation; - let response = tokio::time::timeout(timeout, send::send(client, dest, request)) - .await - .map_err(|_| { - warn!("Timeout after 300 seconds waiting for server response of {dest}"); - Error::BadServerResponse("Timeout after 300 seconds waiting for server response") - })?; + let permit = self.maximum_requests.acquire().await; + let response = send::send(client, dest, request).await; drop(permit); - response }