Annotate

util/envload.lua @ 13792:4ea7bd7325be 13.0

core.portmanager: Restore use of per-host 'ssl' for SNI hosts. Fixes #1915. This was an unintentional regression, as per-host 'ssl' options became valid in 0.12 when SNI support was added for direct TLS ports. While we encourage most people to use the simpler automatic certificate selection (and it seems most do, given the overlooking of this bug), there are likely always going to be use cases for manually-configured certificates. The issue was introduced in commit 7e9ebdc75ce4 which inadvertently removed the per-host option checking for SNI.
author Kim Alvefur <zash@zash.se>
date Sat, 29 Mar 2025 22:25:19 +0100
parent 12576:d1aacc6a81ac
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5020
ef1eb65acbba util.envload: New module to abstract Lua 5.1's setfenv and Lua 5.2's load
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff changeset
1 -- Prosody IM
ef1eb65acbba util.envload: New module to abstract Lua 5.1's setfenv and Lua 5.2's load
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff changeset
2 -- Copyright (C) 2008-2011 Florian Zeitz
ef1eb65acbba util.envload: New module to abstract Lua 5.1's setfenv and Lua 5.2's load
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff changeset
3 --
ef1eb65acbba util.envload: New module to abstract Lua 5.1's setfenv and Lua 5.2's load
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff changeset
4 -- This project is MIT/X11 licensed. Please see the
ef1eb65acbba util.envload: New module to abstract Lua 5.1's setfenv and Lua 5.2's load
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff changeset
5 -- COPYING file in the source package for more information.
ef1eb65acbba util.envload: New module to abstract Lua 5.1's setfenv and Lua 5.2's load
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff changeset
6 --
8416
bc9cb23b604a util.envload: Ignore "undefined variable" warning for loadstring [luacheck with strict 5.2 or 5.3 checks]
Kim Alvefur <zash@zash.se>
parents: 7930
diff changeset
7 -- luacheck: ignore 113/setfenv 113/loadstring
5020
ef1eb65acbba util.envload: New module to abstract Lua 5.1's setfenv and Lua 5.2's load
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff changeset
8
12576
d1aacc6a81ac util.envload: Remove Lua 5.1 method
Kim Alvefur <zash@zash.se>
parents: 8416
diff changeset
9 local load = load;
7924
8487fe9fc335 util.envload: Open file here instead of letting loadfile do it so that all return values from io.open can be collected
Kim Alvefur <zash@zash.se>
parents: 7728
diff changeset
10 local io_open = io.open;
5020
ef1eb65acbba util.envload: New module to abstract Lua 5.1's setfenv and Lua 5.2's load
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff changeset
11
12576
d1aacc6a81ac util.envload: Remove Lua 5.1 method
Kim Alvefur <zash@zash.se>
parents: 8416
diff changeset
12 local function envload(code, source, env)
d1aacc6a81ac util.envload: Remove Lua 5.1 method
Kim Alvefur <zash@zash.se>
parents: 8416
diff changeset
13 return load(code, source, nil, env);
d1aacc6a81ac util.envload: Remove Lua 5.1 method
Kim Alvefur <zash@zash.se>
parents: 8416
diff changeset
14 end
5020
ef1eb65acbba util.envload: New module to abstract Lua 5.1's setfenv and Lua 5.2's load
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff changeset
15
12576
d1aacc6a81ac util.envload: Remove Lua 5.1 method
Kim Alvefur <zash@zash.se>
parents: 8416
diff changeset
16 local function envloadfile(file, env)
d1aacc6a81ac util.envload: Remove Lua 5.1 method
Kim Alvefur <zash@zash.se>
parents: 8416
diff changeset
17 local fh, err, errno = io_open(file);
d1aacc6a81ac util.envload: Remove Lua 5.1 method
Kim Alvefur <zash@zash.se>
parents: 8416
diff changeset
18 if not fh then return fh, err, errno; end
d1aacc6a81ac util.envload: Remove Lua 5.1 method
Kim Alvefur <zash@zash.se>
parents: 8416
diff changeset
19 local f, err = load(fh:lines(2048), "@" .. file, nil, env);
d1aacc6a81ac util.envload: Remove Lua 5.1 method
Kim Alvefur <zash@zash.se>
parents: 8416
diff changeset
20 fh:close();
d1aacc6a81ac util.envload: Remove Lua 5.1 method
Kim Alvefur <zash@zash.se>
parents: 8416
diff changeset
21 return f, err;
5020
ef1eb65acbba util.envload: New module to abstract Lua 5.1's setfenv and Lua 5.2's load
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff changeset
22 end
ef1eb65acbba util.envload: New module to abstract Lua 5.1's setfenv and Lua 5.2's load
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff changeset
23
ef1eb65acbba util.envload: New module to abstract Lua 5.1's setfenv and Lua 5.2's load
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff changeset
24 return { envload = envload, envloadfile = envloadfile };