diff options
author | Nicolas Werner <nicolas.werner@hotmail.de> | 2021-11-11 00:41:05 +0100 |
---|---|---|
committer | Nicolas Werner <nicolas.werner@hotmail.de> | 2021-11-11 00:41:21 +0100 |
commit | f9362c75cf40f8976b0e18c33a5be23503c79f35 (patch) | |
tree | b1b7f3fc2725746bb6f40b955c1837416be567d6 /src | |
parent | Translated using Weblate (Estonian) (diff) | |
download | nheko-f9362c75cf40f8976b0e18c33a5be23503c79f35.tar.xz |
Fix no replies being rendered for edits sent from Element in encrypted rooms
Diffstat (limited to 'src')
-rw-r--r-- | src/encryption/Olm.cpp | 9 |
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}; |