[Pkg-owncloud-commits] [owncloud-client] 96/219: ConnecitonValidator: Handle the timeout

Sandro Knauß hefee-guest at moszumanska.debian.org
Sat Oct 11 14:43:14 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 52e8343f768d5c8b8c5f62a89ea27e06134575a5
Author: Olivier Goffart <ogoffart at woboq.com>
Date:   Fri Sep 12 17:58:01 2014 +0200

    ConnecitonValidator: Handle the timeout
    
    otherwise the account may be stuck in a disconnect case if there is a timeout
    
    Issue #2148
---
 src/mirall/connectionvalidator.cpp | 11 +++++++++++
 src/mirall/connectionvalidator.h   |  1 +
 src/mirall/networkjobs.cpp         |  1 +
 3 files changed, 13 insertions(+)

diff --git a/src/mirall/connectionvalidator.cpp b/src/mirall/connectionvalidator.cpp
index 24954f5..af727cb 100644
--- a/src/mirall/connectionvalidator.cpp
+++ b/src/mirall/connectionvalidator.cpp
@@ -85,6 +85,7 @@ void ConnectionValidator::checkConnection()
         checkJob->setIgnoreCredentialFailure(true);
         connect(checkJob, SIGNAL(instanceFound(QUrl,QVariantMap)), SLOT(slotStatusFound(QUrl,QVariantMap)));
         connect(checkJob, SIGNAL(networkError(QNetworkReply*)), SLOT(slotNoStatusFound(QNetworkReply*)));
+        connect(checkJob, SIGNAL(timeout(QUrl)), SLOT(slotStatusTimeout(QUrl)));
         checkJob->start();
     } else {
         _errors << tr("No ownCloud account configured");
@@ -127,9 +128,19 @@ void ConnectionValidator::slotNoStatusFound(QNetworkReply *reply)
     _errors.append( reply->errorString() );
     _networkError = (reply->error() != QNetworkReply::NoError);
     emit connectionResult( StatusNotFound );
+}
+
+void ConnectionValidator::slotStatusTimeout(const QUrl &url)
+{
+    _account->setState(Account::Disconnected);
 
+    _errors.append(tr("Unable to connect to %1").arg(url.toString()));
+    _errors.append(tr("timeout"));
+    _networkError = true;
+    emit connectionResult( StatusNotFound );
 }
 
+
 void ConnectionValidator::slotCheckAuthentication()
 {
     AbstractCredentials *creds = _account->credentials();
diff --git a/src/mirall/connectionvalidator.h b/src/mirall/connectionvalidator.h
index e930ccd..e1c7b07 100644
--- a/src/mirall/connectionvalidator.h
+++ b/src/mirall/connectionvalidator.h
@@ -60,6 +60,7 @@ public slots:
 protected slots:
     void slotStatusFound(const QUrl&url, const QVariantMap &info);
     void slotNoStatusFound(QNetworkReply *reply);
+    void slotStatusTimeout(const QUrl& url);
 
     void slotCheckAuthentication();
     void slotAuthFailed(QNetworkReply *reply);
diff --git a/src/mirall/networkjobs.cpp b/src/mirall/networkjobs.cpp
index cf58a6a..fd0ee98 100644
--- a/src/mirall/networkjobs.cpp
+++ b/src/mirall/networkjobs.cpp
@@ -359,6 +359,7 @@ void CheckServerJob::slotTimeout()
     qDebug() << "TIMEOUT" << Q_FUNC_INFO;
     if (reply()->isRunning())
         emit timeout(reply()->url());
+    deleteLater();
 }
 
 QString CheckServerJob::version(const QVariantMap &info)

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