aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Ã…dahl <jadahl@gmail.com>2010-10-30 20:33:13 +0200
committerBadlop <badlop@process-one.net>2010-11-03 17:10:46 +0100
commitbacecae3dd5e126067a8d23865b876b4fecbcd02 (patch)
treeba7ce13d75534e1ad408ff335bb570cbb86a5d46
parentDon't add Pid to Captcha record when it's requested by c2s instead of muc (diff)
Fixes a leak of ejabberd_receiver processes.
When a (non-frontend) socket module without any custom receiver fails to start, the newly created ejabberd_receiver process needs to be properly closed.
-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 2c7dd783c..c33421ea2 100644
--- a/src/ejabberd_socket.erl
+++ b/src/ejabberd_socket.erl
@@ -90,7 +90,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;