summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2022-08-10 18:28:35 +0200
committerHolger Weiss <holger@zedat.fu-berlin.de>2022-08-10 18:28:35 +0200
commite85873873617d3b74e4556da8c30333b48144b09 (patch)
treef9d8b772d693b17b96a49a5b6f319719bde2c227 /src
parentUpdate documentation to reflect the GHCR image usage (diff)
ejabberd_listener: Let module take over socket
For some use cases, it may be necessary to allow a module to take over socket ownership during initialization.
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_listener.erl3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/ejabberd_listener.erl b/src/ejabberd_listener.erl
index 309e167d..41eec8c1 100644
--- a/src/ejabberd_listener.erl
+++ b/src/ejabberd_listener.erl
@@ -318,6 +318,9 @@ start_connection(Module, Arity, Socket, State, Sup) ->
supervisor:start_child(Sup, [{gen_tcp, Socket}, State])
end,
case Res of
+ {ok, Pid, preowned_socket} ->
+ Module:accept(Pid),
+ {ok, Pid};
{ok, Pid} ->
case gen_tcp:controlling_process(Socket, Pid) of
ok ->