Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/desktop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudio Cambra <claudio.cambra@gmail.com>2022-09-21 00:03:39 +0300
committerSimon L <szaimen@e.mail.de>2022-09-28 11:55:25 +0300
commit94bf48bb3a3f3536e2ca4dc8929f1a1a5a13b0d8 (patch)
tree2dcfb183542289a14432b5c399823fe36efbac79 /src/common
parenta4dde43089a215ada92f6cdada1fd867a30786a0 (diff)
Fix files not unlocking after lock time expired
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
Diffstat (limited to 'src/common')
-rw-r--r--src/common/syncjournaldb.cpp13
-rw-r--r--src/common/syncjournaldb.h2
2 files changed, 12 insertions, 3 deletions
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