memory (disco): fix return value for disco_infos bridge method:

empty `language` (`None`) was not converted to empty string, resulting in bridge error.
This commit is contained in:
Goffi 2026-04-29 11:59:29 +02:00
commit 1782fc69d1

View file

@ -443,8 +443,8 @@ class Discovery:
await defer.DeferredList(defer_list)
return found_entities
@defer.inlineCallbacks
def _disco_infos(
@ensure_deferred
async def _disco_infos(
self, entity_jid_s, node="", use_cache=True, profile_key=C.PROF_KEY_NONE
):
"""Discovery method for the bridge
@ -456,7 +456,7 @@ class Discovery:
"""
client = self.host.get_client(profile_key)
entity = jid.JID(entity_jid_s)
disco_infos = yield self.get_infos(client, entity, node, use_cache)
disco_infos = await self.get_infos(client, entity, node, use_cache)
extensions = {}
# FIXME: should extensions be serialised using tools.common.data_format?
for form_type, form in list(disco_infos.extensions.items()):
@ -478,7 +478,7 @@ class Discovery:
return (
[str(f) for f in disco_infos.features],
[
(cat, type_, lang, identity.name or "")
(cat, type_, lang or "", identity.name or "")
for (cat, type_), lang_identities in list(disco_infos.identities.items())
for lang, identity in lang_identities.items()
],