aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2020-05-05 17:22:52 +0200
committerHolger Weiss <holger@zedat.fu-berlin.de>2020-05-05 17:22:52 +0200
commit5649e35a64cc729e00300e4ec1a053a08a0e1b5a (patch)
tree459e4ad665cdef3566a0ca1ecc4803c46133bad2 /src
parentSet 'max_fsm_queue' default value (back) to 10000 (diff)
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.
Diffstat (limited to 'src')
-rw-r--r--src/ejabberd_listener.erl7
1 files changed, 6 insertions, 1 deletions
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 ->