diff options
Diffstat (limited to 'src/ejabberd_socket.erl')
-rw-r--r-- | src/ejabberd_socket.erl | 28 |
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 |