From 94bf48bb3a3f3536e2ca4dc8929f1a1a5a13b0d8 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Tue, 20 Sep 2022 23:03:39 +0200 Subject: Fix files not unlocking after lock time expired Signed-off-by: Claudio Cambra --- src/common/syncjournaldb.cpp | 13 +++++++++++-- src/common/syncjournaldb.h | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) (limited to 'src/common') diff --git a/src/common/syncjournaldb.cpp b/src/common/syncjournaldb.cpp index 801aa5f50..94ec86899 100644 --- a/src/common/syncjournaldb.cpp +++ b/src/common/syncjournaldb.cpp @@ -1351,7 +1351,7 @@ bool SyncJournalDb::updateFileRecordChecksum(const QString &filename, } bool SyncJournalDb::updateLocalMetadata(const QString &filename, - qint64 modtime, qint64 size, quint64 inode) + qint64 modtime, qint64 size, quint64 inode, const SyncJournalFileLockInfo &lockInfo) { QMutexLocker locker(&_mutex); @@ -1365,7 +1365,9 @@ bool SyncJournalDb::updateLocalMetadata(const QString &filename, } const auto query = _queryManager.get(PreparedSqlQueryManager::SetFileRecordLocalMetadataQuery, QByteArrayLiteral("UPDATE metadata" - " SET inode=?2, modtime=?3, filesize=?4" + " SET inode=?2, modtime=?3, filesize=?4, lock=?5, lockType=?6," + " lockOwnerDisplayName=?7, lockOwnerId=?8, lockOwnerEditor = ?9," + " lockTime=?10, lockTimeout=?11" " WHERE phash == ?1;"), _db); if (!query) { @@ -1376,6 +1378,13 @@ bool SyncJournalDb::updateLocalMetadata(const QString &filename, query->bindValue(2, inode); query->bindValue(3, modtime); query->bindValue(4, size); + query->bindValue(5, lockInfo._locked ? 1 : 0); + query->bindValue(6, lockInfo._lockOwnerDisplayName); + query->bindValue(7, lockInfo._lockOwnerId); + query->bindValue(8, lockInfo._lockOwnerType); + query->bindValue(9, lockInfo._lockEditorApp); + query->bindValue(10, lockInfo._lockTime); + query->bindValue(11, lockInfo._lockTimeout); return query->exec(); } diff --git a/src/common/syncjournaldb.h b/src/common/syncjournaldb.h index 327348ecb..7a1100abd 100644 --- a/src/common/syncjournaldb.h +++ b/src/common/syncjournaldb.h @@ -78,7 +78,7 @@ public: const QByteArray &contentChecksum, const QByteArray &contentChecksumType); [[nodiscard]] bool updateLocalMetadata(const QString &filename, - qint64 modtime, qint64 size, quint64 inode); + qint64 modtime, qint64 size, quint64 inode, const SyncJournalFileLockInfo &lockInfo); /// Return value for hasHydratedOrDehydratedFiles() struct HasHydratedDehydrated -- cgit v1.2.3