Allow disco info/items handlers to return full Iq stanzas.
Only allowing handlers to return a DiscoInfo/DiscoItem stanza works for the majority of cases, but does not allow for the addition of an RSM stanza, or other extensions. An Iq stanza returned by a handler must already be configured as a reply.
This commit is contained in:
parent
85e9042db6
commit
fc8a13df5a
1 changed files with 15 additions and 9 deletions
|
@ -551,11 +551,14 @@ class xep_0030(base_plugin):
|
|||
jid,
|
||||
iq['disco_info']['node'],
|
||||
iq)
|
||||
iq.reply()
|
||||
if info:
|
||||
info = self._fix_default_info(info)
|
||||
iq.set_payload(info.xml)
|
||||
iq.send()
|
||||
if isinstance(info, Iq):
|
||||
info.send()
|
||||
else:
|
||||
iq.reply()
|
||||
if info:
|
||||
info = self._fix_default_info(info)
|
||||
iq.set_payload(info.xml)
|
||||
iq.send()
|
||||
elif iq['type'] == 'result':
|
||||
log.debug("Received disco info result from" + \
|
||||
"%s to %s.", iq['from'], iq['to'])
|
||||
|
@ -581,10 +584,13 @@ class xep_0030(base_plugin):
|
|||
jid,
|
||||
iq['disco_items']['node'],
|
||||
iq)
|
||||
iq.reply()
|
||||
if items:
|
||||
iq.set_payload(items.xml)
|
||||
iq.send()
|
||||
if isinstance(items, Iq):
|
||||
items.send()
|
||||
else:
|
||||
iq.reply()
|
||||
if items:
|
||||
iq.set_payload(items.xml)
|
||||
iq.send()
|
||||
elif iq['type'] == 'result':
|
||||
log.debug("Received disco items result from" + \
|
||||
"%s to %s.", iq['from'], iq['to'])
|
||||
|
|
Loading…
Reference in a new issue