diff sat/plugins/plugin_xep_0353.py @ 3661:cbb988a6f507

merge bookmark `@`
author Goffi <goffi@goffi.org>
date Wed, 08 Sep 2021 11:20:37 +0200
parents 6e34307319c0
children 524856bd7b19
line wrap: on
line diff
--- a/sat/plugins/plugin_xep_0353.py	Wed Sep 01 15:25:02 2021 +0200
+++ b/sat/plugins/plugin_xep_0353.py	Wed Sep 08 11:20:37 2021 +0200
@@ -19,7 +19,7 @@
 from zope.interface import implementer
 from twisted.internet import defer
 from twisted.internet import reactor
-from twisted.words.protocols.jabber import xmlstream, jid
+from twisted.words.protocols.jabber import xmlstream, jid, error
 from twisted.words.xish import domish
 from wokkel import disco, iwokkel
 from sat.core.i18n import _, D_
@@ -38,7 +38,7 @@
     C.PI_NAME: "Jingle Message Initiation",
     C.PI_IMPORT_NAME: "XEP-0353",
     C.PI_TYPE: "XEP",
-    C.PI_MODES: C.PLUG_MODE_CLIENT,
+    C.PI_MODES: [C.PLUG_MODE_CLIENT],
     C.PI_PROTOCOLS: ["XEP-0353"],
     C.PI_DEPENDENCIES: ["XEP-0166"],
     C.PI_MAIN: "XEP_0353",
@@ -85,8 +85,15 @@
         if peer_jid.resource:
             return True
 
-        infos = await self.host.memory.disco.getInfos(client, peer_jid)
-        categories = {c for c, __ in infos.identities}
+        try:
+            infos = await self.host.memory.disco.getInfos(client, peer_jid)
+        except error.StanzaError as e:
+            if e.condition == "service-unavailable":
+                categories = {}
+            else:
+                raise e
+        else:
+            categories = {c for c, __ in infos.identities}
         if "component" in categories:
             # we don't use message initiation with components
             return True