[Pkg-owncloud-commits] [owncloud-client] 126/211: NetworkJobs: Higher timeout for pre-oC7

Sandro Knauß hefee-guest at moszumanska.debian.org
Sat Oct 25 09:10:36 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 704c5f2de78ed107eff892137749a570429e299d
Author: Markus Goetz <markus at woboq.com>
Date:   Mon Oct 20 13:34:09 2014 +0200

    NetworkJobs: Higher timeout for pre-oC7
    
    Pre-oc7 has PHP session locking for PROPFIND (by recursive PROPFIND in csync_update),
    the oc7 doesn't.
---
 src/mirall/networkjobs.cpp | 15 ++++++++++++++-
 src/mirall/networkjobs.h   |  3 +++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/mirall/networkjobs.cpp b/src/mirall/networkjobs.cpp
index dfa9587..443ef6a 100644
--- a/src/mirall/networkjobs.cpp
+++ b/src/mirall/networkjobs.cpp
@@ -39,6 +39,8 @@ Q_DECLARE_METATYPE(QTimer*)
 
 namespace Mirall {
 
+bool AbstractNetworkJob::preOc7WasDetected = false;
+
 AbstractNetworkJob::AbstractNetworkJob(Account *account, const QString &path, QObject *parent)
     : QObject(parent)
     , _duration(0)
@@ -48,7 +50,12 @@ AbstractNetworkJob::AbstractNetworkJob(Account *account, const QString &path, QO
     , _path(path)
 {
     _timer.setSingleShot(true);
-    _timer.setInterval(10*1000); // default to 10 seconds.
+    if (!AbstractNetworkJob::preOc7WasDetected) {
+        _timer.setInterval(10*1000); // default to 10 seconds.
+    } else {
+        qDebug() << "Pre-oc7 server detected, adjusting timeout values";
+        _timer.setInterval(60*1000); // long PROPFINDs in oc6 might take too long
+    }
     connect(&_timer, SIGNAL(timeout()), this, SLOT(slotTimeout()));
 
     connect(this, SIGNAL(networkActivity()), SLOT(resetTimeout()));
@@ -445,6 +452,12 @@ bool CheckServerJob::finished()
         if( status.contains("installed")
                 && status.contains("version")
                 && status.contains("versionstring") ) {
+
+            QString versionString = status.value("version").toString();
+            if (versionString.contains('.') && versionString.split('.')[0].toInt() < 7) {
+                AbstractNetworkJob::preOc7WasDetected = true;
+            }
+
             emit instanceFound(reply()->url(), status);
         } else {
             qDebug() << "No proper answer on " << requestedUrl;
diff --git a/src/mirall/networkjobs.h b/src/mirall/networkjobs.h
index 58cc496..14b88ec 100644
--- a/src/mirall/networkjobs.h
+++ b/src/mirall/networkjobs.h
@@ -94,6 +94,9 @@ protected:
     QElapsedTimer _durationTimer;
     quint64       _duration;
 
+    // Timeout workarounds (Because of PHP session locking)
+    static bool preOc7WasDetected;
+
 private slots:
     void slotFinished();
     virtual void slotTimeout();

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