Changeset

11825:07a72f0a32df 0.11

Merge wayward 0.11.10 tag commit
author Kim Alvefur <zash@zash.se>
date Fri, 01 Oct 2021 00:21:49 +0200
parents 11811:ae43166fe931 (diff) 11824:90a474aab2c1 (current diff)
children 11832:30ca1be53829 11844:0f786c4a2cb2
files
diffstat 4 files changed, 34 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/makefile	Tue Aug 03 11:44:31 2021 +0200
+++ b/makefile	Fri Oct 01 00:21:49 2021 +0200
@@ -90,12 +90,12 @@
 	sed 's|certs/|$(INSTALLEDCONFIG)/certs/|' prosody.cfg.lua.dist > $@
 
 prosody.version:
-	test -f prosody.release && \
-		cp prosody.release $@ || \
-		test -f .hg_archival.txt && \
-		sed -n 's/^node: \(............\).*/\1/p' .hg_archival.txt > $@ || \
-		test -f .hg/dirstate && \
-		hexdump -n6 -e'6/1 "%02x"' .hg/dirstate > $@ || \
-		echo unknown > $@
-
-
+	if [ -f prosody.release ]; then \
+		cp prosody.release $@; \
+	elif [ -f .hg_archival.txt ]; then \
+		sed -n 's/^node: \(............\).*/\1/p' .hg_archival.txt > $@; \
+	elif [ -f .hg/dirstate ]; then \
+		hexdump -n6 -e'6/1 "%02x"' .hg/dirstate > $@; \
+	else \
+		echo unknown > $@; \
+	fi
--- a/net/server_epoll.lua	Tue Aug 03 11:44:31 2021 +0200
+++ b/net/server_epoll.lua	Fri Oct 01 00:21:49 2021 +0200
@@ -58,6 +58,9 @@
 	-- Maximum and minimum amount of time to sleep waiting for events (adjusted for pending timers)
 	max_wait = 86400;
 	min_wait = 1e-06;
+
+	--- How long to wait after getting the shutdown signal before forcefully tearing down every socket
+	shutdown_deadline = 5;
 }};
 local cfg = default_config.__index;
 
@@ -122,8 +125,8 @@
 	end
 
 	if readd then
-		for _, timer in pairs(readd) do
-			timers:insert(timer, timer[1]);
+		for id, timer in pairs(readd) do
+			timers:insert(timer, timer[1], id);
 		end
 		peek = timers:peek();
 	end
@@ -743,6 +746,21 @@
 	if quit then
 		quitting = "quitting";
 		closeall();
+		addtimer(1, function ()
+			if quitting then
+				closeall();
+				return 1;
+			end
+		end);
+		if cfg.shutdown_deadline then
+			addtimer(cfg.shutdown_deadline, function ()
+				if quitting then
+					for fd, conn in pairs(fds) do -- luacheck: ignore 213/fd
+						conn:destroy();
+					end
+				end
+			end);
+		end
 	else
 		quitting = nil;
 	end
--- a/plugins/mod_c2s.lua	Tue Aug 03 11:44:31 2021 +0200
+++ b/plugins/mod_c2s.lua	Fri Oct 01 00:21:49 2021 +0200
@@ -108,7 +108,10 @@
 		send(features);
 	else
 		(session.log or log)("warn", "No stream features to offer");
-		session:close{ condition = "undefined-condition", text = "No stream features to proceed with" };
+		session:close({
+			condition = "undefined-condition";
+			text = "No stream features to proceed with on "..(session.secure and "" or "in").."secure stream";
+		});
 	end
 end
 
--- a/prosodyctl	Tue Aug 03 11:44:31 2021 +0200
+++ b/prosodyctl	Fri Oct 01 00:21:49 2021 +0200
@@ -203,7 +203,7 @@
 	if prosody.installed and configmanager.get("*", "prosodyctl_service_warnings") ~= false then
 		show_warning("WARNING: Use of prosodyctl start/stop/restart/reload is not recommended");
 		show_warning("         if Prosody is managed by an init system - use that directly instead.");
-		lfs = lfs or require
+		lfs = lfs or require"lfs";
 		if lfs.attributes("/etc/systemd") then
 			show_warning("         e.g. systemctl %s prosody", service_command);
 		elseif lfs.attributes("/etc/init.d/prosody") then