From 96144404ed1434317822fc7561ad99ca43e2d7b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Mon, 27 Apr 2020 16:26:03 +0200 Subject: [PATCH] crypto: Return a result when searching for missing sessions. --- src/async_client.rs | 2 +- src/base_client.rs | 6 +++--- src/crypto/machine.rs | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/async_client.rs b/src/async_client.rs index 54098166..3021bf3b 100644 --- a/src/async_client.rs +++ b/src/async_client.rs @@ -898,7 +898,7 @@ impl AsyncClient { .read() .await .get_missing_sessions(users) - .await + .await? }; if !missing_sessions.is_empty() { diff --git a/src/base_client.rs b/src/base_client.rs index b3e2f913..16fea864 100644 --- a/src/base_client.rs +++ b/src/base_client.rs @@ -435,12 +435,12 @@ impl Client { pub async fn get_missing_sessions( &self, users: impl Iterator, - ) -> BTreeMap> { + ) -> Result>> { let mut olm = self.olm.lock().await; match &mut *olm { - Some(o) => o.get_missing_sessions(users).await, - None => BTreeMap::new(), + Some(o) => Ok(o.get_missing_sessions(users).await?), + None => Ok(BTreeMap::new()), } } diff --git a/src/crypto/machine.rs b/src/crypto/machine.rs index 357975b2..cc8c9d34 100644 --- a/src/crypto/machine.rs +++ b/src/crypto/machine.rs @@ -202,11 +202,11 @@ impl OlmMachine { pub async fn get_missing_sessions( &mut self, users: impl Iterator, - ) -> BTreeMap> { + ) -> Result>> { let mut missing = BTreeMap::new(); for user_id in users { - let user_devices = self.store.get_user_devices(user_id).await.unwrap(); + let user_devices = self.store.get_user_devices(user_id).await?; for device in user_devices.devices() { let sender_key = if let Some(k) = device.get_key(&KeyAlgorithm::Curve25519) { @@ -215,7 +215,7 @@ impl OlmMachine { continue; }; - let sessions = self.store.get_sessions(sender_key).await.unwrap(); + let sessions = self.store.get_sessions(sender_key).await?; let is_missing = if let Some(sessions) = sessions { sessions.lock().await.is_empty() @@ -237,7 +237,7 @@ impl OlmMachine { } } - missing + Ok(missing) } pub async fn receive_keys_claim_response(