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
parent 12480:7e9ebdc75ce4
child 12487: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 }