diff options
author | kh1 <karsten.heimrich@digia.com> | 2013-06-19 11:31:48 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@digia.com> | 2013-06-19 15:23:12 +0200 |
commit | 6219f2aa1e2bd47e11c59e90b875525e8880c6e9 (patch) | |
tree | b8720ffb010f9ebe4076e4ee516204db6e488d5d /src | |
parent | fe8af8bdc77f6ed7aed64c56c287433f4de804f9 (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')
-rw-r--r-- | src/libs/kdtools/kdupdaterfiledownloader.cpp | 21 | ||||
-rw-r--r-- | src/libs/kdtools/kdupdaterfiledownloader.h | 3 | ||||
-rw-r--r-- | src/libs/kdtools/kdupdaterfiledownloaderfactory.cpp | 12 | ||||
-rw-r--r-- | src/libs/kdtools/kdupdaterfiledownloaderfactory.h | 3 |
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(); |