changeset 19630:82cf8a00c369

auth: Add any %variables in passdb/userdb { default_fields } to cache key.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Sun, 24 Jan 2016 22:12:30 +0200
parents e4ba07869ce4
children 97f82dbd71e7
files src/auth/passdb.c src/auth/userdb.c
diffstat 2 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/passdb.c	Sun Jan 24 22:10:01 2016 +0200
+++ b/src/auth/passdb.c	Sun Jan 24 22:12:30 2016 +0200
@@ -227,6 +227,13 @@
 		passdb_template_build(pool, set->default_fields);
 	passdb->override_fields_tmpl =
 		passdb_template_build(pool, set->override_fields);
+	if (passdb->cache_key != NULL &&
+	    !passdb_template_is_empty(passdb->default_fields_tmpl)) {
+		/* make sure any %variables in default_fields exist
+		   in cache_key */
+		passdb->cache_key = p_strconcat(pool, passdb->cache_key,
+						set->default_fields, NULL);
+	}
 
 	array_append(&passdb_modules, &passdb, 1);
 	return passdb;
--- a/src/auth/userdb.c	Sun Jan 24 22:10:01 2016 +0200
+++ b/src/auth/userdb.c	Sun Jan 24 22:12:30 2016 +0200
@@ -171,6 +171,13 @@
 	userdb->override_fields_tmpl =
 		userdb_template_build(pool, set->driver,
 				      set->override_fields);
+	if (userdb->cache_key != NULL &&
+	    !userdb_template_is_empty(userdb->default_fields_tmpl)) {
+		/* make sure any %variables in default_fields exist
+		   in cache_key */
+		userdb->cache_key = p_strconcat(pool, userdb->cache_key,
+						set->default_fields, NULL);
+	}
 
 	array_append(&userdb_modules, &userdb, 1);
 	return userdb;