Changeset

12476:d8a6e03a7161

Merge 0.12->trunk
author Matthew Wild <mwild1@gmail.com>
date Mon, 25 Apr 2022 15:09:53 +0100
parents 12473:bb85be686a01 (current diff) 12475:553c6204fe5b (diff)
children 12478:82270a6b1234
files plugins/mod_s2s.lua
diffstat 2 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_s2s.lua	Mon Apr 25 14:41:54 2022 +0200
+++ b/plugins/mod_s2s.lua	Mon Apr 25 15:09:53 2022 +0100
@@ -343,6 +343,15 @@
 			}, nil, "Could not establish encrypted connection to remote server");
 		end
 	end
+
+	if session.type == "s2sout_unauthed" and not session.authenticated_remote and secure_auth and not insecure_domains[host] then
+		session:close({
+			condition = "policy-violation";
+			text = "Failed to verify certificate (internal error)";
+		});
+		return;
+	end
+
 	if hosts[host] then
 		session:close({ condition = "undefined-condition", text = "Attempt to authenticate as a host we serve" });
 	end
@@ -525,6 +534,8 @@
 		if session.secure and not session.cert_chain_status then
 			if check_cert_status(session) == false then
 				return;
+			else
+				session.authenticated_remote = true;
 			end
 		end
 
--- a/util/argparse.lua	Mon Apr 25 14:41:54 2022 +0200
+++ b/util/argparse.lua	Mon Apr 25 15:09:53 2022 +0100
@@ -5,7 +5,7 @@
 	local parsed_opts = {};
 
 	if #arg == 0 then
-		return parsed_opts;
+		return parsed_opts, arg;
 	end
 	while true do
 		local raw_param = arg[1];
@@ -47,7 +47,7 @@
 		end
 		parsed_opts[param_k] = param_v;
 	end
-	return parsed_opts;
+	return parsed_opts, arg;
 end
 
 return {