# HG changeset patch
# User Kim Alvefur <zash@zash.se>
# Date 1644611813 -3600
# Node ID cb459f8fa740b846e922c3d6025a977a381e9984
# Parent  249eb306f6688ec3ca443885544f4c3ca8b3627d
mod_c2s,mod_s2s: Disable and close port listeners before closing sessions

This ensures no new clients can start connecting during shutdown

diff -r 249eb306f668 -r cb459f8fa740 .luacheckrc
--- a/.luacheckrc	Wed Oct 06 14:50:47 2021 +0200
+++ b/.luacheckrc	Fri Feb 11 21:36:53 2022 +0100
@@ -48,6 +48,7 @@
 		"module.saved_state",
 		"module.global",
 		"module.path",
+		"module.items",
 
 		-- Module API
 		"module.add_extension",
diff -r 249eb306f668 -r cb459f8fa740 plugins/mod_c2s.lua
--- a/plugins/mod_c2s.lua	Wed Oct 06 14:50:47 2021 +0200
+++ b/plugins/mod_c2s.lua	Fri Feb 11 21:36:53 2022 +0100
@@ -423,6 +423,13 @@
 module:hook("c2s-read-timeout", keepalive, -1);
 
 module:hook("server-stopping", function(event)
+	-- Close ports
+	local pm = require "core.portmanager";
+	for _, netservice in pairs(module.items["net-provider"]) do
+		pm.unregister_service(netservice.name, netservice);
+	end
+
+	-- Close sessions
 	local reason = event.reason;
 	for _, session in pairs(sessions) do
 		session:close{ condition = "system-shutdown", text = reason };
diff -r 249eb306f668 -r cb459f8fa740 plugins/mod_s2s.lua
--- a/plugins/mod_s2s.lua	Wed Oct 06 14:50:47 2021 +0200
+++ b/plugins/mod_s2s.lua	Fri Feb 11 21:36:53 2022 +0100
@@ -958,6 +958,13 @@
 module:hook("s2s-check-certificate", check_auth_policy, -1);
 
 module:hook("server-stopping", function(event)
+	-- Close ports
+	local pm = require "core.portmanager";
+	for _, netservice in pairs(module.items["net-provider"]) do
+		pm.unregister_service(netservice.name, netservice);
+	end
+
+	-- Close sessions
 	local reason = event.reason;
 	for _, session in pairs(sessions) do
 		session:close{ condition = "system-shutdown", text = reason };