From ff4e5b74d4daa32dc80be1c80c01735b99dde2d8 Mon Sep 17 00:00:00 2001 From: nowrep Date: Fri, 15 Mar 2013 10:44:05 +0100 Subject: [PATCH] [Fix] Certificates from custom path disappearing on preferences saving. --- CHANGELOG | 1 + src/lib/app/mainapplication.cpp | 1 - src/lib/network/networkmanager.cpp | 9 ++++++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index c7ff740c5..84473e136 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,6 @@ Version 1.4.1 * not yet released + * fixed certificates from custom path disappearing on saving preferences * fixed showing empty back/forward history menu upon restoring session * fixed duplicating current url in history when restoring session * fixed instantly showing popup when clicking on back/forward button diff --git a/src/lib/app/mainapplication.cpp b/src/lib/app/mainapplication.cpp index 3c50b4280..fe2e59295 100644 --- a/src/lib/app/mainapplication.cpp +++ b/src/lib/app/mainapplication.cpp @@ -270,7 +270,6 @@ MainApplication::MainApplication(int &argc, char** argv) connect(qupzilla, SIGNAL(startingCompleted()), this, SLOT(restoreCursor())); loadSettings(); - networkManager()->loadCertificates(); m_plugins = new PluginProxy; diff --git a/src/lib/network/networkmanager.cpp b/src/lib/network/networkmanager.cpp index 3eef85cfc..48650b541 100644 --- a/src/lib/network/networkmanager.cpp +++ b/src/lib/network/networkmanager.cpp @@ -131,6 +131,8 @@ void NetworkManager::loadSettings() QSslSocket::setDefaultCaCertificates(QSslSocket::systemCaCertificates()); #endif + loadCertificates(); + m_proxyFactory->loadSettings(); } @@ -623,8 +625,9 @@ void NetworkManager::loadCertificates() m_ignoreAllWarnings = settings.value("IgnoreAllSSLWarnings", false).toBool(); settings.endGroup(); - //CA Certificates + // CA Certificates m_caCerts = QSslSocket::defaultCaCertificates(); + foreach (const QString &path, m_certPaths) { #ifdef Q_OS_WIN // Used from Qt 4.7.4 qsslcertificate.cpp and modified because QSslCertificate::fromPath @@ -645,7 +648,7 @@ void NetworkManager::loadCertificates() m_caCerts += QSslCertificate::fromPath(path + "/*.crt", QSsl::Pem, QRegExp::Wildcard); #endif } - //Local Certificates + // Local Certificates #ifdef Q_OS_WIN QDirIterator it_(mApp->currentProfilePath() + "certificates", QDir::Files, QDirIterator::FollowSymlinks | QDirIterator::Subdirectories); while (it_.hasNext()) { @@ -660,7 +663,7 @@ void NetworkManager::loadCertificates() } } #else - m_localCerts += QSslCertificate::fromPath(mApp->currentProfilePath() + "certificates/*.crt", QSsl::Pem, QRegExp::Wildcard); + m_localCerts = QSslCertificate::fromPath(mApp->currentProfilePath() + "certificates/*.crt", QSsl::Pem, QRegExp::Wildcard); #endif QSslSocket::setDefaultCaCertificates(m_caCerts + m_localCerts);