From e7c3b57b8bc9e28b3d4bd78d941926a8671cc981 Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Mon, 25 Jun 2018 14:52:33 +0300 Subject: [PATCH] Allow reconnecting from disconnected state --- src/xmpp_stream_out.erl | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/xmpp_stream_out.erl b/src/xmpp_stream_out.erl index 3e777a7e9..502ff79f7 100644 --- a/src/xmpp_stream_out.erl +++ b/src/xmpp_stream_out.erl @@ -308,6 +308,17 @@ handle_cast(connect, #{remote_server := RemoteServer, process_stream_end({dns, Why}, State) end end); +handle_cast(connect, #{stream_state := disconnected} = State) -> + State1 = State#{stream_id => new_id(), + stream_encrypted => false, + stream_verified => false, + stream_authenticated => false, + stream_restarted => false, + stream_state => connecting}, + State2 = maps:remove(ip, State1), + State3 = maps:remove(socket, State2), + State4 = maps:remove(socket_monitor, State3), + handle_cast(connect, State4); handle_cast(connect, State) -> %% Ignoring connection attempts in other states noreply(State);