Mercurial > libervia-backend
changeset 2587:e70023e84974
core (disco): fixed disco capabilities (empty disco was used)
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 22 May 2018 09:59:58 +0200 |
parents | 57c8c155192f |
children | 4011e4ee3151 |
files | sat/memory/disco.py sat/plugins/plugin_xep_0115.py |
diffstat | 2 files changed, 10 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/sat/memory/disco.py Fri May 11 20:06:06 2018 +0200 +++ b/sat/memory/disco.py Tue May 22 09:59:58 2018 +0200 @@ -84,7 +84,13 @@ def fillHashes(hashes): for hash_, xml in hashes.iteritems(): element = xml_tools.ElementParser()(xml) - self.hashes[hash_] = disco.DiscoInfo.fromElement(element) + disco_info = disco.DiscoInfo.fromElement(element) + if not disco_info.features and not disco_info.identities: + log.warning(_(u"no feature/identity found in disco element (hash: {cap_hash}), ignoring: {xml}").format( + cap_hash=hash_, xml=xml)) + else: + self.hashes[hash_] = disco_info + log.info(u"Disco hashes loaded") d = self.persistent.load() d.addCallback(fillHashes) @@ -158,10 +164,10 @@ if jid_ is None: jid_ = jid.JID(client.jid.host) try: - cap_hash = self.host.memory.getEntityData(jid_, [C.ENTITY_CAP_HASH], client.profile)[C.ENTITY_CAP_HASH] if not use_cache: # we ignore cache, so we pretend we haven't found it raise KeyError + cap_hash = self.host.memory.getEntityData(jid_, [C.ENTITY_CAP_HASH], client.profile)[C.ENTITY_CAP_HASH] except (KeyError, exceptions.UnknownEntityError): # capability hash is not available, we'll compute one def infosCb(disco_infos):
--- a/sat/plugins/plugin_xep_0115.py Fri May 11 20:06:06 2018 +0200 +++ b/sat/plugins/plugin_xep_0115.py Tue May 22 09:59:58 2018 +0200 @@ -79,11 +79,10 @@ disco_infos = disco.DiscoInfo() for item in _infos: disco_infos.append(item) - disco_infos = disco.DiscoInfo() cap_hash = client._caps_hash = self.host.memory.disco.generateHash(disco_infos) - log.info("Our capability hash has been generated: [{cap_hash}]".format( + log.info(u"Our capability hash has been generated: [{cap_hash}]".format( cap_hash = cap_hash)) - log.debug("Generating capability domish.Element") + log.debug(u"Generating capability domish.Element") c_elt = domish.Element((NS_ENTITY_CAPABILITY, 'c')) c_elt['hash'] = 'sha-1' c_elt['node'] = C.APP_URL