]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Revert "Discovery: consider also the "shared by me" as shared"
authorOlivier Goffart <ogoffart@woboq.com>
Wed, 16 Nov 2016 16:42:25 +0000 (17:42 +0100)
committerOlivier Goffart <ogoffart@woboq.com>
Wed, 16 Nov 2016 16:45:40 +0000 (17:45 +0100)
This reverts pull request 5313 (commit
2d6e473a4044ea4cadd3cf1d043a447790b87222 and
2f3db04e87a4e3edff389389d46d1c7a5a3e0d03)

The problem is that this loads the server too much.

src/libsync/discoveryphase.cpp
src/libsync/syncfilestatus.cpp
src/libsync/syncfilestatus.h
src/libsync/syncfilestatustracker.cpp
test/syncenginetestutils.h
test/testsyncfilestatustracker.cpp

index d11749d59bee602ae1b39e13720d243103cd34e7..bb35f1f97f8a58ddb30a202be4ce6931f5787dba 100644 (file)
@@ -20,7 +20,6 @@
 #include <QUrl>
 #include "account.h"
 #include <QFileInfo>
-#include <cstring>
 
 namespace OCC {
 
@@ -237,8 +236,7 @@ void DiscoverySingleDirectoryJob::start()
     QList<QByteArray> props;
     props << "resourcetype" << "getlastmodified" << "getcontentlength" << "getetag"
           << "http://owncloud.org/ns:id" << "http://owncloud.org/ns:downloadURL"
-          << "http://owncloud.org/ns:dDC" << "http://owncloud.org/ns:permissions"
-          << "http://owncloud.org/ns:share-types";
+          << "http://owncloud.org/ns:dDC" << "http://owncloud.org/ns:permissions";
     if (_isRootPath)
         props << "http://owncloud.org/ns:data-fingerprint";
 
@@ -310,25 +308,9 @@ static csync_vio_file_stat_t* propertyMapToFileStat(const QMap<QString,QString>
             } else {
                 qWarning() << "permissions too large" << v;
             }
-        } else if (property == "share-types" && !value.isEmpty()) {
-            // Since QMap is sorted, "share-types" is always "permissions".
-            if (file_stat->remotePerm[0] == '\0' || !(file_stat->fields & CSYNC_VIO_FILE_STAT_FIELDS_PERM)) {
-                qWarning() << "Server returned a share type, but no permissions?";
-            } else {
-                // S means shared with me.
-                // But for our purpose, we want to know if the file is shared. It does not matter
-                // if we are the owner or not.
-                // Piggy back on the persmission field 'S'
-                if (!std::strchr(file_stat->remotePerm, 'S')) {
-                    if (std::strlen(file_stat->remotePerm) < sizeof(file_stat->remotePerm)-1) {
-                        std::strcat(file_stat->remotePerm, "S");
-                    } else {
-                        qWarning() << "permissions too large" << file_stat->remotePerm;
-                    }
-                }
-            }
         }
     }
+
     return file_stat;
 }
 
index 169be2bc8053bc6cdd71ee3864a672780b1e0b15..c81a647459a1a41ef1637d4399778b08e178d144 100644 (file)
 
 namespace OCC {
 SyncFileStatus::SyncFileStatus()
-    :_tag(StatusNone), _shared(false)
+    :_tag(StatusNone), _sharedWithMe(false)
 {
 }
 
 SyncFileStatus::SyncFileStatus(SyncFileStatusTag tag)
-    :_tag(tag), _shared(false)
+    :_tag(tag), _sharedWithMe(false)
 {
 
 }
@@ -37,14 +37,14 @@ SyncFileStatus::SyncFileStatusTag SyncFileStatus::tag() const
     return _tag;
 }
 
-void SyncFileStatus::setShared(bool isShared)
+void SyncFileStatus::setSharedWithMe(bool isShared)
 {
-    _shared = isShared;
+    _sharedWithMe = isShared;
 }
 
-bool SyncFileStatus::shared() const
+bool SyncFileStatus::sharedWithMe() const
 {
-    return _shared;
+    return _sharedWithMe;
 }
 
 QString SyncFileStatus::toSocketAPIString() const
@@ -72,7 +72,7 @@ QString SyncFileStatus::toSocketAPIString() const
         statusString = QLatin1String("ERROR");
         break;
     }
-    if(canBeShared && _shared) {
+    if(canBeShared && _sharedWithMe) {
         statusString += QLatin1String("+SWM");
     }
 
index 6fda24c1603aafcabcca4aefbcbe46e6eedbb0ca..83a658ce3ccf8229d591efddaeb6458537cb3c09 100644 (file)
@@ -43,18 +43,18 @@ public:
     void set(SyncFileStatusTag tag);
     SyncFileStatusTag tag() const;
 
-    void setShared( bool isShared );
-    bool shared() const;
+    void setSharedWithMe( bool isShared );
+    bool sharedWithMe() const;
 
     QString toSocketAPIString() const;
 private:
     SyncFileStatusTag _tag;
-    bool _shared;
+    bool _sharedWithMe;
 
 };
 
 inline bool operator==(const SyncFileStatus &a, const SyncFileStatus &b) {
-    return a.tag() == b.tag() && a.shared() == b.shared();
+    return a.tag() == b.tag() && a.sharedWithMe() == b.sharedWithMe();
 }
 
 inline bool operator!=(const SyncFileStatus &a, const SyncFileStatus &b) {
index b7c26bb5c153fb9a0ca2dfbc43112fa73e5459fa..6ca41e219402647e94c36833601160f4d6a2577a 100644 (file)
@@ -272,7 +272,7 @@ SyncFileStatus SyncFileStatusTracker::resolveSyncAndErrorStatus(const QString &r
     }
 
     if (isShared)
-        status.setShared(true);
+        status.setSharedWithMe(true);
 
     return status;
 }
index 514a3fca4a45b7867959a4fb9e5ef32f8ea77bad..0f4249c387a2f04b7a5f150c7fe5e7e5c210221c 100644 (file)
@@ -263,7 +263,6 @@ public:
     QDateTime lastModified = QDateTime::currentDateTime().addDays(-7);
     QString etag = generateEtag();
     QByteArray fileId = generateFileId();
-    QByteArray extraDavProperties;
     qint64 size = 0;
     char contentChar = 'W';
 
@@ -340,7 +339,6 @@ public:
             xml.writeTextElement(davUri, QStringLiteral("getetag"), fileInfo.etag);
             xml.writeTextElement(ocUri, QStringLiteral("permissions"), fileInfo.isShared ? QStringLiteral("SRDNVCKW") : QStringLiteral("RDNVCKW"));
             xml.writeTextElement(ocUri, QStringLiteral("id"), fileInfo.fileId);
-            buffer.write(fileInfo.extraDavProperties);
             xml.writeEndElement(); // prop
             xml.writeTextElement(davUri, QStringLiteral("status"), "HTTP/1.1 200 OK");
             xml.writeEndElement(); // propstat
@@ -751,7 +749,7 @@ public:
     OCC::SyncEngine &syncEngine() const { return *_syncEngine; }
 
     FileModifier &localModifier() { return _localModifier; }
-    FileInfo &remoteModifier() { return _fakeQnam->currentRemoteState(); }
+    FileModifier &remoteModifier() { return _fakeQnam->currentRemoteState(); }
     FileInfo currentLocalState() {
         QDir rootDir{_tempDir.path()};
         FileInfo rootTemplate;
index 897d47a97004313cc5b556de7ad86401ec9e4cef..cb66ad3a8a25ad5761e67c32b58909268a32ced0 100644 (file)
@@ -371,15 +371,11 @@ private slots:
 
     void sharedStatus() {
         SyncFileStatus sharedUpToDateStatus(SyncFileStatus::StatusUpToDate);
-        sharedUpToDateStatus.setShared(true);
+        sharedUpToDateStatus.setSharedWithMe(true);
 
         FakeFolder fakeFolder{FileInfo::A12_B12_C12_S12()};
         fakeFolder.remoteModifier().insert("S/s0");
         fakeFolder.remoteModifier().appendByte("S/s1");
-        fakeFolder.remoteModifier().insert("B/b3");
-        fakeFolder.remoteModifier().find("B/b3")->extraDavProperties
-            = "<oc:share-types><oc:share-type>0</oc:share-type></oc:share-types>";
-
         StatusPushSpy statusSpy(fakeFolder.syncEngine());
 
         fakeFolder.scheduleSync();
@@ -399,8 +395,6 @@ private slots:
         QEXPECT_FAIL("", "We currently only know if a new file is shared on the second sync, after a PROPFIND.", Continue);
         QCOMPARE(statusSpy.statusOf("S/s0"), sharedUpToDateStatus);
         QCOMPARE(statusSpy.statusOf("S/s1"), sharedUpToDateStatus);
-        QCOMPARE(statusSpy.statusOf("B/b1").shared(), false);
-        QCOMPARE(statusSpy.statusOf("B/b3"), sharedUpToDateStatus);
 
         QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
     }