From 53553e5a84e9421089c1ea6ef7a1a1ad0a18def0 Mon Sep 17 00:00:00 2001 From: inso <insomniak.fr@gmaiL.com> Date: Mon, 12 Mar 2018 08:11:44 +0100 Subject: [PATCH] Workaround to asyncio ssl errors --- src/sakia/data/connectors/bma.py | 3 +++ src/sakia/data/connectors/node.py | 22 ++++++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/sakia/data/connectors/bma.py b/src/sakia/data/connectors/bma.py index 154c5ff5..6515f5d0 100644 --- a/src/sakia/data/connectors/bma.py +++ b/src/sakia/data/connectors/bma.py @@ -248,6 +248,9 @@ class BmaConnector: ValueError, jsonschema.ValidationError) as e: self._logger.debug(str(e)) tries += 1 + except AttributeError as e: + if ("feed_appdata", "do_handshake") in str(e): + self._logger.debug(str(e)) raise NoPeerAvailable("", len(endpoints)) async def get(self, currency, request, req_args={}, verify=True): diff --git a/src/sakia/data/connectors/node.py b/src/sakia/data/connectors/node.py index ed9ec1b9..ee20a010 100644 --- a/src/sakia/data/connectors/node.py +++ b/src/sakia/data/connectors/node.py @@ -126,6 +126,11 @@ class NodeConnector(QObject): pass else: raise + except AttributeError as e: + if ("feed_appdata", "do_handshake") in str(e): + self._logger.debug(str(e)) + else: + raise async def init_session(self): if not self.session: @@ -197,6 +202,11 @@ class NodeConnector(QObject): pass else: raise + except AttributeError as e: + if ("feed_appdata", "do_handshake") in str(e): + self._logger.debug(str(e)) + else: + raise finally: self._connected['block'] = False self._ws_tasks['block'] = None @@ -335,6 +345,11 @@ class NodeConnector(QObject): pass else: raise + except AttributeError as e: + if ("feed_appdata", "do_handshake") in str(e): + self._logger.debug(str(e)) + else: + raise finally: self._connected['peer'] = False self._ws_tasks['peer'] = None @@ -364,8 +379,11 @@ class NodeConnector(QObject): break self.refresh_peer_data(leaf_data['leaf']['value']) except (AttributeError, ValueError) as e: - self._logger.debug("Incorrect peer data in {leaf} : {err}".format(leaf=leaf_hash, err=str(e))) - self.handle_failure() + if ("feed_appdata", "do_handshake") in str(e): + self._logger.debug(str(e)) + else: + self._logger.debug("Incorrect peer data in {leaf} : {err}".format(leaf=leaf_hash, err=str(e))) + self.handle_failure() except errors.DuniterError as e: if e.ucode == 2012: # Since with multinodes, peers or not the same on all nodes, sometimes this request results -- GitLab