Store the new etag into local database when opening with auto-locking/manual locking...
authoralex-z <blackslayer4@gmail.com>
Thu, 7 Sep 2023 15:43:43 +0000 (17:43 +0200)
committerbackportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com>
Fri, 8 Sep 2023 08:53:52 +0000 (08:53 +0000)
Signed-off-by: alex-z <blackslayer4@gmail.com>
src/libsync/lockfilejobs.cpp
src/libsync/lockfilejobs.h

index 77f01c3ba034bfcd32cd29609461f0c40bdf122b..47704513938fe1e36510414ba9e0cc257d080220 100644 (file)
@@ -104,6 +104,9 @@ void LockFileJob::setFileRecordLocked(SyncJournalFileRecord &record) const
     record._lockstate._lockEditorApp = _editorName;
     record._lockstate._lockTime = _lockTime;
     record._lockstate._lockTimeout = _lockTimeout;
+    if (!_etag.isEmpty()) {
+        record._etag = _etag;
+    }
 }
 
 void LockFileJob::resetState()
@@ -223,6 +226,8 @@ void LockFileJob::decodeStartElement(const QString &name,
         }
     } else if (name == QStringLiteral("lock-owner-editor")) {
         _editorName = reader.readElementText();
+    } else if (name == QStringLiteral("getetag")) {
+        _etag = reader.readElementText().toUtf8();
     }
 }
 
index be3c436b5ec1305cfb4d578f687448f4fbd31f63..50e02016b7d205541f0fa7bf01d6f3012417501b 100644 (file)
@@ -54,6 +54,7 @@ private:
     QString _userDisplayName;
     QString _editorName;
     QString _userId;
+    QByteArray _etag;
     qint64 _lockTime = 0;
     qint64 _lockTimeout = 0;
     QString _remoteSyncPathWithTrailingSlash;