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);