From fecef91ee02352016bcf6990821c2a42e84d2a82 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Tue, 21 May 2019 18:11:49 +0200 Subject: [PATCH] interface was suppressing storage r/w exceptions --- electrum/interface.py | 4 +++- electrum/storage.py | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/electrum/interface.py b/electrum/interface.py index 8a019afb6..4b809ced6 100644 --- a/electrum/interface.py +++ b/electrum/interface.py @@ -28,6 +28,7 @@ import ssl import sys import traceback import asyncio +import socket from typing import Tuple, Union, List, TYPE_CHECKING, Optional from collections import defaultdict from ipaddress import IPv4Network, IPv6Network, ip_address @@ -332,7 +333,8 @@ class Interface(Logger): return try: await self.open_session(ssl_context) - except (asyncio.CancelledError, OSError, aiorpcx.socks.SOCKSError) as e: + except (asyncio.CancelledError, ConnectionError, socket.gaierror, aiorpcx.socks.SOCKSError) as e: + # note: catching OSError would be too broad here... don't want to catch file system exceptions self.logger.info(f'disconnecting due to: {repr(e)}') return diff --git a/electrum/storage.py b/electrum/storage.py index 4718c2eea..e00e373f9 100644 --- a/electrum/storage.py +++ b/electrum/storage.py @@ -58,6 +58,7 @@ class WalletStorage(Logger): DB_Class = JsonDB self.logger.info(f"wallet path {self.path}") self.pubkey = None + # TODO we should test r/w permissions here (whether file exists or not) if self.file_exists(): with open(self.path, "r", encoding='utf-8') as f: self.raw = f.read()