Mercurial > prosody-modules
diff mod_compat_vcard/mod_compat_vcard.lua @ 753:9d5731af2c27
Merge with Oliver Gerlich
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 27 Jul 2012 14:29:59 +0100 |
parents | 1a7cdc874b8c |
children | 3df303543765 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_compat_vcard/mod_compat_vcard.lua Fri Jul 27 14:29:59 2012 +0100 @@ -0,0 +1,19 @@ +-- Compatibility with clients and servers (i.e. ejabberd) that send vcard +-- requests to the full JID +-- +-- https://support.process-one.net/browse/EJAB-1045 + +local jid_bare = require "util.jid".bare; +local st = require "util.stanza"; +local core_process_stanza = prosody.core_process_stanza; + +module:hook("iq/full", function(event) + local stanza = event.stanza; + local payload = stanza.tags[1]; + if payload.name == "vCard" and stanza.attr.type == "get" and payload.attr.xmlns == "vcard-temp" then + local fixed_stanza = st.clone(event.stanza); + fixed_stanza.attr.to = jid_bare(stanza.attr.to); + core_process_stanza(event.origin, fixed_stanza); + return true; + end +end, 1);