mod_restrict_xmpp: Treat archive query as a read despite using iq-set
XEP-0313 uses iq-set to initiate a query, but unlike many other uses of
iq-set, this does not mutate anything on the server, so it should not be
treated as a write request.
-- Run JIDs through stringprep processing on behalf of clients
-- http://xmpp.org/extensions/inbox/jidprep.html
local jid_prep = require "util.jid".prep;
local st = require "util.stanza";
local xmlns_prep = "urn:xmpp:jidprep:0";
module:add_feature(xmlns_prep);
function prep_jid(event)
local stanza = event.stanza;
local jid = jid_prep(stanza:get_child_text("jid", xmlns_prep));
if not jid then
return event.origin.send(st.error_reply(stanza, "modify", "jid-malformed"));
end
return event.origin.send(st.reply(stanza):tag("jid", { xmlns = xmlns_prep }):text(jid));
end
module:hook("iq/host/"..xmlns_prep..":jid", prep_jid);
module:depends("http");
module:provides("http", {
route = {
["GET /*"] = function (event, jid)
return jid_prep(jid) or 400;
end;
}
});