answer correctly to disco#info when it contains node. We are now complient with XEP115. fixes #2713

This commit is contained in:
Yann Leboulanger 2006-12-02 17:02:53 +00:00
parent d21b11aa72
commit 658629dbcc

View file

@ -727,19 +727,27 @@ class ConnectionDisco:
if self.commandQuery(con, iq_obj): if self.commandQuery(con, iq_obj):
raise common.xmpp.NodeProcessed raise common.xmpp.NodeProcessed
elif node is None: else:
iq = iq_obj.buildReply('result') iq = iq_obj.buildReply('result')
q = iq.getTag('query') q = iq.getTag('query')
q.addChild('identity', attrs = {'type': 'pc', q.addChild('identity', attrs = {'type': 'pc', 'category': 'client',
'category': 'client', 'name': 'Gajim'})
'name': 'Gajim'}) extension = None
q.addChild('feature', attrs = {'var': common.xmpp.NS_BYTESTREAM}) if node and node.find('#') != -1:
q.addChild('feature', attrs = {'var': common.xmpp.NS_SI}) extension = node[node.index('#') + 1:]
q.addChild('feature', attrs = {'var': common.xmpp.NS_FILE}) client_version = 'http://gajim.org/caps#' + gajim.version
q.addChild('feature', attrs = {'var': common.xmpp.NS_MUC})
q.addChild('feature', attrs = {'var': common.xmpp.NS_XHTML_IM}) if node in (None, client_version) or extension == 'ftrans':
self.connection.send(iq) q.addChild('feature', attrs = {'var': common.xmpp.NS_BYTESTREAM})
raise common.xmpp.NodeProcessed q.addChild('feature', attrs = {'var': common.xmpp.NS_SI})
q.addChild('feature', attrs = {'var': common.xmpp.NS_FILE})
if node in (None, client_version) or extension == 'xhtml':
q.addChild('feature', attrs = {'var': common.xmpp.NS_XHTML_IM})
if node in (None, client_version):
q.addChild('feature', attrs = {'var': common.xmpp.NS_MUC})
if q.getChildren():
self.connection.send(iq)
raise common.xmpp.NodeProcessed
def _DiscoverInfoErrorCB(self, con, iq_obj): def _DiscoverInfoErrorCB(self, con, iq_obj):
gajim.log.debug('DiscoverInfoErrorCB') gajim.log.debug('DiscoverInfoErrorCB')