Software /
code /
prosody
Changeset
13280:cf8a6710c91c
mod_c2s: Add session.ssl_cfg/ssl_ctx for direct TLS connections
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Wed, 07 Sep 2022 11:29:00 +0100 |
parents | 13279:140f7926946b |
children | 13281:288ddca37639 |
files | plugins/mod_c2s.lua |
diffstat | 1 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/mod_c2s.lua Wed Sep 07 11:26:42 2022 +0100 +++ b/plugins/mod_c2s.lua Wed Sep 07 11:29:00 2022 +0100 @@ -11,9 +11,11 @@ local add_task = require "prosody.util.timer".add_task; local new_xmpp_stream = require "prosody.util.xmppstream".new; local nameprep = require "prosody.util.encodings".stringprep.nameprep; +local certmanager = require "prosody.core.certmanager"; local sessionmanager = require "prosody.core.sessionmanager"; local statsmanager = require "prosody.core.statsmanager"; local st = require "prosody.util.stanza"; +local pm_get_tls_config_at = require "core.portmanager".get_tls_config_at; local sm_new_session, sm_destroy_session = sessionmanager.new_session, sessionmanager.destroy_session; local uuid_generate = require "prosody.util.uuid".generate; local async = require "prosody.util.async"; @@ -308,6 +310,12 @@ session.secure = true; session.encrypted = true; + local server = conn:server(); + local tls_config = pm_get_tls_config_at(server:ip(), server:serverport()); + local autocert = certmanager.find_host_cert(session.conn:socket():getsniname()); + session.ssl_cfg = autocert or tls_config; + session.ssl_ctx = conn:sslctx(); + -- Check if TLS compression is used local info = conn:ssl_info(); if type(info) == "table" then