aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_c2s.erl
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2011-08-16 00:28:25 +0200
committerBadlop <badlop@process-one.net>2011-08-16 00:28:25 +0200
commit24f5c964cda59b6f12d34fa3e4180817a8f1ea7d (patch)
treec0129a7709839f5ecf38776f6a8e4e03b1815ca9 /src/ejabberd_c2s.erl
parentAdd comment about ping requests sent even to non-supporting clients (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)),