clix.mirror: Mirror stanzas by switching to/from

Thu, 07 Jan 2010 22:05:57 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Thu, 07 Jan 2010 22:05:57 +0000
changeset 24
8e157125957d
parent 23
c5f04bdc7c64
child 25
db6e92989c41

clix.mirror: Mirror stanzas by switching to/from

clix/mirror.lua file | annotate | diff | comparison | revisions
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/clix/mirror.lua	Thu Jan 07 22:05:57 2010 +0000
@@ -0,0 +1,15 @@
+return function (opts, arg)
+	local function on_connect(conn)
+		local function on_stanza(stanza)
+			if stanza.name == "presence" and opts.presence
+				and not opts.mirror_presence then
+				return;
+			end
+			stanza.attr.to, stanza.attr.from = stanza.attr.from, stanza.attr.to;
+			conn:send(stanza);
+			stanza.attr.to, stanza.attr.from = stanza.attr.from, stanza.attr.to;
+		end
+		conn:hook("stanza", on_stanza);
+	end
+	return clix_connect(opts, on_connect);
+end

mercurial