core (disco): fixed disco capabilities (empty disco was used)
This commit is contained in:
parent
a6956d424a
commit
c0e2a4f84b
1 changed files with 10 additions and 5 deletions
|
|
@ -84,7 +84,13 @@ class HashManager(object):
|
|||
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 @@ class Discovery(object):
|
|||
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):
|
||||
|
|
|
|||
Loading…
Reference in a new issue