From e65ce96f9d9080fcb46fedf3400007a6cd73abfc Mon Sep 17 00:00:00 2001 From: SomberNight Date: Sun, 12 Jan 2020 04:29:39 +0100 Subject: [PATCH] interface: better error msg for main server re SSL cert issues (logger.warning is shown even without -v, if there is a terminal) closes #5884 --- electrum/interface.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/electrum/interface.py b/electrum/interface.py index bc4e75aad..9faaa7078 100644 --- a/electrum/interface.py +++ b/electrum/interface.py @@ -382,7 +382,13 @@ class Interface(Logger): try: await self.open_session(ssl_context) except (asyncio.CancelledError, ConnectError, aiorpcx.socks.SOCKSError) as e: - self.logger.info(f'disconnecting due to: {repr(e)}') + # make SSL errors for main interface more visible (to help servers ops debug cert pinning issues) + if (isinstance(e, ConnectError) and isinstance(e.__cause__, ssl.SSLError) + and self.is_main_server() and not self.network.auto_connect): + self.logger.warning(f'Cannot connect to main server due to SSL error ' + f'(maybe cert changed compared to "{self.cert_path}"). Exc: {repr(e)}') + else: + self.logger.info(f'disconnecting due to: {repr(e)}') return def _mark_ready(self) -> None: