Mercurial > dovecot > core-2.2
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;