Mark encrypted rooms when processing room state

This commit is contained in:
Konstantinos Sideris 2018-06-18 18:36:19 +03:00
parent 604cdcec8a
commit 7ecabcd614
3 changed files with 8 additions and 12 deletions

View file

@ -183,14 +183,12 @@ Cache::setup()
}
void
Cache::setEncryptedRoom(const std::string &room_id)
Cache::setEncryptedRoom(lmdb::txn &txn, const std::string &room_id)
{
nhlog::db()->info("mark room {} as encrypted", room_id);
auto txn = lmdb::txn::begin(env_);
auto db = lmdb::dbi::open(txn, ENCRYPTED_ROOMS_DB, MDB_CREATE);
auto db = lmdb::dbi::open(txn, ENCRYPTED_ROOMS_DB, MDB_CREATE);
lmdb::dbi_put(txn, db, lmdb::val(room_id), lmdb::val("0"));
txn.commit();
}
bool

View file

@ -284,13 +284,6 @@ TimelineView::parseMessageEvent(const mtx::events::collections::TimelineEvents &
auto decrypted =
parseEncryptedEvent(mpark::get<EncryptedEvent<msg::Encrypted>>(event));
return parseMessageEvent(decrypted, direction);
} else if (mpark::holds_alternative<StateEvent<state::Encryption>>(event)) {
try {
cache::client()->setEncryptedRoom(room_id_.toStdString());
} catch (const lmdb::error &e) {
nhlog::db()->critical("failed to save room {} as encrypted",
room_id_.toStdString());
}
}
return nullptr;