# HG changeset patch # User Kim Alvefur # Date 1632145903 -7200 # Node ID 42e98179c0344ab38f124f3fd58ceb64583a4228 # Parent c24580a214f35afd8ed8903d17deb86b54096afc# Parent ae43166fe93169210d65ce3cfc905913999c1e96 Merge 0.11->trunk diff -r c24580a214f3 -r 42e98179c034 net/server_epoll.lua --- a/net/server_epoll.lua Sun Sep 19 16:28:16 2021 +0200 +++ b/net/server_epoll.lua Mon Sep 20 15:51:43 2021 +0200 @@ -89,6 +89,9 @@ -- Reuse write buffer tables keep_buffers = true; + + --- How long to wait after getting the shutdown signal before forcefully tearing down every socket + shutdown_deadline = 5; }}; local cfg = default_config.__index; @@ -1004,6 +1007,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 diff -r c24580a214f3 -r 42e98179c034 prosodyctl --- a/prosodyctl Sun Sep 19 16:28:16 2021 +0200 +++ b/prosodyctl Mon Sep 20 15:51:43 2021 +0200 @@ -230,7 +230,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