Mercurial > prosody-hg
view plugins/mod_debug_reset.lua @ 13114:025c38ee885d
util.dependencies: Print tables itself to reduce number of imports
Rationale: See diffstat
When this module is imported, it ends up calling stty via term_width()
in util.human.io.table(). When this happens outside of a terminal, the
following message is sent to stdout:
stty: 'standard input': Inappropriate ioctl for device
Not importing this module avoids that.
Furthermore three is value in this module having minimal dependencies as
they might not be available when it does the checks.
Ref a1fed82c44b9
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 26 May 2023 21:18:27 +0200 |
| parents | 8ad432953300 |
| children | 8f50e7e43df4 |
line wrap: on
line source
-- This module will "reset" the server when the client connection count drops -- to zero. This is somewhere between a reload and a full process restart. -- It is useful to ensure isolation between test runs, for example. It may -- also be of use for some kinds of manual testing. module:set_global(); local hostmanager = require "prosody.core.hostmanager"; local function do_reset() module:log("info", "Performing reset..."); local hosts = {}; for host in pairs(prosody.hosts) do table.insert(hosts, host); end module:fire_event("server-resetting"); for _, host in ipairs(hosts) do hostmanager.deactivate(host); hostmanager.activate(host); module:log("info", "Reset complete"); module:fire_event("server-reset"); end end function module.add_host(host_module) host_module:hook("resource-unbind", function () if next(prosody.full_sessions) == nil then do_reset(); end end); end local console_env = module:shared("/*/admin_shell/env"); console_env.debug_reset = { reset = do_reset; };
