diff --git a/src/xmpp_socket.erl b/src/xmpp_socket.erl index 40984ac30..cbff0b035 100644 --- a/src/xmpp_socket.erl +++ b/src/xmpp_socket.erl @@ -117,9 +117,13 @@ start(Module, SockMod, Socket, Opts) -> ok = SockMod:controlling_process(Socket, Pid), {ok, Pid} end - catch _:{badmatch, {error, _} = Err} -> + catch + _:{badmatch, {error, _} = Err} -> SockMod:close(Socket), - Err + Err; + _:{badmatch, ignore} -> + SockMod:close(Socket), + ignore end. connect(Addr, Port, Opts) ->