Mercurial > dovecot > core-2.2
changeset 19717:d5d64a90df39
auth: Small code cleanup to auth cache - deduplicate code.
No functional changes.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Fri, 05 Feb 2016 15:55:36 +0200 |
parents | bb80600fe293 |
children | 8ad9d8dd0f70 |
files | src/auth/passdb-cache.c |
diffstat | 1 files changed, 29 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/passdb-cache.c Fri Feb 05 15:54:35 2016 +0200 +++ b/src/auth/passdb-cache.c Fri Feb 05 15:55:36 2016 +0200 @@ -23,6 +23,29 @@ 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 @@ 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 @@ { 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 */