[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