Annotate

mod_xhtmlim/mod_xhtmlim.lua @ 5551:8bfcedd93a72

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.
author Kim Alvefur <zash@zash.se>
date Sat, 17 Jun 2023 16:26:33 +0200
parent 3699:1f68287138e3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2865
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
3699
1f68287138e3 mod_xhtmlim: Default to stripping @style attribute by default
Kim Alvefur <zash@zash.se>
parents: 3404
diff changeset
8 local no_styles = module:get_option_boolean("strip_xhtml_style", true);
2865
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;
2866
276f7af8afd1 mod_xhtmlim: Fix scheme check (thanks wiktor)
Kim Alvefur <zash@zash.se>
parents: 2865
diff changeset
84 if scheme ~= "http" and scheme ~= "https" and scheme ~= "mailto" and scheme ~= "xmpp" and scheme ~= "cid" then
2865
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
3404
6444fb5dbb51 mod_xhtmlim: Turn unknown elements into <span>
Kim Alvefur <zash@zash.se>
parents: 2866
diff changeset
90 tag.name = "span"
6444fb5dbb51 mod_xhtmlim: Turn unknown elements into <span>
Kim Alvefur <zash@zash.se>
parents: 2866
diff changeset
91 tag.attr = { xmlns = "http://www.w3.org/1999/xhtml" }
2865
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);