core (disco): fixed disco capabilities (empty disco was used)
This commit is contained in:
parent
a6956d424a
commit
c0e2a4f84b
2 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):
|
||||
|
|
|
|||
|
|
@ -79,11 +79,10 @@ class XEP_0115(object):
|
|||
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
|
||||
|
|
|
|||
Loading…
Reference in a new issue