Pandora: Handle exception in WaitSecurity()

This commit is contained in:
Josh Wu
2023-10-07 21:05:56 +08:00
parent aec5543081
commit c8b2804446

View File

@@ -450,21 +450,18 @@ class SecurityService(SecurityServicer):
'security_request': pair, 'security_request': pair,
} }
# register event handlers with contextlib.closing(EventWatcher()) as watcher:
for event, listener in listeners.items(): # register event handlers
connection.on(event, listener) for event, listener in listeners.items():
watcher.on(connection, event, listener)
# security level already reached # security level already reached
if self.reached_security_level(connection, level): if self.reached_security_level(connection, level):
return WaitSecurityResponse(success=empty_pb2.Empty()) return WaitSecurityResponse(success=empty_pb2.Empty())
self.log.debug('Wait for security...') self.log.debug('Wait for security...')
kwargs = {} kwargs = {}
kwargs[await wait_for_security] = empty_pb2.Empty() kwargs[await wait_for_security] = empty_pb2.Empty()
# remove event handlers
for event, listener in listeners.items():
connection.remove_listener(event, listener) # type: ignore
# wait for `authenticate` to finish if any # wait for `authenticate` to finish if any
if authenticate_task is not None: if authenticate_task is not None: