summaryrefslogtreecommitdiff
path: root/src/ejabberd_auth.erl
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2002-12-20 20:42:08 +0000
committerAlexey Shchepin <alexey@process-one.net>2002-12-20 20:42:08 +0000
commitae30798efd9f802e43ec0495162acbe6f340aebd (patch)
tree50726dd86cb685817cf1f7313e13c13ded57500b /src/ejabberd_auth.erl
parent*** empty log message *** (diff)
*** empty log message ***
SVN Revision: 20
Diffstat (limited to 'src/ejabberd_auth.erl')
-rw-r--r--src/ejabberd_auth.erl26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/ejabberd_auth.erl b/src/ejabberd_auth.erl
index 4463932c..86b6d3b4 100644
--- a/src/ejabberd_auth.erl
+++ b/src/ejabberd_auth.erl
@@ -19,6 +19,7 @@
-export([start/0, start_link/0,
set_password/2,
check_password/2,
+ check_password/4,
try_register/2]).
%% gen_server callbacks
@@ -110,6 +111,31 @@ check_password(User, Password) ->
false
end.
+check_password(User, Password, StreamID, Digest) ->
+ LUser = jlib:tolower(User),
+ F = fun() ->
+ case mnesia:read({passwd, LUser}) of
+ [E] ->
+ E#passwd.password
+ end
+ end,
+ case mnesia:transaction(F) of
+ {atomic, Passwd} ->
+ DigRes = if
+ Digest /= "" ->
+ Digest == sha:sha(StreamID ++ Passwd);
+ true ->
+ false
+ end,
+ if DigRes ->
+ true;
+ true ->
+ Passwd == Password
+ end;
+ _ ->
+ false
+ end.
+
set_password(User, Password) ->
LUser = jlib:tolower(User),