]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Add any %variables in passdb/userdb { default_fields } to cache key.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Sun, 24 Jan 2016 20:12:30 +0000 (22:12 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Sun, 24 Jan 2016 20:12:30 +0000 (22:12 +0200)
src/auth/passdb.c
src/auth/userdb.c

index e864dc1dab8cd427ed26a457debe8749705c7959..a425aa1691a348229c54203004438ece902d254d 100644 (file)
@@ -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;
index afc9d151d08b7502011db617fe78b2f1a8d9f73d..4d30005f9a454dae4c188b9a003e80beb06ff3c9 100644 (file)
@@ -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;