[Pkg-owncloud-commits] [owncloud-client] 109/332: SocketApi: Fix recursiveFolderStatus

Sandro Knauß hefee-guest at moszumanska.debian.org
Thu Aug 14 21:06:46 UTC 2014


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 1e306012ec5475156933c740b7f3616defbbee89
Author: Olivier Goffart <ogoffart at woboq.com>
Date:   Thu Jun 19 15:25:30 2014 +0200

    SocketApi:  Fix recursiveFolderStatus
    
    If only one file is EVAL or NEW, this mean the folder need to be sync
---
 src/mirall/socketapi.cpp | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/src/mirall/socketapi.cpp b/src/mirall/socketapi.cpp
index 3d8d38b..f859aeb 100644
--- a/src/mirall/socketapi.cpp
+++ b/src/mirall/socketapi.cpp
@@ -72,6 +72,8 @@ SyncFileStatus recursiveFolderStatus(Folder *folder, const QString& fileName )
 
     const QStringList dirEntries = dir.entryList( QDir::AllEntries | QDir::NoDotAndDotDot );
 
+    SyncFileStatus result = FILE_STATUS_SYNC;
+
     foreach( const QString entry, dirEntries ) {
         QFileInfo fi(entry);
         SyncFileStatus sfs;
@@ -88,12 +90,11 @@ SyncFileStatus recursiveFolderStatus(Folder *folder, const QString& fileName )
 
         if( sfs == FILE_STATUS_STAT_ERROR || sfs == FILE_STATUS_ERROR ) {
             return FILE_STATUS_ERROR;
-        }
-        if( sfs != FILE_STATUS_SYNC) {
-            return FILE_STATUS_EVAL;
+        } else if( sfs == FILE_STATUS_EVAL || sfs == FILE_STATUS_NEW) {
+            result = FILE_STATUS_EVAL;
         }
     }
-    return FILE_STATUS_SYNC;
+    return result;
 }
 
 /**
@@ -154,16 +155,13 @@ SyncFileStatus fileStatus(Folder *folder, const QString& fileName )
             SyncJournalFileRecord rec = folder->journalDb()->getFileRecord(fileName);
             if( !rec.isValid() ) {
                 stat = FILE_STATUS_NEW;
-            }
-
-            // file was locally modified.
-            if( stat == FILE_STATUS_NONE && fi.lastModified() != rec._modtime ) {
+            } else if( stat == FILE_STATUS_NONE && fi.lastModified() != rec._modtime ) {
+                // file was locally modified.
                 stat = FILE_STATUS_EVAL;
+            } else {
+                stat = FILE_STATUS_SYNC;
             }
         }
-        if( stat == FILE_STATUS_NONE ) {
-            stat = FILE_STATUS_SYNC;
-        }
     }
     return stat;
 }

-- 
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