diff --git a/src/sakia/core/net/node.py b/src/sakia/core/net/node.py index 15ba775fa3e27b77846c08a2ce0f9f0f6de2334e..f1f2d4b59c842460afc5abbad99188ccec5fecf8 100644 --- a/src/sakia/core/net/node.py +++ b/src/sakia/core/net/node.py @@ -5,15 +5,13 @@ Created on 21 févr. 2015 """ from ucoinpy.documents.peer import Peer, Endpoint, BMAEndpoint -from ucoinpy.documents import Block, BlockId +from ucoinpy.documents import Block, BlockId, MalformedDocumentError from ...tools.exceptions import InvalidNodeCurrency from ...tools.decorators import asyncify from ucoinpy.api import bma as bma from ucoinpy.api.bma import ConnectionHandler -import json -from aiohttp.errors import ClientError, DisconnectedError, TimeoutError, \ - WSClientDisconnectedError, WSServerHandshakeError, ClientResponseError +from aiohttp.errors import WSClientDisconnectedError, WSServerHandshakeError, ClientResponseError from aiohttp.errors import ClientError, DisconnectedError from asyncio import TimeoutError import logging @@ -588,11 +586,14 @@ class Node(QObject): def refresh_peer_data(self, peer_data): if "raw" in peer_data: - str_doc = "{0}{1}\n".format(peer_data['raw'], - peer_data['signature']) - peer_doc = Peer.from_signed_raw(str_doc) - pubkey = peer_data['pubkey'] - self.neighbour_found.emit(peer_doc, pubkey) + try: + str_doc = "{0}{1}\n".format(peer_data['raw'], + peer_data['signature']) + peer_doc = Peer.from_signed_raw(str_doc) + pubkey = peer_data['pubkey'] + self.neighbour_found.emit(peer_doc, pubkey) + except MalformedDocumentError as e: + logging.debug(str(e)) else: logging.debug("Incorrect leaf reply") diff --git a/src/sakia/gui/process_cfg_community.py b/src/sakia/gui/process_cfg_community.py index be0e5355aa6940413be9217b7e06534d34b13819..a29e0d7758e724a4e6cd475864f9b5d2583616e9 100644 --- a/src/sakia/gui/process_cfg_community.py +++ b/src/sakia/gui/process_cfg_community.py @@ -8,9 +8,10 @@ import logging import asyncio import aiohttp -from PyQt5.QtWidgets import QDialog, QMenu, QMessageBox, QApplication +from ucoinpy.documents import MalformedDocumentError +from PyQt5.QtWidgets import QDialog, QMenu, QApplication from PyQt5.QtGui import QCursor -from PyQt5.QtCore import pyqtSlot, pyqtSignal, QObject +from PyQt5.QtCore import pyqtSignal, QObject from ..gen_resources.community_cfg_uic import Ui_CommunityConfigurationDialog from ..models.peering import PeeringTreeModel @@ -73,7 +74,7 @@ class StepPageInit(Step): self.config_dialog.label_error.setText(str(e)) except aiohttp.errors.ClientError as e: self.config_dialog.label_error.setText(str(e)) - except ValueError as e: + except (MalformedDocumentError, ValueError) as e: self.config_dialog.label_error.setText(str(e)) @asyncify @@ -101,7 +102,7 @@ Yours : {0}, the network : {1}""".format(registered[1], registered[2]))) self.config_dialog.label_error.setText(str(e)) except aiohttp.errors.ClientError as e: self.config_dialog.label_error.setText(str(e)) - except ValueError as e: + except (MalformedDocumentError, ValueError) as e: self.config_dialog.label_error.setText(str(e)) @asyncify @@ -144,7 +145,7 @@ Yours : {0}, the network : {1}""".format(registered[1], registered[2]))) self.config_dialog.label_error.setText(str(e)) except aiohttp.errors.ClientError as e: self.config_dialog.label_error.setText(str(e)) - except ValueError as e: + except (MalformedDocumentError, ValueError) as e: self.config_dialog.label_error.setText(str(e)) def is_valid(self):