From: Evgeny Khramtsov Date: Tue, 2 Apr 2019 06:58:12 +0000 (+0300) Subject: Fix previous commit X-Git-Tag: 19.05~107 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d96ab48c6b9b36c283f6e396fe810c6d5d75f841;p=ejabberd Fix previous commit Fixes #2847 --- diff --git a/src/ejabberd_listener.erl b/src/ejabberd_listener.erl index 7413ee048..73baf3142 100644 --- a/src/ejabberd_listener.erl +++ b/src/ejabberd_listener.erl @@ -280,12 +280,14 @@ udp_recv(Socket, Module, Opts) -> {ok, pid()} | {error, any()} | ignore. start_connection(Module, Arity, Socket, Opts, Sup) -> Res = case Sup of + undefined when Arity == 3 -> + Module:start(gen_tcp, Socket, Opts); undefined -> - case Arity of - 3 -> Module:start(gen_tcp, Socket, Opts); - 2 -> Module:start({gen_tcp, Socket}, Opts) - end; - _ -> supervisor:start_child(Sup, [{gen_tcp, Socket}, Opts]) + Module:start({gen_tcp, Socket}, Opts); + _ when Arity == 3 -> + supervisor:start_child(Sup, [gen_tcp, Socket, Opts]); + _ -> + supervisor:start_child(Sup, [{gen_tcp, Socket}, Opts]) end, case Res of {ok, Pid} ->