log failed remote device key requests

This commit is contained in:
Benjamin Lee 2024-08-10 12:46:50 -07:00
parent 827f670c54
commit 1551833501
No known key found for this signature in database
GPG key ID: FB9624E2885D55A4

View file

@ -440,13 +440,25 @@ pub(crate) async fn get_keys_helper<F: Fn(&UserId) -> bool>(
), ),
) )
.await .await
.map_err(|_e| Error::BadServerResponse("Query took too long")), .map_err(|_e| Error::BadServerResponse("Query took too long"))
// TODO: switch to .flatten() when stable
// <https://github.com/rust-lang/rust/issues/70142>
.and_then(|result| result),
) )
}) })
.collect(); .collect();
while let Some((server, response)) = futures.next().await { while let Some((server, response)) = futures.next().await {
if let Ok(Ok(response)) = response { let response = match response {
Ok(response) => response,
Err(error) => {
back_off(server.to_owned()).await;
debug!(%server, %error, "remote device key query failed");
failures.insert(server.to_string(), json!({}));
continue;
}
};
for (user, masterkey) in response.master_keys { for (user, masterkey) in response.master_keys {
let (master_key_id, mut master_key) = let (master_key_id, mut master_key) =
services().users.parse_master_key(&user, &masterkey)?; services().users.parse_master_key(&user, &masterkey)?;
@ -477,11 +489,6 @@ pub(crate) async fn get_keys_helper<F: Fn(&UserId) -> bool>(
self_signing_keys.extend(response.self_signing_keys); self_signing_keys.extend(response.self_signing_keys);
device_keys.extend(response.device_keys); device_keys.extend(response.device_keys);
} else {
back_off(server.to_owned()).await;
failures.insert(server.to_string(), json!({}));
}
} }
Ok(get_keys::v3::Response { Ok(get_keys::v3::Response {