From b76737b21cb6cc552dbe0798e9e37d86ca40a398 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sun, 24 Jan 2016 22:12:30 +0200 Subject: [PATCH] auth: Add any %variables in passdb/userdb { default_fields } to cache key. --- src/auth/passdb.c | 7 +++++++ src/auth/userdb.c | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/src/auth/passdb.c b/src/auth/passdb.c index e864dc1dab..a425aa1691 100644 --- a/src/auth/passdb.c +++ b/src/auth/passdb.c @@ -227,6 +227,13 @@ passdb_preinit(pool_t pool, const struct auth_passdb_settings *set) 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; diff --git a/src/auth/userdb.c b/src/auth/userdb.c index afc9d151d0..4d30005f9a 100644 --- a/src/auth/userdb.c +++ b/src/auth/userdb.c @@ -171,6 +171,13 @@ userdb_preinit(pool_t pool, const struct auth_userdb_settings *set) 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;