Mercurial > prosody-modules
annotate mod_latex/mod_latex.lua @ 6319:04c3273cb81f
mod_auth_cyrus: Add empty 'profile' table to SASL handler objects
This is for compatibility with Prosody's built-in util.sasl objects.
A SASL profile table usually includes methods supported by the backend, which
can be used by SASL mechanism handlers to perform operations (such as testing
the password). It also optionally contains a 'cb' field with channel binding
method handlers.
The Cyrus backend doesn't support channel binding, and doesn't have the same
concept of auth backend methods (it handles all that internally, and Prosody
has no insight or control over it).
Thus, we create an empty profile which informs Prosody that the SASL handler
does not support any of the auth or channel binding methods. Some features
will not work, but they didn't work anyway. This just makes it explicit.
This fixes a traceback in mod_sasl2_fast, which expected SASL handlers to
always contain a 'profile' field.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 04 Sep 2025 10:14:46 +0100 |
| parents | df8da7e4c2bf |
| children |
| rev | line source |
|---|---|
|
126
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 local st = require "stanza"; |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
2 local urlencode = require "net.http".urlencode; |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 local xmlns_xhtmlim = "http://jabber.org/protocol/xhtml-im"; |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 local xmlns_xhtml = "http://www.w3.org/1999/xhtml"; |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
7 local function replace_latex(data) |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
8 local origin, stanza = data.origin, data.stanza; |
| 1432 | 9 local body = stanza:get_child_text("body"); |
| 10 if not body or not body:match("%$%$") then | |
|
126
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 return; |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
12 end |
|
1433
df8da7e4c2bf
mod_latex: Log debug message when actually deciding to do LaTeX replacing
Kim Alvefur <zash@zash.se>
parents:
1432
diff
changeset
|
13 module:log("debug", "Replacing latex..."); |
|
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
126
diff
changeset
|
14 |
|
126
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
15 local html = st.stanza("html", { xmlns = xmlns_xhtmlim }) |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
16 :tag("body", { xmlns = xmlns_xhtml }); |
|
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
126
diff
changeset
|
17 |
|
126
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
18 local in_latex, last_char; |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
19 for snippet, up_to in body:gmatch("(.-)%$%$()") do |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
20 last_char = up_to; |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
21 if in_latex then |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
22 -- Render latex and add image, next snippet is text |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
23 in_latex = nil; |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
24 html:tag("img", { src = "http://www.mathtran.org/cgi-bin/mathtran?D=2;tex="..urlencode(snippet), alt = snippet }):up(); |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
25 else |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
26 -- Add text to HTML, next snippet is latex |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
27 in_latex = true; |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
28 html:tag("span"):text(snippet):up(); |
|
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
126
diff
changeset
|
29 |
|
126
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
30 end |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
31 end |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
32 if last_char < #body then |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
33 html:tag("span"):text(body:sub(last_char, #body)):up(); |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
34 end |
|
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
126
diff
changeset
|
35 |
|
126
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
36 for n, tag in ipairs(stanza.tags) do |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
37 module:log("debug", "Tag: %s|%s", tag.attr.xmlns or "", tag.name or ""); |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
38 if tag.name == "html" and tag.attr.xmlns == xmlns_xhtmlim then |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
39 stanza.tags[n] = html; |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
40 for n, child in ipairs(stanza) do |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
41 if child == tag then |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
42 stanza[n] = html; |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
43 end |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
44 end |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
45 return; |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
46 end |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
47 end |
|
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
126
diff
changeset
|
48 |
|
126
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
49 stanza[#stanza+1] = html; |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
50 stanza.tags[#stanza.tags+1] = html; |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
51 end |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
52 |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
53 module:hook("message/bare", replace_latex, 30); |
|
e190c1643a8f
mod_latex: New (well, kind of) module for rendering LaTeX in messages and replacing with a rendered embedded image
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
54 module:hook("message/full", replace_latex, 30); |
