From 0682292b91da71650b2952888735eb9081face08 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Sun, 18 Oct 2020 02:01:39 +0200 Subject: [PATCH 1/2] Upgrade ruma --- matrix_sdk/src/client.rs | 8 +++++--- matrix_sdk_common/Cargo.toml | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/matrix_sdk/src/client.rs b/matrix_sdk/src/client.rs index 5b6fc4b5..b667e4a3 100644 --- a/matrix_sdk/src/client.rs +++ b/matrix_sdk/src/client.rs @@ -826,7 +826,7 @@ impl Client { /// let mut client = Client::new(homeserver).unwrap(); /// /// let generic_search_term = Some("matrix-rust-sdk"); - /// let filter = Some(assign!(Filter::new(), { generic_search_term })); + /// let filter = assign!(Filter::new(), { generic_search_term }); /// let request = assign!(PublicRoomsFilterRequest::new(), { filter }); /// /// client.public_rooms_filtered(request).await; @@ -1292,7 +1292,9 @@ impl Client { let mut data = Vec::new(); reader.read_to_end(&mut data)?; - let request = create_content::Request::new(content_type.essence_str(), data); + let request = assign!(create_content::Request::new(data), { + content_type: Some(content_type.essence_str()), + }); self.http_client.upload(request).await } @@ -2325,7 +2327,7 @@ mod test { .create(); let generic_search_term = Some("cheese"); - let filter = Some(assign!(Filter::new(), { generic_search_term })); + let filter = assign!(Filter::new(), { generic_search_term }); let request = assign!(PublicRoomsFilterRequest::new(), { filter }); let get_public_rooms_filtered::Response { chunk, .. } = diff --git a/matrix_sdk_common/Cargo.toml b/matrix_sdk_common/Cargo.toml index 6eb38e5d..252c7807 100644 --- a/matrix_sdk_common/Cargo.toml +++ b/matrix_sdk_common/Cargo.toml @@ -21,7 +21,7 @@ js_int = "0.1.9" [dependencies.ruma] version = "0.0.1" git = "https://github.com/ruma/ruma" -rev = "3869d75837b7aab60eef58fc834e498317d1e4a4" +rev = "50eb700571480d1440e15a387d10f98be8abab59" features = ["client-api", "unstable-pre-spec", "unstable-exhaustive-types"] [target.'cfg(not(target_arch = "wasm32"))'.dependencies] From 95243003c41f5f499a8f025195db7937a51fdbde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Dom=C3=ADnguez?= Date: Fri, 20 Nov 2020 19:46:23 +0100 Subject: [PATCH 2/2] Update ruma --- matrix_sdk/src/client.rs | 13 ++++++------- matrix_sdk_base/src/models/room.rs | 3 ++- matrix_sdk_common/Cargo.toml | 2 +- matrix_sdk_crypto/src/key_request.rs | 6 +++++- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/matrix_sdk/src/client.rs b/matrix_sdk/src/client.rs index b667e4a3..29f90ba1 100644 --- a/matrix_sdk/src/client.rs +++ b/matrix_sdk/src/client.rs @@ -1402,10 +1402,10 @@ impl Client { sync_settings: SyncSettings<'_>, ) -> Result { let request = assign!(sync_events::Request::new(), { - filter: sync_settings.filter, + filter: sync_settings.filter.as_ref(), since: sync_settings.token.as_deref(), full_state: sync_settings.full_state, - set_presence: PresenceState::Online, + set_presence: &PresenceState::Online, timeout: sync_settings.timeout, }); @@ -1496,13 +1496,11 @@ impl Client { #[instrument(skip(callback))] pub async fn sync_with_callback( &self, - sync_settings: SyncSettings<'_>, + mut sync_settings: SyncSettings<'_>, callback: impl Fn(sync_events::Response) -> C, ) where C: Future, { - let mut sync_settings = sync_settings; - let filter = sync_settings.filter; let mut last_sync_time: Option = None; if sync_settings.token.is_none() { @@ -1510,6 +1508,7 @@ impl Client { } loop { + let filter = sync_settings.filter.clone(); let response = self.sync_once(sync_settings.clone()).await; let response = match response { @@ -1577,8 +1576,8 @@ impl Client { .await .expect("No sync token found after initial sync"), ); - if let Some(f) = filter.as_ref() { - sync_settings = sync_settings.filter(*f); + if let Some(f) = filter { + sync_settings = sync_settings.filter(f); } } } diff --git a/matrix_sdk_base/src/models/room.rs b/matrix_sdk_base/src/models/room.rs index 6892c50a..b4690e37 100644 --- a/matrix_sdk_base/src/models/room.rs +++ b/matrix_sdk_base/src/models/room.rs @@ -934,7 +934,7 @@ impl Room { member.currently_active = *currently_active; member.display_name = displayname.clone(); member.last_active_ago = *last_active_ago; - member.presence = Some(*presence); + member.presence = Some(presence.clone()); member.status_msg = status_msg.clone(); true @@ -1091,6 +1091,7 @@ impl Describe for MembershipState { Self::Join => "is a member of", Self::Knock => "is requesting access to", Self::Leave => "has left", + _ => "unhandled case of MembershipState", } .to_string() } diff --git a/matrix_sdk_common/Cargo.toml b/matrix_sdk_common/Cargo.toml index 7302ebfc..76ceeff0 100644 --- a/matrix_sdk_common/Cargo.toml +++ b/matrix_sdk_common/Cargo.toml @@ -21,7 +21,7 @@ js_int = "0.1.9" [dependencies.ruma] version = "0.0.1" git = "https://github.com/ruma/ruma" -rev = "50eb700571480d1440e15a387d10f98be8abab59" +rev = "d16fd4b2c1be1b06fd9be99373a3e77d74fadff3" features = ["client-api", "unstable-pre-spec", "unstable-exhaustive-types"] [target.'cfg(not(target_arch = "wasm32"))'.dependencies] diff --git a/matrix_sdk_crypto/src/key_request.rs b/matrix_sdk_crypto/src/key_request.rs index 84f4eab2..8cf2472e 100644 --- a/matrix_sdk_crypto/src/key_request.rs +++ b/matrix_sdk_crypto/src/key_request.rs @@ -299,7 +299,7 @@ impl KeyRequestMachine { &self, event: &ToDeviceEvent, ) -> OlmResult<()> { - let key_info = match event.content.action { + let key_info = match &event.content.action { Action::Request => { if let Some(info) = &event.content.body { info @@ -314,6 +314,10 @@ impl KeyRequestMachine { } // We ignore cancellations here since there's nothing to serve. Action::CancelRequest => return Ok(()), + action => { + warn!("Unknown room key request action: {:?}", action); + return Ok(()); + } }; let session = self