summary refs log tree commit diff
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2021-11-11 00:41:05 +0100
committerNicolas Werner <nicolas.werner@hotmail.de>2021-11-11 00:41:21 +0100
commitf9362c75cf40f8976b0e18c33a5be23503c79f35 (patch)
treeb1b7f3fc2725746bb6f40b955c1837416be567d6
parentTranslated using Weblate (Estonian) (diff)
downloadnheko-f9362c75cf40f8976b0e18c33a5be23503c79f35.tar.xz
Fix no replies being rendered for edits sent from Element in encrypted rooms
-rw-r--r--src/encryption/Olm.cpp9
1 files 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};