plugin XEP-0384: proper handling of exceptions in prepare_for_profile

This commit is contained in:
Syndace 2022-10-06 17:25:37 +02:00
commit 8daec13fbb

View file

@ -1468,11 +1468,22 @@ class OMEMO:
self.__session_manager_waiters[profile] = []
# Build and store the session manager
session_manager = await prepare_for_profile(
self.__sat,
profile,
initial_own_label="Libervia"
)
try:
session_manager = await prepare_for_profile(
self.__sat,
profile,
initial_own_label="Libervia"
)
except Exception as e:
# In case of an error during initalization, notify the waiters accordingly
# and delete them
for waiter in self.__session_manager_waiters[profile]:
waiter.errback(e)
del self.__session_manager_waiters[profile]
# Re-raise the exception
raise
self.__session_managers[profile] = session_manager
# Notify the waiters and delete them