Require login when the cache format changes (regression on #444)

This commit is contained in:
Konstantinos Sideris 2018-09-21 14:43:52 +03:00
parent b0e3a7c7fa
commit fc684f6571
2 changed files with 6 additions and 5 deletions

View file

@ -32,7 +32,7 @@
//! Should be changed when a breaking change occurs in the cache format. //! Should be changed when a breaking change occurs in the cache format.
//! This will reset client's data. //! This will reset client's data.
static const std::string CURRENT_CACHE_FORMAT_VERSION("2018.09.16"); static const std::string CURRENT_CACHE_FORMAT_VERSION("2018.09.21");
static const std::string SECRET("secret"); static const std::string SECRET("secret");
static const lmdb::val NEXT_BATCH_KEY("next_batch"); static const lmdb::val NEXT_BATCH_KEY("next_batch");
@ -673,7 +673,7 @@ Cache::isFormatValid()
txn.commit(); txn.commit();
if (!res) if (!res)
return true; return false;
std::string stored_version(current_version.data(), current_version.size()); std::string stored_version(current_version.data(), current_version.size());

View file

@ -683,8 +683,9 @@ ChatPage::bootstrap(QString userid, QString homeserver, QString token)
const bool isInitialized = cache::client()->isInitialized(); const bool isInitialized = cache::client()->isInitialized();
const bool isValid = cache::client()->isFormatValid(); const bool isValid = cache::client()->isFormatValid();
if (isInitialized && !isValid) { if (!isInitialized) {
nhlog::db()->warn("breaking changes in cache"); cache::client()->setCurrentFormat();
} else if (isInitialized && !isValid) {
// TODO: Deleting session data but keep using the // TODO: Deleting session data but keep using the
// same device doesn't work. // same device doesn't work.
cache::client()->deleteData(); cache::client()->deleteData();
@ -975,7 +976,7 @@ ChatPage::tryInitialSync()
status_code); status_code);
QString errorMsg(tr("Failed to setup encryption keys. Server response: " QString errorMsg(tr("Failed to setup encryption keys. Server response: "
"%s %d. Please try again later.") "%1 %2. Please try again later.")
.arg(QString::fromStdString(err->matrix_error.error)) .arg(QString::fromStdString(err->matrix_error.error))
.arg(status_code)); .arg(status_code));