]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Chunking-NG: Enable if the server supports it
authorOlivier Goffart <ogoffart@woboq.com>
Fri, 21 Oct 2016 14:42:27 +0000 (16:42 +0200)
committerOlivier Goffart <ogoffart@woboq.com>
Fri, 21 Oct 2016 14:42:27 +0000 (16:42 +0200)
src/libsync/capabilities.cpp
src/libsync/capabilities.h
src/libsync/owncloudpropagator.cpp

index ca72a70bb337f869f7b271157955b12c62c6e07e..6bf352f9a654c675664eca5d3d0cd9dae308bf68 100644 (file)
@@ -107,4 +107,10 @@ QByteArray Capabilities::uploadChecksumType() const
     return QByteArray();
 }
 
+bool Capabilities::chunkingNg() const
+{
+    return _capabilities["dav"].toMap()["chunking"].toByteArray() >= "1.0";
+}
+
+
 }
index 04eef6e3983e12fbaea6d9ea0b6bc011df3552a3..5f1936abaa914f72576c25703d490efa0b392e36 100644 (file)
@@ -39,6 +39,7 @@ public:
     bool sharePublicLinkEnforceExpireDate() const;
     int  sharePublicLinkExpireDateDays() const;
     bool shareResharing() const;
+    bool chunkingNg() const;
 
     /// returns true if the capabilities report notifications
     bool notificationsAvailable() const;
index eace8e35d0edfd1fb84aee827556f9dfb600d960..1302f88a7c160c9847a743257ad590e0ab41209b 100644 (file)
@@ -270,9 +270,10 @@ PropagateItemJob* OwncloudPropagator::createJob(const SyncFileItemPtr &item) {
                 job->setDeleteExistingFolder(deleteExisting);
                 return job;
             } else {
-                static const bool isNg  = !qgetenv("OWNCLOUD_CHUNK_NG").isEmpty(); // FIXME! use server version
                 PropagateUploadFileCommon *job = 0;
-                if (isNg && item->_size > chunkSize()) {
+                static const auto chunkng = qgetenv("OWNCLOUD_CHUNKING_NG");
+                if (item->_size > chunkSize()
+                        && (account()->capabilities().chunkingNg() || chunkng == "1") && chunkng != "0") {
                     job = new PropagateUploadFileNG(this, item);
                 } else {
                     job = new PropagateUploadFileV1(this, item);