Fix no replies being rendered for edits sent from Element in encrypted rooms

This commit is contained in:
Nicolas Werner 2021-11-11 00:41:05 +01:00
parent 989d0db3b7
commit f9362c75cf
No known key found for this signature in database
GPG Key ID: C8D75E610773F2D9
1 changed files with 4 additions and 5 deletions

View File

@ -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};