aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ejabberd_socket.erl8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ejabberd_socket.erl b/src/ejabberd_socket.erl
index 25ff64c27..4d21e4070 100644
--- a/src/ejabberd_socket.erl
+++ b/src/ejabberd_socket.erl
@@ -87,7 +87,13 @@ start(Module, SockMod, Socket, Opts) ->
end,
ReceiverMod:become_controller(Receiver, Pid);
{error, _Reason} ->
- SockMod:close(Socket)
+ SockMod:close(Socket),
+ case ReceiverMod of
+ ejabberd_receiver ->
+ ReceiverMod:close(Receiver);
+ _ ->
+ ok
+ end
end;
independent ->
ok;