mod_xhtmlim/mod_xhtmlim.lua
author Kim Alvefur <zash@zash.se>
Sat, 17 Jun 2023 16:26:33 +0200
changeset 5555 8bfcedd93a72
parent 3703 1f68287138e3
permissions -rw-r--r--
mod_rest: List all error conditions in OpenAPI spec These are not handled by datamanager but by util.stanza and util.error, so they are not represented in the JSON schema file.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2869
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
-- XEP-0071: XHTML-IM sanitizing
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
local assert = assert;
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
local st = require "util.stanza";
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     6
local url = require "socket.url";
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
3703
1f68287138e3 mod_xhtmlim: Default to stripping @style attribute by default
Kim Alvefur <zash@zash.se>
parents: 3408
diff changeset
     8
local no_styles = module:get_option_boolean("strip_xhtml_style", true);
2869
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
-- Tables from XEP-0071
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
local xeptables = [[
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
<body/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
<head/>	profile
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
<html/>	version
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
<title/>
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    16
<abbr/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    17
<acronym/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    18
<address/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    19
<blockquote/>	class, id, title; style; cite
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    20
<br/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    21
<cite/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    22
<code/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    23
<dfn/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    24
<div/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    25
<em/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    26
<h1/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    27
<h2/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    28
<h3/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    29
<h4/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    30
<h5/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    31
<h6/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    32
<kbd/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    33
<p/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    34
<pre/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    35
<q/>	class, id, title; style; cite
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    36
<samp/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    37
<span/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    38
<strong/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    39
<var/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    40
<a/>	class, id, title; style; accesskey, charset, href, hreflang, rel, rev, tabindex, type
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    41
<dl/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    42
<dt/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    43
<dd/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    44
<ol/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    45
<ul/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    46
<li/>	class, id, title; style
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    47
<img/>	class, id, title; style; alt, height, longdesc, src, width
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    48
]];
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    49
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    50
-- map of whitelisted tag names to set of allowed attributes
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    51
local tags = {}; -- { string : { string : boolean } }
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    52
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    53
for tag, attrs in xeptables:gmatch("<(%w+)/>([^\n]*)") do
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    54
	tags[tag] = { xmlns = true, ["xml:lang"] = true };
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    55
	for attr in attrs:gmatch("%w+") do
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    56
		tags[tag][attr] = true;
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    57
	end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    58
	if no_styles then
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    59
		tags[tag]["style"] = nil;
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    60
	end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    61
end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    62
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    63
-- module:log("debug", "tags = %s;", require "util.serialization".serialize(tags));
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    64
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    65
-- TODO Decide if disallowed tags should be bounced or silently discarded.
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    66
-- XEP says "ignore" and replace tag with text content, but that would
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    67
-- need a different transform which can't use `maptags`.
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    68
if not module:get_option_boolean("bounce_invalid_xhtml", false) then
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    69
	assert = function (x) return x end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    70
end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    71
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    72
local function sanitize_xhtml(tag)
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    73
	-- module:log("debug", "sanitize_xhtml(<{%s}%s>)", tag.attr.xmlns, tag.name);
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    74
	if tag.attr.xmlns == "http://www.w3.org/1999/xhtml" then
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    75
		local allowed = assert(tags[tag.name], tag.name);
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    76
		if allowed then
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    77
			for attr, value in pairs(tag.attr) do
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    78
				if not allowed[attr] then
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    79
					-- module:log("debug", "Removing disallowed attribute %q from <%s>", attr, tag.name);
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    80
					tag.attr[attr] = nil;
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    81
				elseif attr == "src" or attr == "href" then
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    82
					local urlattr = url.parse(value);
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    83
					local scheme = urlattr and urlattr.scheme;
2870
276f7af8afd1 mod_xhtmlim: Fix scheme check (thanks wiktor)
Kim Alvefur <zash@zash.se>
parents: 2869
diff changeset
    84
					if scheme ~= "http" and scheme ~= "https" and scheme ~= "mailto" and scheme ~= "xmpp" and scheme ~= "cid" then
2869
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    85
						tag.attr[attr] = "https://url.was.invalid/";
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    86
					end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    87
				end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    88
			end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    89
		else
3408
6444fb5dbb51 mod_xhtmlim: Turn unknown elements into <span>
Kim Alvefur <zash@zash.se>
parents: 2870
diff changeset
    90
			tag.name = "span"
6444fb5dbb51 mod_xhtmlim: Turn unknown elements into <span>
Kim Alvefur <zash@zash.se>
parents: 2870
diff changeset
    91
			tag.attr = { xmlns = "http://www.w3.org/1999/xhtml" }
2869
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    92
		end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    93
		-- Check child tags
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    94
		tag:maptags(sanitize_xhtml);
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    95
		-- This tag is clean!
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    96
		return tag;
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    97
	end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    98
	-- Not xhtml, probably best to discard it
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    99
	return nil;
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   100
end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   101
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   102
-- Check for xhtml-im, sanitize if exists
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   103
local function message_handler(event)
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   104
	local stanza = event.stanza;
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   105
	if stanza:get_child("html", "http://jabber.org/protocol/xhtml-im") then
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   106
		stanza = st.clone(stanza);
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   107
		if pcall(function() -- try
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   108
			stanza:get_child("html", "http://jabber.org/protocol/xhtml-im"):maptags(sanitize_xhtml);
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   109
		end) then
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   110
			event.stanza = stanza;
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   111
		else -- catch
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   112
			if stanza.attr.type ~= "error" then
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   113
				event.origin.send(st.error_reply(stanza, "modify", "not-acceptable", "Stanza contained illegal XHTML-IM tag"));
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   114
			end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   115
			return true;
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   116
		end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   117
	end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   118
end
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   119
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   120
-- Stanzas received from clients
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   121
module:hook("pre-message/bare", message_handler, 71);
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   122
module:hook("pre-message/full", message_handler, 71);
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   123
module:hook("pre-message/host", message_handler, 71);
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   124
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   125
-- Stanzas about to be delivered to clients
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   126
module:hook("message/bare", message_handler, 71);
f6ed4421167d mod_xhtmlim: Attempts to sanitize XMTML-IM messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   127
module:hook("message/full", message_handler, 71);