[QGIS Commit] r13448 - trunk/qgis/src/app

svn_qgis at osgeo.org svn_qgis at osgeo.org
Sun May 9 12:42:03 EDT 2010


Author: jef
Date: 2010-05-09 12:42:01 -0400 (Sun, 09 May 2010)
New Revision: 13448

Modified:
   trunk/qgis/src/app/qgisapp.cpp
   trunk/qgis/src/app/qgisapp.h
Log:
handle ssl errors

Modified: trunk/qgis/src/app/qgisapp.cpp
===================================================================
--- trunk/qgis/src/app/qgisapp.cpp	2010-05-09 00:45:17 UTC (rev 13447)
+++ trunk/qgis/src/app/qgisapp.cpp	2010-05-09 16:42:01 UTC (rev 13448)
@@ -6528,6 +6528,9 @@
 
   connect( nam, SIGNAL( proxyAuthenticationRequired( const QNetworkProxy &, QAuthenticator * ) ),
            this, SLOT( namProxyAuthenticationRequired( const QNetworkProxy &, QAuthenticator * ) ) );
+
+  connect( nam, SIGNAL( sslErrors( QNetworkReply *, const QList<QSslError> & ) ),
+           this, SLOT( namSslErrors( QNetworkReply *, const QList<QSslError> & ) ) );
 }
 
 void QgisApp::namAuthenticationRequired( QNetworkReply *reply, QAuthenticator *auth )
@@ -6562,6 +6565,31 @@
   auth->setPassword( password );
 }
 
+void QgisApp::namSslErrors( QNetworkReply *reply, const QList<QSslError> &errors )
+{
+  QString msg = tr( "SSL errors occured accessing URL %1:" ).arg( reply->request().url().toString() );
+  bool otherError = false;
+
+  foreach( QSslError error, errors )
+  {
+    if ( error.error() != QSslError::SelfSignedCertificate &&
+         error.error() != QSslError::HostNameMismatch )
+      otherError = true;
+    msg += "\n" + error.errorString();
+  }
+
+  msg += tr( "\n\nIgnore errors?" );
+
+  if ( !otherError ||
+       QMessageBox::warning( this,
+                             tr( "SSL errors occured" ),
+                             msg,
+                             QMessageBox::Ok | QMessageBox::Cancel ) == QMessageBox::Ok )
+  {
+    reply->ignoreSslErrors();
+  }
+}
+
 void QgisApp::namUpdate()
 {
   QNetworkProxy proxy;

Modified: trunk/qgis/src/app/qgisapp.h
===================================================================
--- trunk/qgis/src/app/qgisapp.h	2010-05-09 00:45:17 UTC (rev 13447)
+++ trunk/qgis/src/app/qgisapp.h	2010-05-09 16:42:01 UTC (rev 13448)
@@ -74,6 +74,7 @@
 #include <QToolBar>
 #include <QAbstractSocket>
 #include <QPointer>
+#include <QSslError>
 
 #include "qgsconfig.h"
 #include "qgsfeature.h"
@@ -403,6 +404,7 @@
     //! request credentials for network manager
     void namAuthenticationRequired( QNetworkReply *reply, QAuthenticator *auth );
     void namProxyAuthenticationRequired( const QNetworkProxy &proxy, QAuthenticator *auth );
+    void namSslErrors( QNetworkReply *reply, const QList<QSslError> &errors );
 
   protected:
 



More information about the QGIS-commit mailing list