Software /
code /
prosody-modules
Changeset
1003:767999c39f0a
mod_jid_prep: Implement the JID prep protocol in the XEP submitted 5 minutes ago...
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Wed, 08 May 2013 23:30:50 +0100 |
parents | 1002:225d3ba1eb7b |
children | 1004:290c21a5e0ee |
files | mod_jid_prep/mod_jid_prep.lua |
diffstat | 1 files changed, 28 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_jid_prep/mod_jid_prep.lua Wed May 08 23:30:50 2013 +0100 @@ -0,0 +1,28 @@ +-- 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:tmp"; + +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; + } +});