Improvements for 'ignore SSL errors' option

This commit is contained in:
Muki 2019-02-25 20:54:31 +01:00
parent 4b8d0476c7
commit c3415c6ebd
3 changed files with 17 additions and 14 deletions

View file

@ -308,8 +308,13 @@ bool Fetcher::parse()
void Fetcher::sslErrors(const QList<QSslError> &sslErrors)
{
#ifndef QT_NO_SSL
foreach (const QSslError &error, sslErrors)
for (const QSslError &error : sslErrors)
qWarning() << "SSL error: " << error.errorString();
if (Settings::instance()->getIgnoreSslErrors()) {
qDebug() << "Ignoring SSL errors";
auto reply = dynamic_cast<QNetworkReply*>(sender());
reply->ignoreSslErrors();
}
#else
Q_UNUSED(sslErrors);
#endif

View file

@ -82,7 +82,7 @@ public:
BusyType readBusyType();
bool isBusy();
Q_SIGNALS:
signals:
void quit();
void busyChanged();
void progress(double current, double total);
@ -118,12 +118,8 @@ Q_SIGNALS:
void ready();
void addDownload(DatabaseManager::CacheItem item);
private Q_SLOTS:
public slots:
void sslErrors(const QList<QSslError> &errors);
void networkAccessibleChanged (QNetworkAccessManager::NetworkAccessibility accessible);
bool delayedUpdate(bool state);
void networkError(QNetworkReply::NetworkError);
void readyRead();
protected:
QNetworkAccessManager nam;
@ -149,6 +145,12 @@ protected:
void prepareUploadActions();
void taskEnd();
private slots:
void networkAccessibleChanged (QNetworkAccessManager::NetworkAccessibility accessible);
bool delayedUpdate(bool state);
void networkError(QNetworkReply::NetworkError);
void readyRead();
private:
virtual void signIn() = 0;
virtual void startFetching() = 0;

View file

@ -715,13 +715,9 @@ void TTRssFetcher::sendApiCall(const QString& op, const QString& params, ReplyCa
connect(currentReply, &QNetworkReply::finished, this, callback);
connect(currentReply, SIGNAL(readyRead()), this, SLOT(readyRead()));
connect(currentReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(networkError(QNetworkReply::NetworkError)));
connect(currentReply, &QNetworkReply::sslErrors, [this](const QList<QSslError> &errors) {
qWarning() << "SSL error:" << errors;
if (Settings::instance()->getIgnoreSslErrors()) {
qDebug() << "Ignoring SSL errors";
currentReply->ignoreSslErrors();
}
});
#ifndef QT_NO_SSL
connect(currentReply, &QNetworkReply::sslErrors, this, &Fetcher::sslErrors);
#endif
}
bool TTRssFetcher::processResponse()