From f9362c75cf40f8976b0e18c33a5be23503c79f35 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Thu, 11 Nov 2021 00:41:05 +0100 Subject: [PATCH] Fix no replies being rendered for edits sent from Element in encrypted rooms --- src/encryption/Olm.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/encryption/Olm.cpp b/src/encryption/Olm.cpp index 01a16ba7..0931b4e3 100644 --- a/src/encryption/Olm.cpp +++ b/src/encryption/Olm.cpp @@ -17,6 +17,7 @@ #include "Cache_p.h" #include "ChatPage.h" #include "DeviceVerificationFlow.h" +#include "EventAccessors.h" #include "Logging.h" #include "MatrixClient.h" #include "UserSettingsPage.h" @@ -1124,8 +1125,6 @@ decryptEvent(const MegolmSessionIndex &index, return {DecryptionErrorCode::DbError, e.what(), std::nullopt}; } - // TODO: Lookup index,event_id,origin_server_ts tuple for replay attack errors - std::string msg_str; try { auto session = cache::client()->getInboundMegolmSession(index); @@ -1165,12 +1164,12 @@ decryptEvent(const MegolmSessionIndex &index, body["origin_server_ts"] = event.origin_server_ts; body["unsigned"] = event.unsigned_data; - // relations are unencrypted in content... - mtx::common::add_relations(body["content"], event.content.relations); - mtx::events::collections::TimelineEvent te; mtx::events::collections::from_json(body, te); + // relations are unencrypted in content... + mtx::accessors::set_relations(te.data, std::move(event.content.relations)); + return {DecryptionErrorCode::NoError, std::nullopt, std::move(te.data)}; } catch (std::exception &e) { return {DecryptionErrorCode::ParsingFailed, e.what(), std::nullopt};