aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_socket.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_socket.erl')
-rw-r--r--src/ejabberd_socket.erl28
1 files changed, 10 insertions, 18 deletions
diff --git a/src/ejabberd_socket.erl b/src/ejabberd_socket.erl
index 389b3a106..f94a0a0e1 100644
--- a/src/ejabberd_socket.erl
+++ b/src/ejabberd_socket.erl
@@ -65,27 +65,19 @@ start(Module, SockMod, Socket, Opts) ->
SocketData = #socket_state{sockmod = SockMod,
socket = Socket,
receiver = Receiver},
- case Module:start({?MODULE, SocketData}, Opts) of
- {ok, Pid} ->
- case SockMod:controlling_process(Socket, Receiver) of
- ok ->
- ok;
- {error, _Reason} ->
- SockMod:close(Socket)
- end,
- ejabberd_receiver:become_controller(Receiver, Pid);
+ {ok, Pid} = Module:start({?MODULE, SocketData}, Opts),
+ case SockMod:controlling_process(Socket, Receiver) of
+ ok ->
+ ok;
{error, _Reason} ->
SockMod:close(Socket)
- end;
+ end,
+ ejabberd_receiver:become_controller(Receiver, Pid);
raw ->
- case Module:start({SockMod, Socket}, Opts) of
- {ok, Pid} ->
- case SockMod:controlling_process(Socket, Pid) of
- ok ->
- ok;
- {error, _Reason} ->
- SockMod:close(Socket)
- end;
+ {ok, Pid} = Module:start({SockMod, Socket}, Opts),
+ case SockMod:controlling_process(Socket, Pid) of
+ ok ->
+ ok;
{error, _Reason} ->
SockMod:close(Socket)
end