]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
config: Don't add redundant named filter to doveconf output
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 28 Jan 2025 13:15:10 +0000 (15:15 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:16 +0000 (12:34 +0200)
For example:

userdb ldap {
  iterate_fields {

This was output as:

userdb ldap {
  userdb_ldap {
    iterate_fields {

src/config/config-parser.c

index 9a9af4ed2b9147c2e992f717fb11a30d5fff1453..b7a49558ecfb79e9e2debc43606721fbc25069f4 100644 (file)
@@ -848,11 +848,15 @@ static bool replace_filter_prefix(struct config_parser_context *ctx,
 
                const char *cur_filter_name =
                        ctx->cur_section->filter_parser->filter.filter_name;
+               if (cur_filter_name != NULL)
+                       cur_filter_name = t_str_replace(cur_filter_name, '/', '_');
                if (cur_filter_name != NULL &&
                    strncmp(filter_name_prefix, cur_filter_name,
                            filter_name_prefix_len - 1) == 0 &&
                    cur_filter_name[filter_name_prefix_len-1] == '\0') {
-                       /* already inside the correct filter */
+                       /* already inside the correct filter, e.g.
+                          userdb ldap { iterate_fields doesn't need
+                          userdb_ldap { named filter in the middle. */
                        return FALSE;
                }