aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-02-28 10:12:11 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-02-28 10:12:11 +0300
commitf3594ec8811e2075e30b2ec94681507165542aeb (patch)
tree37f7279c2264eaa2d14694f7c0db538fbfe92db6
parentFix compilation on R17 (diff)
Resend stream header before calling handle_auth_success/2 callback
-rw-r--r--src/xmpp_stream_out.erl22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/xmpp_stream_out.erl b/src/xmpp_stream_out.erl
index 67fdf7db9..d663f32df 100644
--- a/src/xmpp_stream_out.erl
+++ b/src/xmpp_stream_out.erl
@@ -624,18 +624,18 @@ process_cert_verification(State) ->
process_sasl_success(#{mod := Mod,
sockmod := SockMod,
socket := Socket} = State) ->
- State1 = try Mod:handle_auth_success(<<"EXTERNAL">>, State)
- catch _:undef -> State
- end,
- case is_disconnected(State1) of
- true -> State1;
+ SockMod:reset_stream(Socket),
+ State1 = State#{stream_id => new_id(),
+ stream_restarted => true,
+ stream_state => wait_for_stream,
+ stream_authenticated => true},
+ State2 = send_header(State1),
+ case is_disconnected(State2) of
+ true -> State2;
false ->
- SockMod:reset_stream(Socket),
- State2 = State1#{stream_id => new_id(),
- stream_restarted => true,
- stream_state => wait_for_stream,
- stream_authenticated => true},
- send_header(State2)
+ try Mod:handle_auth_success(<<"EXTERNAL">>, State2)
+ catch _:undef -> State2
+ end
end.
-spec process_sasl_failure(sasl_failure(), state()) -> state().