diff options
Diffstat (limited to 'src/ejabberd_auth_riak.erl')
-rw-r--r-- | src/ejabberd_auth_riak.erl | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/src/ejabberd_auth_riak.erl b/src/ejabberd_auth_riak.erl index 29da504c9..839bbc720 100644 --- a/src/ejabberd_auth_riak.erl +++ b/src/ejabberd_auth_riak.erl @@ -25,8 +25,6 @@ -module(ejabberd_auth_riak). --compile([{parse_transform, ejabberd_sql_pt}]). - -author('alexey@process-one.net'). -behaviour(ejabberd_auth). @@ -58,21 +56,27 @@ passwd_schema() -> {record_info(fields, passwd), #passwd{}}. set_password(User, Server, Password) -> - ejabberd_riak:put(#passwd{us = {User, Server}, password = Password}, - passwd_schema(), - [{'2i', [{<<"host">>, Server}]}]). + case ejabberd_riak:put(#passwd{us = {User, Server}, password = Password}, + passwd_schema(), + [{'2i', [{<<"host">>, Server}]}]) of + ok -> {cache, {ok, Password}}; + {error, _} -> {nocache, {error, db_failure}} + end. try_register(User, Server, Password) -> US = {User, Server}, case ejabberd_riak:get(passwd, passwd_schema(), US) of {error, notfound} -> - ejabberd_riak:put(#passwd{us = US, password = Password}, - passwd_schema(), - [{'2i', [{<<"host">>, Server}]}]); + case ejabberd_riak:put(#passwd{us = US, password = Password}, + passwd_schema(), + [{'2i', [{<<"host">>, Server}]}]) of + ok -> {cache, {ok, Password}}; + {error, _} -> {nocache, {error, db_failure}} + end; {ok, _} -> - {error, exists}; - {error, _} = Err -> - Err + {cache, {error, exists}}; + {error, _} -> + {nocache, {error, db_failure}} end. get_users(Server, _) -> @@ -94,9 +98,11 @@ count_users(Server, _) -> get_password(User, Server) -> case ejabberd_riak:get(passwd, passwd_schema(), {User, Server}) of {ok, Password} -> - {ok, Password}; + {cache, {ok, Password}}; + {error, notfound} -> + {cache, error}; {error, _} -> - error + {nocache, error} end. remove_user(User, Server) -> |