Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r--src/ejabberd_c2s.erl15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index e8234195f..7c2872e65 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -853,6 +853,21 @@ wait_for_sasl_response({xmlstreamelement, #xmlel{ns = NS, name = Name} = El},
authenticated = true,
auth_module = AuthModule,
user = list_to_binary(U)});
+ {ok, Props, ServerOut} ->
+ catch (StateData#state.sockmod):reset_stream(
+ StateData#state.socket),
+ send_element(StateData, exmpp_server_sasl:success(ServerOut)),
+ U = proplists:get_value(username, Props),
+
+ AuthModule = proplists:get_value(auth_module, Props),
+ ?INFO_MSG("(~w) Accepted authentication for ~s by ~s",
+ [StateData#state.socket, U, AuthModule]),
+ fsm_next_state(wait_for_stream,
+ StateData#state{
+ streamid = new_id(),
+ authenticated = true,
+ auth_module = AuthModule,
+ user = list_to_binary(U)});
{continue, ServerOut, NewSASLState} ->
send_element(StateData,
exmpp_server_sasl:challenge(ServerOut)),