From 7c45b52c86fb2673f5faa47c8cc163af938b09b1 Mon Sep 17 00:00:00 2001 From: Evgeny Khramtsov Date: Fri, 19 Apr 2019 15:42:24 +0300 Subject: [PATCH] Correctly support cache tags in ejabberd_auth --- src/ejabberd_auth.erl | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/ejabberd_auth.erl b/src/ejabberd_auth.erl index dfe3f534a..7d6591135 100644 --- a/src/ejabberd_auth.erl +++ b/src/ejabberd_auth.erl @@ -613,7 +613,10 @@ db_user_exists(User, Server, Mod) -> case Mod:user_exists(User, Server) of true -> {ok, exists}; false -> error; - {error, _} = Err -> Err + {error, _} = Err -> Err; + {CacheTag, true} -> {CacheTag, {ok, exists}}; + {CacheTag, false} -> {CacheTag, error}; + {_, {error, _}} = Err -> Err end end) of {ok, _} -> @@ -643,10 +646,10 @@ db_check_password(User, AuthzId, Server, ProvidedPassword, fun() -> case Mod:check_password( User, AuthzId, Server, ProvidedPassword) of - true -> - {ok, ProvidedPassword}; - false -> - error + true -> {ok, ProvidedPassword}; + false -> error; + {CacheTag, true} -> {CacheTag, {ok, ProvidedPassword}}; + {CacheTag, false} -> {CacheTag, error} end end) of {ok, _} ->