Software /
code /
prosody-modules
Diff
mod_conformance_restricted/mod_conformance_restricted.lua @ 602:072b05999b4b
mod_conformance_restricted: Module to send XML restricted by RFC 6120 (for conformance testing)
author | Florian Zeitz <florob@babelmonkeys.de> |
---|---|
date | Tue, 07 Feb 2012 20:01:57 +0100 |
child | 699:7c88e09a07e7 |
line wrap: on
line diff
--- /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);