diff options
author | Alexey Shchepin <alexey@process-one.net> | 2002-12-20 20:42:08 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2002-12-20 20:42:08 +0000 |
commit | ae30798efd9f802e43ec0495162acbe6f340aebd (patch) | |
tree | 50726dd86cb685817cf1f7313e13c13ded57500b /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.erl | 26 |
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), |