Proxy: Fix issues with previous patch
authorMarkus Goetz <markus@woboq.com>
Wed, 25 Mar 2015 11:25:18 +0000 (12:25 +0100)
committerMarkus Goetz <markus@woboq.com>
Wed, 25 Mar 2015 11:25:49 +0000 (12:25 +0100)
This is for #2993 and #2802

src/gui/folderman.cpp
src/libsync/clientproxy.cpp
src/libsync/connectionvalidator.cpp

index 0c70b2a745e5e0b1b29e19c84abee2c0ebe8de09..565842453807a822096eb7965f1b9c0936960f52 100644 (file)
@@ -873,6 +873,13 @@ void FolderMan::setDirtyProxy(bool value)
     foreach( Folder *f, _folderMap.values() ) {
         if(f) {
             f->setProxyDirty(value);
+
+            if (f->accountState() && f->accountState()->account()
+                    && f->accountState()->account()->networkAccessManager()) {
+                // Need to do this have us not use the old determined system proxy
+                f->accountState()->account()->networkAccessManager()->setProxy(
+                            QNetworkProxy(QNetworkProxy::DefaultProxy));
+            }
         }
     }
 }
index 85b386414cd1f7c17db738486816aa37e53f51c8..a3f9972669927f9cb3dd8fddc0631fa806808476 100644 (file)
@@ -65,6 +65,7 @@ void ClientProxy::setupQtProxyFromConfig()
 
     switch(proxyType) {
     case QNetworkProxy::NoProxy:
+        qDebug() << "Set proxy configuration to use NO proxy";
         QNetworkProxyFactory::setUseSystemConfiguration(false);
         QNetworkProxy::setApplicationProxy(QNetworkProxy::NoProxy);
         break;
index 0e6043983f01f0529ddb81f6f4dd979c4bba5c4a..dd2825f35a6df0d240f179e4c33e7d30c4d7d4ed 100644 (file)
@@ -71,6 +71,8 @@ void ConnectionValidator::checkServerAndAuth()
         ClientProxy::lookupSystemProxyAsync(_account->url(),
                                             this, SLOT(systemProxyLookupDone(QNetworkProxy)));
     } else {
+        // We want to reset the QNAM proxy so that the global proxy settings are used (via ClientProxy settings)
+        _account->networkAccessManager()->setProxy(QNetworkProxy(QNetworkProxy::DefaultProxy));
         // use a queued invocation so we're as asynchronous as with the other code path
         QMetaObject::invokeMethod(this, "slotCheckServerAndAuth", Qt::QueuedConnection);
     }