Mercurial > prosody-modules
comparison mod_jid_prep/mod_jid_prep.lua @ 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 | |
| children | 99cb06b31ae8 |
comparison
equal
deleted
inserted
replaced
| 1002:225d3ba1eb7b | 1003:767999c39f0a |
|---|---|
| 1 -- Run JIDs through stringprep processing on behalf of clients | |
| 2 -- http://xmpp.org/extensions/inbox/jidprep.html | |
| 3 | |
| 4 local jid_prep = require "util.jid".prep; | |
| 5 local st = require "util.stanza"; | |
| 6 | |
| 7 local xmlns_prep = "urn:xmpp:jidprep:tmp"; | |
| 8 | |
| 9 function prep_jid(event) | |
| 10 local stanza = event.stanza; | |
| 11 local jid = jid_prep(stanza:get_child_text("jid", xmlns_prep)); | |
| 12 if not jid then | |
| 13 return event.origin.send(st.error_reply(stanza, "modify", "jid-malformed")); | |
| 14 end | |
| 15 return event.origin.send(st.reply(stanza):tag("jid", { xmlns = xmlns_prep }):text(jid)); | |
| 16 end | |
| 17 | |
| 18 | |
| 19 module:hook("iq/host/"..xmlns_prep..":jid", prep_jid); | |
| 20 | |
| 21 module:depends("http"); | |
| 22 module:provides("http", { | |
| 23 route = { | |
| 24 ["GET /*"] = function (event, jid) | |
| 25 return jid_prep(jid) or 400; | |
| 26 end; | |
| 27 } | |
| 28 }); |
