aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-12-17 20:19:44 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-12-17 20:19:44 +0300
commitbd1ff0e897b1be55cacd7f70a5ab52bcedfd411b (patch)
tree1a070a49f1ec16855d832c33f48250914c43bf8f
parentAvoid excessive logging of SQL failures (diff)
Fix processing order
-rw-r--r--src/xmpp_stream_in.erl28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/xmpp_stream_in.erl b/src/xmpp_stream_in.erl
index 4c690be3b..c28bad8e1 100644
--- a/src/xmpp_stream_in.erl
+++ b/src/xmpp_stream_in.erl
@@ -314,16 +314,10 @@ 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', {xmlstreamend, _}}, State) ->
+ noreply(process_stream_end({stream, reset}, State));
+handle_info({'$gen_event', closed}, State) ->
+ noreply(process_stream_end({socket, closed}, State));
handle_info({'$gen_event', {xmlstreamerror, Reason}}, #{lang := Lang}= State) ->
State1 = send_header(State),
noreply(
@@ -338,6 +332,16 @@ handle_info({'$gen_event', {xmlstreamerror, Reason}}, #{lang := Lang}= State) ->
end,
send_pkt(State1, Err)
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', {xmlstreamelement, El}},
#{xmlns := NS, mod := Mod} = State) ->
noreply(
@@ -364,10 +368,6 @@ handle_info({'$gen_all_state_event', {xmlstreamcdata, Data}},
noreply(try Mod:handle_cdata(Data, State)
catch _:undef -> State
end);
-handle_info({'$gen_event', {xmlstreamend, _}}, State) ->
- noreply(process_stream_end({stream, reset}, State));
-handle_info({'$gen_event', closed}, State) ->
- noreply(process_stream_end({socket, closed}, State));
handle_info(timeout, #{mod := Mod} = State) ->
Disconnected = is_disconnected(State),
noreply(try Mod:handle_timeout(State)