Software /
code /
prosody-modules
File
misc/systemd/socket-activation.lua @ 5997:d3812826c1cd
mod_csi_muc_priorities: Allow setting the default priority for mucs to low
Move the priority checking after the mention check so that if there is a
mention we return true.
Add an option to the form to set the default priority to low.
Return `nil` in cases where we determite that the priority should be high, as
with `mod_csi_simple` this causes normal MUC messages to be marked important
while allowing mod_csi_grace_period and unneeded messages to be queued.
author | aereaux <aidan@jmad.org> |
---|---|
date | Sun, 22 Sep 2024 08:13:09 -0700 |
parent | 2352:3296a09b4e57 |
line wrap: on
line source
-- Monkeypatch to support socket activation -- -- Requires LuaSocket after "agnostic" changes merged -- -- To enable: -- RunScript "socket-activation.lua" local socket = require"socket"; local tcp_serv_mt = debug.getregistry()["tcp{server}"]; local socket_bind = socket.bind; local SD_LISTEN_FDS_START = 3; local fds = tonumber(os.getenv"LISTEN_FDS") or 0; if fds < SD_LISTEN_FDS_START then return; end local servs = {}; for i = 1, fds do local serv = socket.tcp(); if serv:getfd() >= 0 then return; -- This won't work, we will leak the old FD end debug.setmetatable(serv, tcp_serv_mt); serv:setfd(SD_LISTEN_FDS_START + i - 1); local ip, port = serv:getsockname(); servs [ ip .. ":" .. port ] = serv; end function socket.bind( ip, port, backlog ) local sock = servs [ ip .. ":" .. port ]; if sock then servs [ ip .. ":" .. port ] = nil; return sock; end if next(servs) == nil then -- my work here is done socket.bind = socket_bind; end return socket_bind( ip, port, backlog ); end