From 5649e35a64cc729e00300e4ec1a053a08a0e1b5a Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Tue, 5 May 2020 17:22:52 +0200 Subject: [PATCH] ejabberd_listener: Let supervisor terminate child If a TCP connection was closed before the socket was handed over to a supervised child process, let the supervisor terminate the process rather than killing it directly. This avoids crash log entries generated by the supervisor. --- src/ejabberd_listener.erl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ejabberd_listener.erl b/src/ejabberd_listener.erl index f371ae7bc..64db7e4df 100644 --- a/src/ejabberd_listener.erl +++ b/src/ejabberd_listener.erl @@ -307,7 +307,12 @@ start_connection(Module, Arity, Socket, State, Sup) -> Module:accept(Pid), {ok, Pid}; Err -> - exit(Pid, kill), + case Sup of + undefined -> + exit(Pid, kill); + _ -> + supervisor:terminate_child(Sup, Pid) + end, Err end; Err ->