From 8cd1a30c400eab29f8bfd6b657f5ce6f232f3fb6 Mon Sep 17 00:00:00 2001 From: Matthieu Gallien Date: Fri, 7 Jul 2023 11:18:46 +0200 Subject: [PATCH 1/2] fix bulk upload of empty files force an empty body when we bulk upload empty files force a "valid" checksum to be computed for empty files as bulk upload server side expects a checksum even for empty files Close #5824 Signed-off-by: Matthieu Gallien --- src/common/checksumcalculator.cpp | 24 ++++++------------------ src/libsync/putmultifilejob.cpp | 6 +++++- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/src/common/checksumcalculator.cpp b/src/common/checksumcalculator.cpp index 588ff5e1c..016c7b09d 100644 --- a/src/common/checksumcalculator.cpp +++ b/src/common/checksumcalculator.cpp @@ -95,8 +95,6 @@ QByteArray ChecksumCalculator::calculate() return result; } - bool isAnyChunkAdded = false; - for (;;) { QMutexLocker locker(&_deviceMutex); if (!_device->isOpen() || _device->atEnd()) { @@ -114,7 +112,6 @@ QByteArray ChecksumCalculator::calculate() if (!addChunk(buf, sizeRead)) { break; } - isAnyChunkAdded = true; } { @@ -124,14 +121,12 @@ QByteArray ChecksumCalculator::calculate() } } - if (isAnyChunkAdded) { - if (_algorithmType == AlgorithmType::Adler32) { - result = QByteArray::number(_adlerHash, 16); - } else { - Q_ASSERT(_cryptographicHash); - if (_cryptographicHash) { - result = _cryptographicHash->result().toHex(); - } + if (_algorithmType == AlgorithmType::Adler32) { + result = QByteArray::number(_adlerHash, 16); + } else { + Q_ASSERT(_cryptographicHash); + if (_cryptographicHash) { + result = _cryptographicHash->result().toHex(); } } @@ -152,13 +147,6 @@ void ChecksumCalculator::initChecksumAlgorithm() return; } - { - QMutexLocker locker(&_deviceMutex); - if (_device->size() == 0) { - return; - } - } - if (_algorithmType == AlgorithmType::Adler32) { _adlerHash = adler32(0L, Z_NULL, 0); } else { diff --git a/src/libsync/putmultifilejob.cpp b/src/libsync/putmultifilejob.cpp index 05edda06a..46b15f8b5 100644 --- a/src/libsync/putmultifilejob.cpp +++ b/src/libsync/putmultifilejob.cpp @@ -53,7 +53,11 @@ void PutMultiFileJob::start() auto onePart = QHttpPart{}; - onePart.setBodyDevice(oneDevice._device.get()); + if (oneDevice._device->size() == 0) { + onePart.setBody({}); + } else { + onePart.setBodyDevice(oneDevice._device.get()); + } for (auto it = oneDevice._headers.begin(); it != oneDevice._headers.end(); ++it) { onePart.setRawHeader(it.key(), it.value()); From 5540f7f0f4dde32c874ddd6e20508ba911497c1b Mon Sep 17 00:00:00 2001 From: Matthieu Gallien Date: Mon, 10 Jul 2023 15:15:34 +0200 Subject: [PATCH 2/2] do not use a mirror for KDE's Craft binary cache Signed-off-by: Matthieu Gallien --- craftmaster.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/craftmaster.ini b/craftmaster.ini index 9e7683ebc..da7d7f5c9 100644 --- a/craftmaster.ini +++ b/craftmaster.ini @@ -30,7 +30,7 @@ ShortPath/EnableJunctions = False ; Packager/RepositoryUrl = https://files.kde.org/craft/ Packager/PackageType = NullsoftInstallerPackager -Packager/RepositoryUrl = http://ftp.acc.umu.se/mirror/kde.org/files/craft/master/ +Packager/RepositoryUrl = https://files.kde.org/craft/master/ ContinuousIntegration/Enabled = True