Mercurial > prosody-modules
view misc/systemd/socket-activation.lua @ 6219:4d040f506c6c
mod_vcard_muc: deprecated
diff --git a/mod_vcard_muc/README.md b/mod_vcard_muc/README.md
--- a/mod_vcard_muc/README.md
+++ b/mod_vcard_muc/README.md
@@ -1,6 +1,7 @@
---
summary: Support for MUC vCards and avatars
labels:
+- 'Stage-Deprecated'
- 'Stage-Stable'
...
@@ -21,8 +22,8 @@ modules_enabled = {
# Compatibility
- ------------------------- ----------
- trunk^[as of 2024-10-22] Works
+ ------------------------- ----------------------------------------
+ 0.13 Room avatar feature included in Prosody
0.12 Works
- ------------------------- ----------
+ ------------------------- ----------------------------------------
| author | Menel <menel@snikket.de> |
|---|---|
| date | Mon, 12 May 2025 12:13:25 +0200 |
| parents | 3296a09b4e57 |
| children |
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
