From ce3a42dbee2c66f2c97b565d2d1e781afdfb16df Mon Sep 17 00:00:00 2001 From: Jeena Paradies Date: Wed, 3 Apr 2013 11:18:45 +0200 Subject: [PATCH] fixed problems with tent.is and campr.me authentifications --- Qt/Bungloo.py | 4 ++++ Qt/Helper.py | 8 +++++--- Qt/Windows.py | 11 ++++++++++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Qt/Bungloo.py b/Qt/Bungloo.py index e597e95..72d04f2 100755 --- a/Qt/Bungloo.py +++ b/Qt/Bungloo.py @@ -15,6 +15,10 @@ class Bungloo: def __init__(self): + sslConfig = QtNetwork.QSslConfiguration.defaultConfiguration() + sslConfig.setProtocol(QtNetwork.QSsl.TlsV1) + QtNetwork.QSslConfiguration.setDefaultConfiguration(sslConfig) + self.app = QtGui.QApplication(sys.argv) self.new_message_windows = [] self.controller = Controller(self) diff --git a/Qt/Helper.py b/Qt/Helper.py index 791a58d..09cd069 100644 --- a/Qt/Helper.py +++ b/Qt/Helper.py @@ -2,7 +2,7 @@ from PyQt4 import QtCore, QtGui, QtWebKit from PyQt4.QtCore import QTimer, QVariant, SIGNAL from PyQt4.QtGui import * -from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply +from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply, QSslSocket from PyQt4.QtWebKit import QWebView import os, sys @@ -107,8 +107,9 @@ class WebViewCreator(QtWebKit.QWebView): def handleSslErrors(self, reply, errors): if os.name == "nt": # ignore SSL errors on Windows (yes a uggly workaround, don't know how to fix it yet) - reply.ignoreSslErrors() - pass + for error in errors: + print error.errorString() + reply.ignoreSslErrors(errors) class NetworkAccessManager(QNetworkAccessManager): @@ -123,6 +124,7 @@ class NetworkAccessManager(QNetworkAccessManager): self.setCookieJar(old_manager.cookieJar()) self.setProxy(old_manager.proxy()) self.setProxyFactory(old_manager.proxyFactory()) + self.sslErrors.connect(lambda reply, errors: old_manager.sslErrors) def createRequest(self, operation, request, data): if request.url().scheme() != "bungloo": diff --git a/Qt/Windows.py b/Qt/Windows.py index 5fe85c3..1a1bfb3 100644 --- a/Qt/Windows.py +++ b/Qt/Windows.py @@ -1,5 +1,5 @@ from PyQt4 import QtCore, QtGui, QtWebKit -import Helper, urllib, urllib2 +import Helper, urllib, urllib2, os class Preferences: @@ -224,8 +224,10 @@ class Oauth: old_manager = self.auth_view.page().networkAccessManager() new_manager = Helper.NetworkAccessManager(old_manager, self.bungloo_callback) new_manager.authenticationRequired.connect(self.authentication_required) + new_manager.sslErrors.connect(lambda reply, errors: self.handleSslErrors(reply, errors)) self.auth_view.page().setNetworkAccessManager(new_manager) self.auth_view.show() + self.auth_view.load_url(url) return False @@ -250,6 +252,13 @@ class Oauth: if hasattr(self, "auth_view"): self.auth_view.hide() + def handleSslErrors(self, reply, errors): + if os.name == "nt": # ignore SSL errors on Windows (yes a uggly workaround, don't know how to fix it yet) + for error in errors: + print error.errorString() + reply.ignoreSslErrors(errors) + + class Login(QtGui.QDialog): def __init__(self):