interface: change how GracefulDisconnect is handled
This commit is contained in:
@@ -96,8 +96,7 @@ class NotificationSession(ClientSession):
|
|||||||
return str(method) + repr(params)
|
return str(method) + repr(params)
|
||||||
|
|
||||||
|
|
||||||
# FIXME this is often raised inside a TaskGroup, but then it's not silent :(
|
class GracefulDisconnect(Exception): pass
|
||||||
class GracefulDisconnect(AIOSafeSilentException): pass
|
|
||||||
|
|
||||||
|
|
||||||
class ErrorParsingSSLCert(Exception): pass
|
class ErrorParsingSSLCert(Exception): pass
|
||||||
@@ -226,7 +225,17 @@ class Interface(PrintError):
|
|||||||
sslc.check_hostname = 0
|
sslc.check_hostname = 0
|
||||||
return sslc
|
return sslc
|
||||||
|
|
||||||
|
def handle_graceful_disconnect(func):
|
||||||
|
async def wrapper_func(self, *args, **kwargs):
|
||||||
|
try:
|
||||||
|
return await func(self, *args, **kwargs)
|
||||||
|
except GracefulDisconnect as e:
|
||||||
|
self.print_error("disconnecting gracefully. {}".format(e))
|
||||||
|
self.exception = e
|
||||||
|
return wrapper_func
|
||||||
|
|
||||||
@aiosafe
|
@aiosafe
|
||||||
|
@handle_graceful_disconnect
|
||||||
async def run(self):
|
async def run(self):
|
||||||
try:
|
try:
|
||||||
ssl_context = await self._get_ssl_context()
|
ssl_context = await self._get_ssl_context()
|
||||||
|
|||||||
Reference in New Issue
Block a user