Mercurial > prosody-modules
diff mod_delegation/mod_delegation.lua @ 3317:36a9170352b5
mod_delegation: Update to generate own iq ids
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 13 Sep 2018 16:28:10 +0100 |
parents | 7504f765e767 |
children | c5e8042b174c |
line wrap: on
line diff
--- a/mod_delegation/mod_delegation.lua Thu Sep 13 16:14:41 2018 +0100 +++ b/mod_delegation/mod_delegation.lua Thu Sep 13 16:28:10 2018 +0100 @@ -13,6 +13,8 @@ local st = require("util.stanza") local set = require("util.set") +local new_id = require("util.id").short; + local delegation_session = module:shared("/*/delegation/session") -- FIXME: temporarily needed for disco_items_hook, to be removed when clean implementation is done @@ -252,11 +254,11 @@ local function forward_iq(stanza, ns_data) local to_jid = ns_data.connected stanza.attr.xmlns = 'jabber:client' - local iq_stanza = st.iq({ from=module.host, to=to_jid, type="set" }) + local iq_id = new_id(); + local iq_stanza = st.iq({ from=module.host, to=to_jid, type="set", id = iq_id }) :tag("delegation", { xmlns=_DELEGATION_NS }) :tag("forwarded", { xmlns=_FORWARDED_NS }) :add_child(stanza) - local iq_id = iq_stanza.attr.id -- we save the original stanza to check the managing entity result if not stanza_cache[to_jid] then stanza_cache[to_jid] = {} end stanza_cache[to_jid][iq_id] = stanza @@ -475,11 +477,10 @@ for _, prefix in ipairs(_PREFIXES) do local node = prefix..namespace - local iq = st.iq({from=module.host, to=entity_jid, type='get'}) + local iq_id = new_id(); + local iq = st.iq({from=module.host, to=entity_jid, type='get', id = iq_id }) :tag('query', {xmlns=_DISCO_INFO_NS, node=node}) - local iq_id = iq.attr.id - module:hook("iq-result/host/"..iq_id, disco_result) module:hook("iq-error/host/"..iq_id, disco_error) module:send(iq)