mod_conformance_restricted: Module to send XML restricted by RFC 6120 (for conformance testing)

Tue, 07 Feb 2012 20:01:57 +0100

author
Florian Zeitz <florob@babelmonkeys.de>
date
Tue, 07 Feb 2012 20:01:57 +0100
changeset 602
072b05999b4b
parent 595
7693724881b3
child 603
efc9d88b70ab

mod_conformance_restricted: Module to send XML restricted by RFC 6120 (for conformance testing)

mod_conformance_restricted/mod_conformance_restricted.lua file | annotate | diff | comparison | revisions
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_conformance_restricted/mod_conformance_restricted.lua	Tue Feb 07 20:01:57 2012 +0100
@@ -0,0 +1,34 @@
+-- Prosody IM
+-- Copyright (C) 2012 Florian Zeitz
+-- 
+-- This project is MIT/X11 licensed. Please see the
+-- COPYING file in the source package for more information.
+--
+
+local st = require "util.stanza";
+
+module:hook("message/host", function (event)
+	local origin, stanza = event.origin, event.stanza;
+	local node, host, resource = jid.split(stanza.attr.to);
+	local body = stanza:get_child_text("body");
+	
+	if resource ~= "conformance" then
+		return; -- Not interop testing
+	end
+
+	if body == "PI" then
+		origin.send("<?testing this='out'?>");
+	elseif body == "comment" then
+		origin.send("<!-- no comment -->");
+	elseif body == "DTD" then
+		origin.send("<!DOCTYPE greeting [\n<!ENTITY test 'You should not see this'>\n]>");
+	elseif body == "entity" then
+		origin.send("<message type='chat' to='"..stanza.attr.from.."'><body>&test;</body></message>");
+	else
+		local reply = st.reply(stanza);
+		reply:body("Send me one of: PI, comment, DTD, or entity");
+		origin.send(reply);
+	end
+	
+	return true;
+end);

mercurial