Changeset

13423:3c219effe707

mod_s2s_auth_certs: Handle potential string error conn:ssl_peerverification() can now return a single error in case the connection has been closed for whatever reason
author Kim Alvefur <zash@zash.se>
date Wed, 21 Feb 2024 21:29:16 +0100
parents 13422:3c80124452ed
children 13424:0efb53a0852e
files plugins/mod_s2s_auth_certs.lua
diffstat 1 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_s2s_auth_certs.lua	Sun Jan 21 22:59:50 2024 +0100
+++ b/plugins/mod_s2s_auth_certs.lua	Wed Feb 21 21:29:16 2024 +0100
@@ -1,7 +1,6 @@
 module:set_global();
 
 local cert_verify_identity = require "prosody.util.x509".verify_identity;
-local NULL = {};
 local log = module._log;
 
 local measure_cert_statuses = module:metric("counter", "checked", "", "Certificate validation results",
@@ -23,8 +22,12 @@
 	-- Is there any interest in printing out all/the number of errors here?
 	if not chain_valid then
 		log("debug", "certificate chain validation result: invalid");
-		for depth, t in pairs(errors or NULL) do
-			log("debug", "certificate error(s) at depth %d: %s", depth-1, table.concat(t, ", "))
+		if type(errors) == "table" then
+			for depth, t in pairs(errors) do
+				log("debug", "certificate error(s) at depth %d: %s", depth-1, table.concat(t, ", "));
+			end
+		else
+			log("debug", "certificate error: %s", errors);
 		end
 		session.cert_chain_status = "invalid";
 		session.cert_chain_errors = errors;