summaryrefslogtreecommitdiffstats
path: root/src/libs/kdtools
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2013-06-19 11:31:48 +0200
committerKarsten Heimrich <karsten.heimrich@digia.com>2013-06-19 15:23:12 +0200
commit6219f2aa1e2bd47e11c59e90b875525e8880c6e9 (patch)
treeb8720ffb010f9ebe4076e4ee516204db6e488d5d /src/libs/kdtools
parentfe8af8bdc77f6ed7aed64c56c287433f4de804f9 (diff)
Once we acknowledged to ignore ssl errors, do it always.
Change-Id: I5131a3f93b48878fa287161517c4ca2b224a28a5 Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Diffstat (limited to 'src/libs/kdtools')
-rw-r--r--src/libs/kdtools/kdupdaterfiledownloader.cpp21
-rw-r--r--src/libs/kdtools/kdupdaterfiledownloader.h3
-rw-r--r--src/libs/kdtools/kdupdaterfiledownloaderfactory.cpp12
-rw-r--r--src/libs/kdtools/kdupdaterfiledownloaderfactory.h3
4 files changed, 35 insertions, 4 deletions
diff --git a/src/libs/kdtools/kdupdaterfiledownloader.cpp b/src/libs/kdtools/kdupdaterfiledownloader.cpp
index b858e2301..129268216 100644
--- a/src/libs/kdtools/kdupdaterfiledownloader.cpp
+++ b/src/libs/kdtools/kdupdaterfiledownloader.cpp
@@ -93,6 +93,7 @@ struct KDUpdater::FileDownloader::Private
, m_sampleIndex(0)
, m_downloadSpeed(0)
, m_factory(0)
+ , m_ignoreSslErrors(false)
{
memset(m_samples, 0, sizeof(m_samples));
}
@@ -125,6 +126,7 @@ struct KDUpdater::FileDownloader::Private
QAuthenticator m_authenticator;
FileDownloaderProxyFactory *m_factory;
+ bool m_ignoreSslErrors;
};
KDUpdater::FileDownloader::FileDownloader(const QString &scheme, QObject *parent)
@@ -413,6 +415,16 @@ void KDUpdater::FileDownloader::setAuthenticator(const QAuthenticator &authentic
}
}
+bool KDUpdater::FileDownloader::ignoreSslErrors()
+{
+ return d->m_ignoreSslErrors;
+}
+
+void KDUpdater::FileDownloader::setIgnoreSslErrors(bool ignore)
+{
+ d->m_ignoreSslErrors = ignore;
+}
+
// -- KDUpdater::LocalFileDownloader
/*
@@ -1038,7 +1050,6 @@ void KDUpdater::HttpDownloader::onAuthenticationRequired(QNetworkReply *reply, Q
void KDUpdater::HttpDownloader::onSslErrors(QNetworkReply* reply, const QList<QSslError> &errors)
{
Q_UNUSED(reply)
-
QString errorString;
foreach (const QSslError &error, errors) {
if (!errorString.isEmpty())
@@ -1048,9 +1059,10 @@ void KDUpdater::HttpDownloader::onSslErrors(QNetworkReply* reply, const QList<QS
qDebug() << errorString;
const QStringList arguments = QCoreApplication::arguments();
- if (arguments.contains(QLatin1String("--script")) || arguments.contains(QLatin1String("Script"))) {
- reply->ignoreSslErrors();
- return;
+ if (arguments.contains(QLatin1String("--script")) || arguments.contains(QLatin1String("Script"))
+ || ignoreSslErrors()) {
+ reply->ignoreSslErrors();
+ return;
}
// TODO: Remove above code once we have a proper implementation for message box handler supporting
// methods used in the following code, right now we return here cause the message box is not scriptable.
@@ -1075,6 +1087,7 @@ void KDUpdater::HttpDownloader::onSslErrors(QNetworkReply* reply, const QList<QS
httpDone(true);
} else {
reply->ignoreSslErrors();
+ KDUpdater::FileDownloaderFactory::instance()->setIgnoreSslErrors(true);
}
}
#endif
diff --git a/src/libs/kdtools/kdupdaterfiledownloader.h b/src/libs/kdtools/kdupdaterfiledownloader.h
index b6e65fa3e..0f22991be 100644
--- a/src/libs/kdtools/kdupdaterfiledownloader.h
+++ b/src/libs/kdtools/kdupdaterfiledownloader.h
@@ -78,6 +78,9 @@ public:
QAuthenticator authenticator() const;
void setAuthenticator(const QAuthenticator &authenticator);
+ bool ignoreSslErrors();
+ void setIgnoreSslErrors(bool ignore);
+
public Q_SLOTS:
virtual void cancelDownload();
diff --git a/src/libs/kdtools/kdupdaterfiledownloaderfactory.cpp b/src/libs/kdtools/kdupdaterfiledownloaderfactory.cpp
index 2b7d89d0d..40b91c73f 100644
--- a/src/libs/kdtools/kdupdaterfiledownloaderfactory.cpp
+++ b/src/libs/kdtools/kdupdaterfiledownloaderfactory.cpp
@@ -46,6 +46,7 @@ struct FileDownloaderFactory::FileDownloaderFactoryData
~FileDownloaderFactoryData() { delete m_factory; }
bool m_followRedirects;
+ bool m_ignoreSslErrors;
FileDownloaderProxyFactory *m_factory;
};
@@ -94,6 +95,16 @@ void FileDownloaderFactory::setProxyFactory(FileDownloaderProxyFactory *factory)
FileDownloaderFactory::instance().d->m_factory = factory;
}
+bool FileDownloaderFactory::ignoreSslErrors()
+{
+ return FileDownloaderFactory::instance().d->m_ignoreSslErrors;
+}
+
+void FileDownloaderFactory::setIgnoreSslErrors(bool ignore)
+{
+ FileDownloaderFactory::instance().d->m_ignoreSslErrors = ignore;
+}
+
FileDownloaderFactory::~FileDownloaderFactory()
{
delete d;
@@ -111,6 +122,7 @@ FileDownloader *FileDownloaderFactory::create(const QString &scheme, QObject *pa
downloader->setParent(parent);
downloader->setScheme(scheme);
downloader->setFollowRedirects(d->m_followRedirects);
+ downloader->setIgnoreSslErrors(d->m_ignoreSslErrors);
if (d->m_factory)
downloader->setProxyFactory(d->m_factory->clone());
}
diff --git a/src/libs/kdtools/kdupdaterfiledownloaderfactory.h b/src/libs/kdtools/kdupdaterfiledownloaderfactory.h
index e27cb6f7e..b5cb55607 100644
--- a/src/libs/kdtools/kdupdaterfiledownloaderfactory.h
+++ b/src/libs/kdtools/kdupdaterfiledownloaderfactory.h
@@ -66,6 +66,9 @@ public:
static void setProxyFactory(FileDownloaderProxyFactory *factory);
+ static bool ignoreSslErrors();
+ static void setIgnoreSslErrors(bool ignore);
+
private:
FileDownloaderFactory();