From 01915360b4edc4e4c82d2f79457859c649b7b1d2 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Tue, 27 Dec 2022 16:15:49 +0100 Subject: Fix state reset command --- src/Cache.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/Cache.cpp') diff --git a/src/Cache.cpp b/src/Cache.cpp index 5d87f9f2..41b84e11 100644 --- a/src/Cache.cpp +++ b/src/Cache.cpp @@ -1669,7 +1669,7 @@ Cache::calculateRoomReadStatus(const std::string &room_id) } void -Cache::updateState(const std::string &room, const mtx::responses::StateEvents &state) +Cache::updateState(const std::string &room, const mtx::responses::StateEvents &state, bool wipe) { auto txn = lmdb::txn::begin(env_); auto statesdb = getStatesDb(txn, room); @@ -1677,6 +1677,12 @@ Cache::updateState(const std::string &room, const mtx::responses::StateEvents &s auto membersdb = getMembersDb(txn, room); auto eventsDb = getEventsDb(txn, room); + if (wipe) { + membersdb.drop(txn); + statesdb.drop(txn); + stateskeydb.drop(txn); + } + saveStateEvents(txn, statesdb, stateskeydb, membersdb, eventsDb, room, state.events); RoomInfo updatedInfo; -- cgit 1.5.1