From: Timo Sirainen Date: Fri, 5 Feb 2016 13:55:36 +0000 (+0200) Subject: auth: Small code cleanup to auth cache - deduplicate code. X-Git-Tag: 2.2.22.rc1~203 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=90cf976e328e093da91a8332d96182201f4ef6c1;p=thirdparty%2Fdovecot%2Fcore.git auth: Small code cleanup to auth cache - deduplicate code. No functional changes. --- diff --git a/src/auth/passdb-cache.c b/src/auth/passdb-cache.c index 0799ac2b71..2fc9d9227e 100644 --- a/src/auth/passdb-cache.c +++ b/src/auth/passdb-cache.c @@ -23,6 +23,29 @@ passdb_cache_log_hit(struct auth_request *request, const char *value) auth_request_log_debug(request, AUTH_SUBSYS_DB, "cache hit: %s", value); } +static bool +passdb_cache_lookup(struct auth_request *request, const char *key, + bool use_expired, struct auth_cache_node **node_r, + const char **value_r, bool *neg_expired_r) +{ + const char *value; + bool expired; + + /* value = password \t ... */ + value = auth_cache_lookup(passdb_cache, request, key, node_r, + &expired, neg_expired_r); + if (value == NULL || (expired && !use_expired)) { + auth_request_log_debug(request, AUTH_SUBSYS_DB, + value == NULL ? "cache miss" : + "cache expired"); + return FALSE; + } + passdb_cache_log_hit(request, value); + + *value_r = value; + return TRUE; +} + bool passdb_cache_verify_plain(struct auth_request *request, const char *key, const char *password, enum passdb_result *result_r, bool use_expired) @@ -30,21 +53,14 @@ bool passdb_cache_verify_plain(struct auth_request *request, const char *key, const char *value, *cached_pw, *scheme, *const *list; struct auth_cache_node *node; int ret; - bool expired, neg_expired; + bool neg_expired; if (passdb_cache == NULL || key == NULL) return FALSE; - /* value = password \t ... */ - value = auth_cache_lookup(passdb_cache, request, key, &node, - &expired, &neg_expired); - if (value == NULL || (expired && !use_expired)) { - auth_request_log_debug(request, AUTH_SUBSYS_DB, - value == NULL ? "cache miss" : - "cache expired"); + if (!passdb_cache_lookup(request, key, use_expired, + &node, &value, &neg_expired)) return FALSE; - } - passdb_cache_log_hit(request, value); if (*value == '\0') { /* negative cache entry */ @@ -96,20 +112,14 @@ bool passdb_cache_lookup_credentials(struct auth_request *request, { const char *value, *const *list; struct auth_cache_node *node; - bool expired, neg_expired; + bool neg_expired; if (passdb_cache == NULL) return FALSE; - value = auth_cache_lookup(passdb_cache, request, key, &node, - &expired, &neg_expired); - if (value == NULL || (expired && !use_expired)) { - auth_request_log_debug(request, AUTH_SUBSYS_DB, - value == NULL ? "cache miss" : - "cache expired"); + if (!passdb_cache_lookup(request, key, use_expired, + &node, &value, &neg_expired)) return FALSE; - } - passdb_cache_log_hit(request, value); if (*value == '\0') { /* negative cache entry */