summary refs log tree commit diff
path: root/src/Cache.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Cache.cc')
-rw-r--r--src/Cache.cc26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/Cache.cc b/src/Cache.cc

index 150990b7..48b1fdaf 100644 --- a/src/Cache.cc +++ b/src/Cache.cc
@@ -60,7 +60,7 @@ constexpr auto DEVICES_DB("devices"); //! device_id -> device keys constexpr auto DEVICE_KEYS_DB("device_keys"); //! room_ids that have encryption enabled. -// constexpr auto ENCRYPTED_ROOMS_DB("encrypted_rooms"); +constexpr auto ENCRYPTED_ROOMS_DB("encrypted_rooms"); //! MegolmSessionIndex -> pickled OlmInboundGroupSession constexpr auto INBOUND_MEGOLM_SESSIONS_DB("inbound_megolm_sessions"); @@ -184,6 +184,30 @@ Cache::setup() txn.commit(); } +void +Cache::setEncryptedRoom(const std::string &room_id) +{ + log::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); + lmdb::dbi_put(txn, db, lmdb::val(room_id), lmdb::val("0")); + txn.commit(); +} + +bool +Cache::isRoomEncrypted(const std::string &room_id) +{ + lmdb::val unused; + + auto txn = lmdb::txn::begin(env_); + auto db = lmdb::dbi::open(txn, ENCRYPTED_ROOMS_DB, MDB_CREATE); + auto res = lmdb::dbi_get(txn, db, lmdb::val(room_id), unused); + txn.commit(); + + return res; +} + // // Device Management //