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:
Lance Stout 2011-12-12 19:38:32 -08:00
parent 85e9042db6
commit fc8a13df5a

View file

@ -551,6 +551,9 @@ class xep_0030(base_plugin):
jid, jid,
iq['disco_info']['node'], iq['disco_info']['node'],
iq) iq)
if isinstance(info, Iq):
info.send()
else:
iq.reply() iq.reply()
if info: if info:
info = self._fix_default_info(info) info = self._fix_default_info(info)
@ -581,6 +584,9 @@ class xep_0030(base_plugin):
jid, jid,
iq['disco_items']['node'], iq['disco_items']['node'],
iq) iq)
if isinstance(items, Iq):
items.send()
else:
iq.reply() iq.reply()
if items: if items:
iq.set_payload(items.xml) iq.set_payload(items.xml)