From c3047df95ac25968d24e9bb4650c8ebac982bb22 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Tue, 10 Aug 2021 20:51:31 +0200 Subject: mod_s2s: Factor out procedure for newly encrypted sessions Goal is to call this if the connection is using Direct TLS, either via multiplexing or a future Direct TLS S2S port. --- plugins/mod_s2s.lua | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'plugins/mod_s2s.lua') diff --git a/plugins/mod_s2s.lua b/plugins/mod_s2s.lua index cc935d21..df9e4dd9 100644 --- a/plugins/mod_s2s.lua +++ b/plugins/mod_s2s.lua @@ -379,6 +379,21 @@ end --- XMPP stream event handlers +local function session_secure(session) + session.secure = true; + session.encrypted = true; + + local sock = session.conn:socket(); + local info = sock.info and sock:info(); + if type(info) == "table" then + (session.log or log)("info", "Stream encrypted (%s with %s)", info.protocol, info.cipher); + session.compressed = info.compression; + m_tls_params:with_labels(info.protocol, info.cipher):add(1) + else + (session.log or log)("info", "Stream encrypted"); + end +end + local stream_callbacks = { default_ns = "jabber:server" }; function stream_callbacks.handlestanza(session, stanza) @@ -399,18 +414,7 @@ function stream_callbacks._streamopened(session, attr) -- TODO: Rename session.secure to session.encrypted if session.secure == false then - session.secure = true; - session.encrypted = true; - - local sock = session.conn:socket(); - local info = sock.info and sock:info(); - if type(info) == "table" then - (session.log or log)("info", "Stream encrypted (%s with %s)", info.protocol, info.cipher); - session.compressed = info.compression; - m_tls_params:with_labels(info.protocol, info.cipher):add(1) - else - (session.log or log)("info", "Stream encrypted"); - end + session_secure(session); end if session.direction == "incoming" then -- cgit v1.2.3