From ca88539ec4a5eec80729cda94e87e83ea7a709ca Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Sat, 25 Jul 2020 02:23:10 +0200 Subject: [PATCH 1/4] Upgrade ruma --- matrix_sdk/src/client.rs | 8 ++------ matrix_sdk_common/Cargo.toml | 2 +- matrix_sdk_crypto/src/machine.rs | 2 +- matrix_sdk_crypto/src/olm/group_sessions.rs | 12 +++++------- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/matrix_sdk/src/client.rs b/matrix_sdk/src/client.rs index 1d81db6e..a1b77b09 100644 --- a/matrix_sdk/src/client.rs +++ b/matrix_sdk/src/client.rs @@ -966,18 +966,14 @@ impl Client { /// # use futures::executor::block_on; /// # use matrix_sdk::identifiers::RoomId; /// # use std::convert::TryFrom; - /// use matrix_sdk::events::room::message::{FormattedBody, MessageEventContent, TextMessageEventContent}; + /// use matrix_sdk::events::room::message::{MessageEventContent, TextMessageEventContent}; /// # block_on(async { /// # let homeserver = Url::parse("http://localhost:8080").unwrap(); /// # let mut client = Client::new(homeserver).unwrap(); /// # let room_id = RoomId::try_from("!test:localhost").unwrap(); /// use matrix_sdk_common::uuid::Uuid; /// - /// let content = MessageEventContent::Text(TextMessageEventContent { - /// body: "Hello world".to_owned(), - /// formatted: None, - /// relates_to: None, - /// }); + /// let content = MessageEventContent::Text(TextMessageEventContent::plain("Hello world")); /// let txn_id = Uuid::new_v4(); /// client.room_send(&room_id, content, Some(txn_id)).await.unwrap(); /// # }) diff --git a/matrix_sdk_common/Cargo.toml b/matrix_sdk_common/Cargo.toml index cf881f36..5ea6efbf 100644 --- a/matrix_sdk_common/Cargo.toml +++ b/matrix_sdk_common/Cargo.toml @@ -17,7 +17,7 @@ js_int = "0.1.8" [dependencies.ruma] git = "https://github.com/ruma/ruma" features = ["client-api"] -rev = "9190bff1d03fb188aa1d24502129f9dd19a824e6" +rev = "ea2992a4120d34495d6f07f141350d8f2a3429d3" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] uuid = { version = "0.8.1", features = ["v4"] } diff --git a/matrix_sdk_crypto/src/machine.rs b/matrix_sdk_crypto/src/machine.rs index 25a6532a..65acbbcb 100644 --- a/matrix_sdk_crypto/src/machine.rs +++ b/matrix_sdk_crypto/src/machine.rs @@ -1683,7 +1683,7 @@ mod test { let plaintext = "It is a secret to everybody"; - let content = MessageEventContent::Text(TextMessageEventContent::new_plain(plaintext)); + let content = MessageEventContent::Text(TextMessageEventContent::plain(plaintext)); let encrypted_content = alice.encrypt(&room_id, content.clone()).await.unwrap(); diff --git a/matrix_sdk_crypto/src/olm/group_sessions.rs b/matrix_sdk_crypto/src/olm/group_sessions.rs index 7b977d3c..c7b8bc62 100644 --- a/matrix_sdk_crypto/src/olm/group_sessions.rs +++ b/matrix_sdk_crypto/src/olm/group_sessions.rs @@ -37,10 +37,7 @@ pub use olm_rs::{ use matrix_sdk_common::{ events::{ - room::{ - encrypted::{EncryptedEventContent, MegolmV1AesSha2Content}, - message::MessageEventContent, - }, + room::{encrypted::EncryptedEventContent, message::MessageEventContent}, Algorithm, AnySyncRoomEvent, EventJson, EventType, SyncMessageEvent, }, identifiers::{DeviceId, RoomId}, @@ -332,14 +329,15 @@ impl OutboundGroupSession { let ciphertext = self.encrypt_helper(plaintext).await; - EncryptedEventContent::MegolmV1AesSha2(MegolmV1AesSha2Content::new( + EncryptedEventContent::MegolmV1AesSha2( matrix_sdk_common::events::room::encrypted::MegolmV1AesSha2ContentInit { ciphertext, sender_key: self.account_identity_keys.curve25519().to_owned(), session_id: self.session_id().to_owned(), device_id: (&*self.device_id).to_owned(), - }, - )) + } + .into(), + ) } /// Check if the session has expired and if it should be rotated. From 7aea6160c386ff86d8a0f0e14a10a4f5c7529de6 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Sat, 25 Jul 2020 02:31:52 +0200 Subject: [PATCH 2/4] Flatten nested match for less indentation --- matrix_sdk_crypto/src/machine.rs | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/matrix_sdk_crypto/src/machine.rs b/matrix_sdk_crypto/src/machine.rs index 65acbbcb..383b348f 100644 --- a/matrix_sdk_crypto/src/machine.rs +++ b/matrix_sdk_crypto/src/machine.rs @@ -302,17 +302,13 @@ impl OlmMachine { for (user_id, user_devices) in &response.one_time_keys { for (device_id, key_map) in user_devices { let device: Device = match self.store.get_device(&user_id, device_id).await { - Ok(d) => { - if let Some(d) = d { - d - } else { - warn!( - "Tried to create an Olm session for {} {}, but \ - the device is unknown", - user_id, device_id - ); - continue; - } + Ok(Some(d)) => d, + Ok(None) => { + warn!( + "Tried to create an Olm session for {} {}, but the device is unknown", + user_id, device_id + ); + continue; } Err(e) => { warn!( From 14db34beee5d8bed5e15cce576442b1aaafd2f23 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Sat, 25 Jul 2020 02:32:18 +0200 Subject: [PATCH 3/4] Use Option::and_then over manual match --- matrix_sdk_base/src/client.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/matrix_sdk_base/src/client.rs b/matrix_sdk_base/src/client.rs index f2aaa596..94a8ad4b 100644 --- a/matrix_sdk_base/src/client.rs +++ b/matrix_sdk_base/src/client.rs @@ -1199,10 +1199,9 @@ impl BaseClient { // send the `prev_content` field as part of the unsigned field. if let AnyStrippedStateEvent::RoomMember(_) = &mut e { if let Some(raw_content) = stripped_deserialize_prev_content(event) { - let prev_content = match raw_content.prev_content { - Some(json) => json.deserialize().ok(), - None => None, - }; + let prev_content = raw_content + .prev_content + .and_then(|json| json.deserialize().ok()); self.emit_stripped_state_event( &room_id, &e, From d4fe2fe0a2575e788e12aa6aea05bdd383a85d68 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Sat, 25 Jul 2020 02:32:50 +0200 Subject: [PATCH 4/4] Remove redundant braces --- matrix_sdk_base/src/client.rs | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/matrix_sdk_base/src/client.rs b/matrix_sdk_base/src/client.rs index 94a8ad4b..444dff9a 100644 --- a/matrix_sdk_base/src/client.rs +++ b/matrix_sdk_base/src/client.rs @@ -469,11 +469,9 @@ impl BaseClient { // a store path was provided. if self.state_store.read().await.is_none() { #[cfg(not(target_arch = "wasm32"))] - { - if let Some(path) = &*self.store_path { - let store = JsonStore::open(path)?; - *self.state_store.write().await = Some(Box::new(store)); - } + if let Some(path) = &*self.store_path { + let store = JsonStore::open(path)?; + *self.state_store.write().await = Some(Box::new(store)); } } @@ -719,22 +717,19 @@ impl BaseClient { #[allow(unused_mut)] Ok(mut e) => { #[cfg(feature = "encryption")] + if let AnySyncRoomEvent::Message(AnySyncMessageEvent::RoomEncrypted( + ref mut encrypted_event, + )) = e { - if let AnySyncRoomEvent::Message(AnySyncMessageEvent::RoomEncrypted( - ref mut encrypted_event, - )) = e - { - let mut olm = self.olm.lock().await; + let mut olm = self.olm.lock().await; - if let Some(o) = &mut *olm { - if let Ok(decrypted) = - o.decrypt_room_event(&encrypted_event, room_id).await - { - if let Ok(d) = decrypted.deserialize() { - e = d - } - *event = decrypted; + if let Some(o) = &mut *olm { + if let Ok(decrypted) = o.decrypt_room_event(&encrypted_event, room_id).await + { + if let Ok(d) = decrypted.deserialize() { + e = d } + *event = decrypted; } } }