Mercurial > prosody-hg
view plugins/mod_debug_reset.lua @ 14175:721823e085ec 13.0
net.stun: Fix parsing of STUN packets with 0-length attributes
Not sure where the '20' came from. RFC 8489 defines attributes as simple TLVs,
with the type+length header being always 16 bits (4 bytes).
The branch for non-zero lengths already uses the correct header size.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Mon, 25 May 2026 13:29:28 +0100 |
| parents | 368df9b2d511 |
| children |
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); for _ = 1, 4 do -- Run a few cycles to ensure full cleanup, including -- weak tables and finalizers collectgarbage("collect"); end 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; };
