provide LOCK token when uploading a single file via PUT
authorMatthieu Gallien <matthieu.gallien@nextcloud.com>
Mon, 23 Sep 2024 16:48:47 +0000 (18:48 +0200)
committerMatthieu Gallien <matthieu_gallien@yahoo.fr>
Wed, 25 Sep 2024 13:06:29 +0000 (15:06 +0200)
for simple webDAV upload via PUT verb, provide the needed lock token

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
src/libsync/propagateuploadv1.cpp

index a32e796a597de4297cf8110c9477fec666c4f29c..7467b2ce315606d914743b6258b29de56917e5c7 100644 (file)
@@ -102,6 +102,10 @@ void PropagateUploadFileV1::startNextChunk()
 
     QString path = _fileToUpload._file;
 
+    if (_item->_locked == SyncFileItem::LockStatus::LockedItem) {
+        headers[QByteArrayLiteral("If")] = (QLatin1String("<") + propagator()->account()->davUrl().toString() + _fileToUpload._file + "> (<opaquelocktoken:" + _item->_lockToken.toUtf8() + ">)").toUtf8();
+    }
+
     qint64 chunkStart = 0;
     qint64 currentChunkSize = fileSize;
     bool isFinalChunk = false;