diff options
author | Holger Weiss <holger@zedat.fu-berlin.de> | 2020-05-05 17:22:52 +0200 |
---|---|---|
committer | Holger Weiss <holger@zedat.fu-berlin.de> | 2020-05-05 17:22:52 +0200 |
commit | 5649e35a64cc729e00300e4ec1a053a08a0e1b5a (patch) | |
tree | 459e4ad665cdef3566a0ca1ecc4803c46133bad2 /src | |
parent | Set '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.erl | 7 |
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 -> |