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:
authorBadlop <badlop@process-one.net>2011-08-16 02:28:25 +0400
committerBadlop <badlop@process-one.net>2011-08-16 02:28:25 +0400
commit24f5c964cda59b6f12d34fa3e4180817a8f1ea7d (patch)
treec0129a7709839f5ecf38776f6a8e4e03b1815ca9 /src/ejabberd_c2s.erl
parent1b7cc33a7fb0ea831a1efd17f2fd1367cc3e13d2 (diff)
New SASL authentication method: SCRAM-SHA-1 (thanks to Stephen Röttger)(EJAB-1196)
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)),