From e85873873617d3b74e4556da8c30333b48144b09 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Wed, 10 Aug 2022 18:28:35 +0200 Subject: 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. --- src/ejabberd_listener.erl | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') 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 -> -- cgit v1.2.3