Mercurial > prosody-hg
comparison net/server_select.lua @ 12481:2ee27587fec7
net: refactor sslconfig to not depend on LuaSec
This now requires that the network backend exposes a tls_builder
function, which essentially wraps the former util.sslconfig.new()
function, passing a factory to create the eventual SSL context.
That allows a net.server backend to pick whatever it likes as SSL
context factory, as long as it understands the config table passed by
the SSL config builder. Heck, a backend could even mock and replace the
entire SSL config builder API.
| author | Jonas Schäfer <jonas@wielicki.name> |
|---|---|
| date | Sat, 02 Apr 2022 11:15:33 +0200 |
| parents | 7e9ebdc75ce4 |
| children | db634db8e069 |
comparison
equal
deleted
inserted
replaced
| 12480:7e9ebdc75ce4 | 12481:2ee27587fec7 |
|---|---|
| 50 local has_luasec, luasec = pcall ( require , "ssl" ) | 50 local has_luasec, luasec = pcall ( require , "ssl" ) |
| 51 local luasocket = use "socket" or require "socket" | 51 local luasocket = use "socket" or require "socket" |
| 52 local luasocket_gettime = luasocket.gettime | 52 local luasocket_gettime = luasocket.gettime |
| 53 local inet = require "util.net"; | 53 local inet = require "util.net"; |
| 54 local inet_pton = inet.pton; | 54 local inet_pton = inet.pton; |
| 55 local sslconfig = require "util.sslconfig"; | |
| 56 local tls_impl = require "net.tls_luasec"; | |
| 55 | 57 |
| 56 --// extern lib methods //-- | 58 --// extern lib methods //-- |
| 57 | 59 |
| 58 local ssl_wrap = ( has_luasec and luasec.wrap ) | 60 local ssl_wrap = ( has_luasec and luasec.wrap ) |
| 59 local socket_bind = luasocket.bind | 61 local socket_bind = luasocket.bind |
| 1179 getsettings = getsettings, | 1181 getsettings = getsettings, |
| 1180 setquitting = setquitting, | 1182 setquitting = setquitting, |
| 1181 removeserver = removeserver, | 1183 removeserver = removeserver, |
| 1182 get_backend = get_backend, | 1184 get_backend = get_backend, |
| 1183 changesettings = changesettings, | 1185 changesettings = changesettings, |
| 1186 | |
| 1187 tls_builder = function(basedir) | |
| 1188 return sslconfig._new(tls_impl.new_context, basedir) | |
| 1189 end, | |
| 1184 } | 1190 } |
