diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-02-28 10:12:11 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-02-28 10:12:11 +0300 |
commit | f3594ec8811e2075e30b2ec94681507165542aeb (patch) | |
tree | 37f7279c2264eaa2d14694f7c0db538fbfe92db6 | |
parent | Fix compilation on R17 (diff) |
Resend stream header before calling handle_auth_success/2 callback
-rw-r--r-- | src/xmpp_stream_out.erl | 22 |
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(). |