From 6d32affd45814f89245b88816981a1da3ab0eebb Mon Sep 17 00:00:00 2001 From: zebra-lucky Date: Fri, 1 Nov 2024 23:52:24 +0200 Subject: [PATCH] irc_support.py: modify code to simplify testing --- .../joinmarket/jmdaemon/irc_support.py | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/electrum/plugins/joinmarket/jmdaemon/irc_support.py b/electrum/plugins/joinmarket/jmdaemon/irc_support.py index 3f58786ee..5dc64d93a 100644 --- a/electrum/plugins/joinmarket/jmdaemon/irc_support.py +++ b/electrum/plugins/joinmarket/jmdaemon/irc_support.py @@ -27,52 +27,52 @@ class IRCClientService: self.srv_task = None self.stop_task = None - async def _create_connection(self, wait_sec): - loop = self.loop - proxy = self.proxy + async def _create_conn(self, sslc): + self.transport, self.protocol = await self.loop.create_connection( + self.factory.buildProtocol, self.host, self.port, + ssl=sslc) + + async def _proxy_create_conn(self, sslc): + self.transport, self.protocol = await self.proxy.create_connection( + self.factory.buildProtocol, self.host, self.port, + ssl=sslc) + + async def _start_service(self, wait_sec): if self.stop_task and not self.stop_task.done(): await self.stop_task self.stop_task = None - - async def create_conn(sslc): - self.transport, self.protocol = await loop.create_connection( - self.factory.buildProtocol, self.host, self.port, - ssl=sslc) - - async def proxy_create_conn(sslc): - self.transport, self.protocol = await proxy.create_connection( - self.factory.buildProtocol, self.host, self.port, - ssl=sslc) - await asyncio.sleep(wait_sec) try: - sslc = None if self.usessl: sslc = ssl.SSLContext(protocol=ssl.PROTOCOL_TLS_CLIENT) sslc.check_hostname = False sslc.verify_mode = ssl.CERT_NONE if self.socks5: - await asyncio.wait_for(proxy_create_conn(sslc), timeout=60) + await asyncio.wait_for(self._proxy_create_conn(sslc), + timeout=60) else: - await asyncio.wait_for(create_conn(sslc), timeout=30) + await asyncio.wait_for(self._create_conn(sslc), timeout=30) except BaseException as e: - self.logger.error(f'create_connection: {repr(e)}') + self.logger.error(f'_start_service: {repr(e)}') self.factory.clientConnectionFailed(str(e)) def startService(self): wait_sec = 5 if self.stop_task else 0 - self.srv_task = asyncio.create_task(self._create_connection(wait_sec)) + self.srv_task = asyncio.create_task(self._start_service(wait_sec)) async def _stop_service(self): - if self.srv_task and not self.srv_task.done(): - self.srv_task.cancel() - self.srv_task = None + try: + if self.srv_task and not self.srv_task.done(): + self.srv_task.cancel() + self.srv_task = None - if self.transport: - self.transport.close() - self.transport = None - self.protocol = None + if self.transport: + self.transport.close() + self.transport = None + self.protocol = None + except BaseException as e: + self.logger.error(f'_stop_service: {repr(e)}') def stopService(self): self.stop_task = asyncio.create_task(self._stop_service())