mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-05-26 20:49:55 +00:00
fix: Use a timeout instead of deadline
This commit is contained in:
+8
-11
@@ -1,6 +1,5 @@
|
|||||||
use std::{
|
use std::{
|
||||||
collections::{BTreeMap, HashMap, HashSet},
|
collections::{BTreeMap, HashMap, HashSet},
|
||||||
ops::Add,
|
|
||||||
time::Duration,
|
time::Duration,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -441,7 +440,6 @@ pub(crate) async fn get_keys_helper<F>(
|
|||||||
where
|
where
|
||||||
F: Fn(&UserId) -> bool + Send + Sync,
|
F: Fn(&UserId) -> bool + Send + Sync,
|
||||||
{
|
{
|
||||||
let deadline = tokio::time::Instant::now().add(timeout);
|
|
||||||
let mut master_keys = BTreeMap::new();
|
let mut master_keys = BTreeMap::new();
|
||||||
let mut self_signing_keys = BTreeMap::new();
|
let mut self_signing_keys = BTreeMap::new();
|
||||||
let mut user_signing_keys = BTreeMap::new();
|
let mut user_signing_keys = BTreeMap::new();
|
||||||
@@ -529,7 +527,7 @@ where
|
|||||||
|
|
||||||
let mut failures = BTreeMap::new();
|
let mut failures = BTreeMap::new();
|
||||||
|
|
||||||
let mut futures = get_over_federation
|
let futures = get_over_federation
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.stream()
|
.stream()
|
||||||
.wide_filter_map(|(server, vec)| async move {
|
.wide_filter_map(|(server, vec)| async move {
|
||||||
@@ -540,8 +538,8 @@ where
|
|||||||
|
|
||||||
let request =
|
let request =
|
||||||
federation::keys::get_keys::v1::Request { device_keys: device_keys_input_fed };
|
federation::keys::get_keys::v1::Request { device_keys: device_keys_input_fed };
|
||||||
let response = tokio::time::timeout_at(
|
let response = tokio::time::timeout(
|
||||||
deadline,
|
timeout,
|
||||||
services.sending.send_federation_request(server, request),
|
services.sending.send_federation_request(server, request),
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
@@ -555,7 +553,7 @@ where
|
|||||||
.await
|
.await
|
||||||
.into_iter();
|
.into_iter();
|
||||||
|
|
||||||
while let Some((server, response)) = futures.next() {
|
for (server, response) in futures {
|
||||||
match response {
|
match response {
|
||||||
| Ok(response) => {
|
| Ok(response) => {
|
||||||
for (user, master_key) in response.master_keys {
|
for (user, master_key) in response.master_keys {
|
||||||
@@ -633,7 +631,6 @@ pub(crate) async fn claim_keys_helper(
|
|||||||
one_time_keys_input: &BTreeMap<OwnedUserId, BTreeMap<OwnedDeviceId, OneTimeKeyAlgorithm>>,
|
one_time_keys_input: &BTreeMap<OwnedUserId, BTreeMap<OwnedDeviceId, OneTimeKeyAlgorithm>>,
|
||||||
timeout: Duration,
|
timeout: Duration,
|
||||||
) -> Result<claim_keys::v3::Response> {
|
) -> Result<claim_keys::v3::Response> {
|
||||||
let deadline = tokio::time::Instant::now().add(timeout);
|
|
||||||
let mut one_time_keys = BTreeMap::new();
|
let mut one_time_keys = BTreeMap::new();
|
||||||
|
|
||||||
let mut get_over_federation = BTreeMap::new();
|
let mut get_over_federation = BTreeMap::new();
|
||||||
@@ -663,7 +660,7 @@ pub(crate) async fn claim_keys_helper(
|
|||||||
|
|
||||||
let mut failures = BTreeMap::new();
|
let mut failures = BTreeMap::new();
|
||||||
|
|
||||||
let mut futures = get_over_federation
|
let futures = get_over_federation
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.stream()
|
.stream()
|
||||||
.wide_filter_map(|(server, vec)| async move {
|
.wide_filter_map(|(server, vec)| async move {
|
||||||
@@ -671,8 +668,8 @@ pub(crate) async fn claim_keys_helper(
|
|||||||
for (user_id, keys) in vec {
|
for (user_id, keys) in vec {
|
||||||
one_time_keys_input_fed.insert(user_id.clone(), keys.clone());
|
one_time_keys_input_fed.insert(user_id.clone(), keys.clone());
|
||||||
}
|
}
|
||||||
let response = tokio::time::timeout_at(
|
let response = tokio::time::timeout(
|
||||||
deadline,
|
timeout,
|
||||||
services.sending.send_federation_request(
|
services.sending.send_federation_request(
|
||||||
server,
|
server,
|
||||||
federation::keys::claim_keys::v1::Request {
|
federation::keys::claim_keys::v1::Request {
|
||||||
@@ -689,7 +686,7 @@ pub(crate) async fn claim_keys_helper(
|
|||||||
.await
|
.await
|
||||||
.into_iter();
|
.into_iter();
|
||||||
|
|
||||||
while let Some((server, response)) = futures.next() {
|
for (server, response) in futures {
|
||||||
match response {
|
match response {
|
||||||
| Ok(keys) => {
|
| Ok(keys) => {
|
||||||
one_time_keys.extend(keys.one_time_keys);
|
one_time_keys.extend(keys.one_time_keys);
|
||||||
|
|||||||
Reference in New Issue
Block a user