summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomás Touceda <chiiph@leap.se>2013-07-19 11:35:27 -0300
committerTomás Touceda <chiiph@leap.se>2013-07-19 12:14:23 -0300
commit2b2505683f9dd91b6f2f8aeb1ac0798c975a53d6 (patch)
treeb641d44e2f4819ca0458f3754246c4314864a483
parent7ec29145b064afab312cb57e74dc33c38da1e3ea (diff)
Workaround segfault when emitting a signal with a None parameter
Also, support a response from requests be None in certain places.
-rw-r--r--src/leap/crypto/srpregister.py14
-rw-r--r--src/leap/gui/wizard.py4
-rw-r--r--src/leap/util/request_helpers.py2
3 files changed, 13 insertions, 7 deletions
diff --git a/src/leap/crypto/srpregister.py b/src/leap/crypto/srpregister.py
index 24f73504..de1978b5 100644
--- a/src/leap/crypto/srpregister.py
+++ b/src/leap/crypto/srpregister.py
@@ -124,7 +124,12 @@ class SRPRegister(QtCore.QObject):
logger.debug('Post to uri: %s' % uri)
logger.debug("Will try to register user = %s" % (username,))
- ok = None
+ ok = False
+ # This should be None, but we don't like when PySide segfaults,
+ # so it something else.
+ # To reproduce it, just do:
+ # self.registration_finished.emit(False, None)
+ req = []
try:
req = self._session.post(uri,
data=user_data,
@@ -132,12 +137,13 @@ class SRPRegister(QtCore.QObject):
verify=self._provider_config.
get_ca_cert_path())
- except requests.exceptions.SSLError as exc:
- logger.error("SSLError: %s" % exc.message)
- req = None
+ except (requests.exceptions.SSLError,
+ requests.exceptions.ConnectionError) as exc:
+ logger.error(exc.message)
ok = False
else:
ok = req.ok
+
self.registration_finished.emit(ok, req)
return ok
diff --git a/src/leap/gui/wizard.py b/src/leap/gui/wizard.py
index 5333edeb..2b48fc81 100644
--- a/src/leap/gui/wizard.py
+++ b/src/leap/gui/wizard.py
@@ -309,8 +309,8 @@ class Wizard(QtGui.QWizard):
error_msg = json_content.get("errors").get("login")[0]
if not error_msg.istitle():
error_msg = "%s %s" % (old_username, error_msg)
- except:
- logger.error("Unknown error: %r" % (req.content,))
+ except Exception as e:
+ logger.error("Unknown error: %r" % (e,))
self._set_register_status(error_msg, error=True)
self.ui.btnRegister.setEnabled(True)
diff --git a/src/leap/util/request_helpers.py b/src/leap/util/request_helpers.py
index 350abfbd..74aaa06b 100644
--- a/src/leap/util/request_helpers.py
+++ b/src/leap/util/request_helpers.py
@@ -41,7 +41,7 @@ def get_content(request):
contents = ""
mtime = None
- if request.content and request.json:
+ if request and request.content and request.json:
if callable(request.json):
contents = json.dumps(request.json())
else: