aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ejabberd_listener.erl12
1 files changed, 7 insertions, 5 deletions
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} ->