Mercurial > libervia-backend
diff sat/plugins/plugin_xep_0384.py @ 2925:03a09e16bf28
plugin XEP-0384: wait for client to be ready if session is missing when onNewDevices is called
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 28 Apr 2019 08:55:07 +0200 |
parents | 851c47cc4ae7 |
children | ab2696e34d29 |
line wrap: on
line diff
--- a/sat/plugins/plugin_xep_0384.py Fri Apr 26 11:57:26 2019 +0200 +++ b/sat/plugins/plugin_xep_0384.py Sun Apr 28 08:55:07 2019 +0200 @@ -539,6 +539,8 @@ @defer.inlineCallbacks def profileConnected(self, client): + # FIXME: is _xep_0384_ready needed? can we use profileConnecting? + # Workflow should be checked client._xep_0384_ready = defer.Deferred() # we first need to get devices ids (including our own) persistent_dict = persistent.LazyPersistentBinaryDict("XEP-0384", client.profile) @@ -767,7 +769,11 @@ @defer.inlineCallbacks def onNewDevices(self, itemsEvent, profile): client = self.host.getClient(profile) - omemo_session = client._xep_0384_session + try: + omemo_session = client._xep_0384_session + except AttributeError: + yield client._xep_0384_ready + omemo_session = client._xep_0384_session entity = itemsEvent.sender devices = self.parseDevices(itemsEvent.items)