[fractal] room: Improve decryption error logs



commit 837444b572d6798a6ee87b105b0ab0b8149b0bc7
Author: Kévin Commaille <zecakeh tedomum fr>
Date:   Thu Sep 1 10:01:05 2022 +0200

    room: Improve decryption error logs
    
    Don't print the encrypted source as it is not useful and can be obtained via
    view source.
    Lower log level to debug because it's common to lack encryption keys.
    Print more details about the event when decryption fails to be able to find it.

 src/session/content/room_history/message_row/mod.rs |  3 +--
 src/session/room/event/supported_event.rs           | 14 ++++++++++----
 2 files changed, 11 insertions(+), 6 deletions(-)
---
diff --git a/src/session/content/room_history/message_row/mod.rs 
b/src/session/content/room_history/message_row/mod.rs
index 8668aaf28..85b925b6e 100644
--- a/src/session/content/room_history/message_row/mod.rs
+++ b/src/session/content/room_history/message_row/mod.rs
@@ -407,8 +407,7 @@ fn build_content(parent: &adw::Bin, event: &SupportedEvent, compact: bool) {
                 };
             child.sticker(content, &event.room().session(), compact);
         }
-        Some(AnyMessageLikeEventContent::RoomEncrypted(content)) => {
-            warn!("Couldn’t decrypt event {:?}", content);
+        Some(AnyMessageLikeEventContent::RoomEncrypted(_)) => {
             let child = if let Some(Ok(child)) = parent.child().map(|w| w.downcast::<MessageText>())
             {
                 child
diff --git a/src/session/room/event/supported_event.rs b/src/session/room/event/supported_event.rs
index e5496831e..160061fef 100644
--- a/src/session/room/event/supported_event.rs
+++ b/src/session/room/event/supported_event.rs
@@ -1,5 +1,5 @@
 use gtk::{glib, glib::clone, prelude::*, subclass::prelude::*};
-use log::warn;
+use log::debug;
 use matrix_sdk::{
     deserialized_responses::SyncRoomEvent,
     media::MediaEventContent,
@@ -216,8 +216,10 @@ impl SupportedEvent {
     /// keys.
     pub async fn try_to_decrypt(&self, event: Raw<OriginalSyncRoomEncryptedEvent>) {
         let priv_ = self.imp();
-        let room = self.room().matrix_room();
-        let handle = spawn_tokio!(async move { room.decrypt_event(&event).await });
+        let room = self.room();
+        let matrix_room = room.matrix_room();
+        let event_id = self.event_id();
+        let handle = spawn_tokio!(async move { matrix_room.decrypt_event(&event).await });
 
         match handle.await.unwrap() {
             Ok(decrypted) => {
@@ -230,7 +232,11 @@ impl SupportedEvent {
                 self.set_matrix_event(matrix_event);
             }
             Err(error) => {
-                warn!("Failed to decrypt event: {}", error);
+                let room_name = room.display_name();
+                let room_id = room.room_id();
+                debug!(
+                    "Failed to decrypt event {event_id} in room {room_name} ({room_id}): {error:?}"
+                );
                 if priv_.keys_handle.borrow().is_none() {
                     let handle = self.room().connect_new_encryption_keys(
                         clone!(@weak self as obj => move |_| {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]