[Pkg-owncloud-commits] [owncloud-client] 108/171: SyncEngine: For server older than 8.1, ignore invalid char in new directories
    Sandro Knauß 
    hefee-guest at moszumanska.debian.org
       
    Wed Feb 17 09:36:56 UTC 2016
    
    
  
This is an automated email from the git hooks/post-receive script.
hefee-guest pushed a commit to annotated tag upstream/2.1.1+dfsg
in repository owncloud-client.
commit bbedeed1c5d0f4af57228cc755c9f8e2ca6248ac
Author: Olivier Goffart <ogoffart at woboq.com>
Date:   Wed Jan 13 17:49:41 2016 +0100
    SyncEngine: For server older than 8.1, ignore invalid char in new directories
    
    Server older than 8.1 cannot cope with invalid char in the filename
    so we must not send them from the client. We were already checking
    for new files, but not for renames or new directories.
    
    https://github.com/owncloud/enterprise/issues/1009
---
 src/libsync/propagateupload.cpp | 10 ----------
 src/libsync/syncengine.cpp      | 13 +++++++++++++
 2 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/src/libsync/propagateupload.cpp b/src/libsync/propagateupload.cpp
index e468f87..ff6c1da 100644
--- a/src/libsync/propagateupload.cpp
+++ b/src/libsync/propagateupload.cpp
@@ -199,16 +199,6 @@ void PropagateUploadFileQNAM::start()
         return;
     }
 
-    if (_propagator->account()->serverVersionInt() < 0x080100) {
-        // Server version older than 8.1 don't support these character in filename.
-        static const QRegExp invalidCharRx("[\\\\:?*\"<>|]");
-        if (_item->_file.contains(invalidCharRx)) {
-            _item->_httpErrorCode = 400; // So the entry get blacklisted
-            done(SyncFileItem::NormalError, tr("File name contains at least one invalid character"));
-            return;
-        }
-    }
-
     _propagator->_activeJobs++;
 
     if (!_deleteExisting) {
diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp
index 6be3e93..301c0fb 100644
--- a/src/libsync/syncengine.cpp
+++ b/src/libsync/syncengine.cpp
@@ -816,6 +816,19 @@ void SyncEngine::slotDiscoveryJobFinished(int discoveryResult)
         (*it)->_file = adjustRenamedPath((*it)->_file);
     }
 
+    // Check for invalid character in old server version
+    if (_account->serverVersionInt() < 0x080100) {
+        // Server version older than 8.1 don't support these character in filename.
+        static const QRegExp invalidCharRx("[\\\\:?*\"<>|]");
+        for (auto it = _syncedItems.begin(); it != _syncedItems.end(); ++it) {
+            if ((*it)->_direction == SyncFileItem::Up &&
+                    (*it)->destination().contains(invalidCharRx)) {
+                (*it)->_errorString  = tr("File name contains at least one invalid character");
+                (*it)->_instruction = CSYNC_INSTRUCTION_IGNORE;
+            }
+        }
+    }
+
     // Sort items per destination
     std::sort(_syncedItems.begin(), _syncedItems.end());
 
-- 
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