From f1b500d3e09f77ca5e6c0dfdb87fb7df4c5514a5 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Thu, 15 Oct 2015 09:39:49 +0200 Subject: [PATCH] Checksum: Add env variables to disable #3735 --- src/libsync/propagatedownload.cpp | 6 +++++- src/libsync/propagateupload.cpp | 3 +++ src/libsync/transmissionchecksumvalidator.cpp | 12 ++++++++++++ src/libsync/transmissionchecksumvalidator.h | 6 ++++++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/libsync/propagatedownload.cpp b/src/libsync/propagatedownload.cpp index 5fd94da66..1f0a1b7b2 100644 --- a/src/libsync/propagatedownload.cpp +++ b/src/libsync/propagatedownload.cpp @@ -537,7 +537,11 @@ void PropagateDownloadFileQNAM::slotGetFinished() ValidateChecksumHeader *validator = new ValidateChecksumHeader(this); connect(validator, SIGNAL(validated(QByteArray)), this, SLOT(downloadFinished(QByteArray))); connect(validator, SIGNAL(validationFailed(QString)), this, SLOT(slotChecksumFail(QString))); - validator->start(_tmpFile.fileName(), job->reply()->rawHeader(checkSumHeaderC)); + auto checksumHeader = job->reply()->rawHeader(checkSumHeaderC); + if (!downloadChecksumEnabled()) { + checksumHeader.clear(); + } + validator->start(_tmpFile.fileName(), checksumHeader); } void PropagateDownloadFileQNAM::slotChecksumFail( const QString& errMsg ) diff --git a/src/libsync/propagateupload.cpp b/src/libsync/propagateupload.cpp index c2b073082..a745d4675 100644 --- a/src/libsync/propagateupload.cpp +++ b/src/libsync/propagateupload.cpp @@ -237,6 +237,9 @@ void PropagateUploadFileQNAM::start() computeChecksum->setChecksumType(supportedChecksumTypes.first()); } } + if (!uploadChecksumEnabled()) { + computeChecksum->setChecksumType(QByteArray()); + } connect(computeChecksum, SIGNAL(done(QByteArray,QByteArray)), SLOT(slotStartUpload(QByteArray,QByteArray))); diff --git a/src/libsync/transmissionchecksumvalidator.cpp b/src/libsync/transmissionchecksumvalidator.cpp index b598149c2..21653fc51 100644 --- a/src/libsync/transmissionchecksumvalidator.cpp +++ b/src/libsync/transmissionchecksumvalidator.cpp @@ -49,6 +49,18 @@ bool parseChecksumHeader(const QByteArray& header, QByteArray* type, QByteArray* return true; } +bool uploadChecksumEnabled() +{ + static bool enabled = qgetenv("OWNCLOUD_DISABLE_CHECKSUM_UPLOAD").isEmpty(); + return enabled; +} + +bool downloadChecksumEnabled() +{ + static bool enabled = qgetenv("OWNCLOUD_DISABLE_CHECKSUM_DOWNLOAD").isEmpty(); + return enabled; +} + ComputeChecksum::ComputeChecksum(QObject* parent) : QObject(parent) { diff --git a/src/libsync/transmissionchecksumvalidator.h b/src/libsync/transmissionchecksumvalidator.h index ef1792d81..b8f10223f 100644 --- a/src/libsync/transmissionchecksumvalidator.h +++ b/src/libsync/transmissionchecksumvalidator.h @@ -29,6 +29,12 @@ QByteArray makeChecksumHeader(const QByteArray& checksumType, const QByteArray& /// Parses a checksum header bool parseChecksumHeader(const QByteArray& header, QByteArray* type, QByteArray* checksum); +/// Checks OWNCLOUD_DISABLE_CHECKSUM_UPLOAD +bool uploadChecksumEnabled(); + +/// Checks OWNCLOUD_DISABLE_CHECKSUM_DOWNLOAD +bool downloadChecksumEnabled(); + /** * Computes the checksum of a file. * \ingroup libsync -- 2.30.2