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 */