From 242b3d3968739e886b72fd391b1b8bd17d4f0c19 Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Fri, 24 Nov 2017 19:38:20 +0300 Subject: [PATCH] Don't crash on unexpected XML events In fact, seems like this is a problem in the receiver code (or fast_xml?) and should be fixed there --- src/xmpp_stream_in.erl | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/xmpp_stream_in.erl b/src/xmpp_stream_in.erl index 329ebad61..3154c9406 100644 --- a/src/xmpp_stream_in.erl +++ b/src/xmpp_stream_in.erl @@ -314,6 +314,16 @@ handle_info({'$gen_event', {xmlstreamstart, Name, Attrs}}, send_pkt(State1, Err) end end); +handle_info({'$gen_event', El}, #{stream_state := wait_for_stream} = State) -> + %% TODO: find and fix this in fast_xml + error_logger:error_msg("unexpected event from receiver: ~p; " + "xmlstreamstart was expected", [El]), + State1 = send_header(State), + noreply( + case is_disconnected(State1) of + true -> State1; + false -> send_pkt(State1, xmpp:serr_invalid_xml()) + end); handle_info({'$gen_event', {xmlstreamerror, Reason}}, #{lang := Lang}= State) -> State1 = send_header(State), noreply(