clix/mirror.lua

Sat, 10 Apr 2021 00:21:05 +0200

author
Kim Alvefur <zash@zash.se>
date
Sat, 10 Apr 2021 00:21:05 +0200
changeset 149
014e73c329c5
parent 27
5b58c002d6ad
permissions
-rw-r--r--

clix.raw: Linearise condition

Goal of having the 'send_xml' string always exist in one place, so we
can do things with it regardless of where it came from.

return function (opts, arg)
	if opts.short_help then
		print("Echo received stanzas back to sender");
		return;
	end
	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