[Pkg-owncloud-commits] [owncloud-client] 38/484: Checksums: Prepare 'supported checksums' capability #3735
Sandro Knauß
hefee-guest at moszumanska.debian.org
Wed Dec 16 00:37:08 UTC 2015
This is an automated email from the git hooks/post-receive script.
hefee-guest pushed a commit to branch master
in repository owncloud-client.
commit 3812fd0866054822e720b3c5aca189e1cc166f59
Author: Christian Kamm <mail at ckamm.de>
Date: Thu Oct 1 15:00:33 2015 +0200
Checksums: Prepare 'supported checksums' capability #3735
It currently always returns the empty list and thus has no effect.
---
src/libsync/capabilities.cpp | 5 +++++
src/libsync/capabilities.h | 1 +
src/libsync/propagateupload.cpp | 12 ++++++++++++
src/libsync/transmissionchecksumvalidator.cpp | 17 +++++++----------
src/libsync/transmissionchecksumvalidator.h | 12 ++++++++----
5 files changed, 33 insertions(+), 14 deletions(-)
diff --git a/src/libsync/capabilities.cpp b/src/libsync/capabilities.cpp
index ed53505..5b826d7 100644
--- a/src/libsync/capabilities.cpp
+++ b/src/libsync/capabilities.cpp
@@ -38,4 +38,9 @@ int Capabilities::publicLinkExpireDateDays() const
return _capabilities["files_sharing"].toMap()["public"].toMap()["expire_date"].toMap()["days"].toInt();
}
+QStringList Capabilities::supportedChecksumTypes() const
+{
+ return QStringList();
+}
+
}
diff --git a/src/libsync/capabilities.h b/src/libsync/capabilities.h
index 01e26e3..69c64c3 100644
--- a/src/libsync/capabilities.h
+++ b/src/libsync/capabilities.h
@@ -34,6 +34,7 @@ public:
bool publicLinkEnforcePassword() const;
bool publicLinkEnforceExpireDate() const;
int publicLinkExpireDateDays() const;
+ QStringList supportedChecksumTypes() const;
private:
QVariantMap _capabilities;
diff --git a/src/libsync/propagateupload.cpp b/src/libsync/propagateupload.cpp
index e90fee6..d441d75 100644
--- a/src/libsync/propagateupload.cpp
+++ b/src/libsync/propagateupload.cpp
@@ -213,6 +213,18 @@ void PropagateUploadFileQNAM::start()
// in any case, the validator will emit signal startUpload to let the flow
// continue in slotStartUpload here.
TransmissionChecksumValidator *validator = new TransmissionChecksumValidator(filePath, this);
+
+ // If the config file does not specify a checksum type but the
+ // server supports it choose a type based on that.
+ if (validator->checksumType().isEmpty()) {
+ QStringList checksumTypes = _propagator->account()->capabilities().supportedChecksumTypes();
+ if (!checksumTypes.isEmpty()) {
+ // TODO: We might want to prefer some types over others instead
+ // of choosing the first.
+ validator->setChecksumType(checksumTypes.first());
+ }
+ }
+
connect(validator, SIGNAL(validated(QByteArray)), this, SLOT(slotStartUpload(QByteArray)));
validator->uploadValidation();
}
diff --git a/src/libsync/transmissionchecksumvalidator.cpp b/src/libsync/transmissionchecksumvalidator.cpp
index 271ff61..97e5915 100644
--- a/src/libsync/transmissionchecksumvalidator.cpp
+++ b/src/libsync/transmissionchecksumvalidator.cpp
@@ -17,32 +17,29 @@
#include "syncfileitem.h"
#include "propagatorjobs.h"
#include "configfile.h"
+#include "account.h"
#include <qtconcurrentrun.h>
namespace OCC {
TransmissionChecksumValidator::TransmissionChecksumValidator(const QString& filePath, QObject *parent)
- :QObject(parent),
+ : QObject(parent),
_filePath(filePath)
{
-
+ // If the config file specifies a checksum type, use that.
+ ConfigFile cfg;
+ _checksumType = cfg.transmissionChecksum();
}
-void TransmissionChecksumValidator::setChecksumType( const QByteArray& type )
+void TransmissionChecksumValidator::setChecksumType(const QString& type)
{
_checksumType = type;
}
QString TransmissionChecksumValidator::checksumType() const
{
- QString checksumType = _checksumType;
- if( checksumType.isEmpty() ) {
- ConfigFile cfg;
- checksumType = cfg.transmissionChecksum();
- }
-
- return checksumType;
+ return _checksumType;
}
void TransmissionChecksumValidator::uploadValidation()
diff --git a/src/libsync/transmissionchecksumvalidator.h b/src/libsync/transmissionchecksumvalidator.h
index fe56729..73f0fbd 100644
--- a/src/libsync/transmissionchecksumvalidator.h
+++ b/src/libsync/transmissionchecksumvalidator.h
@@ -15,6 +15,7 @@
#pragma once
#include "owncloudlib.h"
+#include "accountfwd.h"
#include <QObject>
#include <QByteArray>
@@ -53,9 +54,12 @@ public:
*/
void downloadValidation( const QByteArray& checksumHeader );
- // This is only used in test cases (by now). This class reads the required
- // test case from the config file.
- void setChecksumType(const QByteArray &type );
+ /**
+ * By default the checksum type is read from the config file, but can be overridden
+ * with this method.
+ */
+ void setChecksumType(const QString& type);
+
QString checksumType() const;
signals:
@@ -67,7 +71,7 @@ private slots:
void slotDownloadChecksumCalculated();
private:
- QByteArray _checksumType;
+ QString _checksumType;
QByteArray _expectedHash;
QByteArray _checksumHeader;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git
More information about the Pkg-owncloud-commits
mailing list