[Pkg-owncloud-commits] [owncloud-client] 24/30: Proxy: Try to fix issue

Sandro Knauß hefee-guest at moszumanska.debian.org
Sat Mar 15 21:28:30 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 630f61142aa3a51db8c001a6737572efa1061e8e
Author: Markus Goetz <markus at woboq.com>
Date:   Thu Mar 6 17:45:02 2014 +0100

    Proxy: Try to fix issue
    
    See https://github.com/owncloud/mirall/commit/eb7074e9f088214648183a45c2ce806f65a8bf3c for discussion
---
 src/mirall/mirallaccessmanager.cpp | 14 ++++++++++++++
 src/mirall/mirallaccessmanager.h   |  2 ++
 src/mirall/networkjobs.cpp         |  3 +++
 3 files changed, 19 insertions(+)

diff --git a/src/mirall/mirallaccessmanager.cpp b/src/mirall/mirallaccessmanager.cpp
index 9bf77ab..4bceec1 100644
--- a/src/mirall/mirallaccessmanager.cpp
+++ b/src/mirall/mirallaccessmanager.cpp
@@ -13,6 +13,7 @@
 
 #include <QNetworkRequest>
 #include <QNetworkProxy>
+#include <QAuthenticator>
 
 #include "mirall/mirallaccessmanager.h"
 #include "mirall/utility.h"
@@ -29,6 +30,8 @@ MirallAccessManager::MirallAccessManager(QObject* parent)
     proxy.setHostName(" ");
     setProxy(proxy);
 #endif
+    QObject::connect(this, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)),
+                     this, SLOT(slotProxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)));
 }
 
 QNetworkReply* MirallAccessManager::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest& request, QIODevice* outgoingData)
@@ -44,4 +47,15 @@ QNetworkReply* MirallAccessManager::createRequest(QNetworkAccessManager::Operati
     return QNetworkAccessManager::createRequest(op, newRequest, outgoingData);
 }
 
+void MirallAccessManager::slotProxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator)
+{
+    Q_UNUSED(authenticator);
+    qDebug() << Q_FUNC_INFO << proxy.type();
+    // We put in the password here and in ClientProxy in the proxy itself.
+    if (!proxy.user().isEmpty() || !proxy.password().isEmpty()) {
+        authenticator->setUser(proxy.user());
+        authenticator->setPassword(proxy.password());
+    }
+}
+
 } // ns Mirall
diff --git a/src/mirall/mirallaccessmanager.h b/src/mirall/mirallaccessmanager.h
index a8dcbab..a054280 100644
--- a/src/mirall/mirallaccessmanager.h
+++ b/src/mirall/mirallaccessmanager.h
@@ -28,6 +28,8 @@ public:
 
 protected:
     QNetworkReply* createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest& request, QIODevice* outgoingData = 0);
+protected slots:
+    void slotProxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator);
 };
 
 } // ns Mirall
diff --git a/src/mirall/networkjobs.cpp b/src/mirall/networkjobs.cpp
index 5f40a4a..a6b3d21 100644
--- a/src/mirall/networkjobs.cpp
+++ b/src/mirall/networkjobs.cpp
@@ -139,6 +139,9 @@ void AbstractNetworkJob::slotFinished()
 {
     if( _reply->error() != QNetworkReply::NoError ) {
         qDebug() << Q_FUNC_INFO << _reply->error() << _reply->errorString();
+        if (_reply->error() == QNetworkReply::ProxyAuthenticationRequiredError) {
+            qDebug() << Q_FUNC_INFO << _reply->rawHeader("Proxy-Authenticate");
+        }
         emit networkError(_reply);
     }
     finished();

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