]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
global: Remove SETTINGS_EVENT_MAILBOX_NAME_WITH[OUT]_PREFIX macros and special handling
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 23 Jan 2025 21:51:55 +0000 (23:51 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:16 +0000 (12:34 +0200)
The mailbox settings are now looked up with settings_filter_names, so
there's no need to do this kind of special translations.

src/config/config-dump-full.c
src/lib-settings/settings.c
src/lib-settings/settings.h
src/lib-storage/list/mailbox-list-iter.c
src/lib-storage/mail-autoexpunge.c
src/lib-storage/mail-storage-settings.c
src/lib-storage/mail-storage.c
src/plugins/trash/trash-plugin.c

index 3ad3ae0db29beb9862300fcdadf42c9d7d154d12..a56ed9a5ac8cf63e4557266505356d4635b0123c 100644 (file)
@@ -148,8 +148,6 @@ config_dump_full_append_filter_query(string_t *str,
                const char *p = strchr(filter->filter_name, '/');
                i_assert(p != NULL);
                const char *filter_key = t_strdup_until(filter->filter_name, p);
-               if (strcmp(filter_key, SETTINGS_EVENT_MAILBOX_NAME_WITH_PREFIX) == 0)
-                       filter_key = SETTINGS_EVENT_MAILBOX_NAME_WITHOUT_PREFIX;
                /* the filter_name is used by settings_get_filter() for
                   finding a specific filter without wildcards messing
                   up the lookups. */
index 16761804966717b994455d1b8848ab3bf867c050..d37e411d0fb044a091c7943a8dd821dfd48baa12 100644 (file)
@@ -1518,11 +1518,6 @@ settings_key_part_find(struct settings_apply_ctx *ctx, const char **key,
        if (last_filter_value != NULL) {
                i_assert(last_filter_key != NULL);
                const char *key_prefix = last_filter_key;
-               /* last_filter_key was already converted to "mailbox_subname".
-                  But for setting name auto-prefixing it needs to be "mailbox"
-                  again. */
-               if (strcmp(key_prefix, SETTINGS_EVENT_MAILBOX_NAME_WITHOUT_PREFIX) == 0)
-                       key_prefix = SETTINGS_EVENT_MAILBOX_NAME_WITH_PREFIX;
                /* Try filter/name/key -> filter_name_key, and fallback to
                   filter_key. Do this before the non-prefixed check, so e.g.
                   inet_listener/imap/ssl won't try to change the global ssl
@@ -1651,8 +1646,6 @@ settings_override_filter_match(struct settings_apply_ctx *ctx,
                                return -1;
                        }
                        last_filter_key = part;
-                       if (strcmp(last_filter_key, SETTINGS_EVENT_MAILBOX_NAME_WITH_PREFIX) == 0)
-                               last_filter_key = SETTINGS_EVENT_MAILBOX_NAME_WITHOUT_PREFIX;
                        last_filter_value = t_strdup_until(value, p);
                        str_printfa(filter_string, SETTINGS_EVENT_FILTER_NAME"=\"%s/%s\"",
                                    last_filter_key, wildcard_str_escape(settings_section_escape(last_filter_value)));
@@ -1798,8 +1791,6 @@ settings_instance_override_add_default(struct settings_apply_ctx *ctx,
                        filter_key++;
                else
                        filter_key = array_set->orig_key;
-               if (strcmp(filter_key, SETTINGS_EVENT_MAILBOX_NAME_WITH_PREFIX) == 0)
-                       filter_key = SETTINGS_EVENT_MAILBOX_NAME_WITHOUT_PREFIX;
 
                /* Build the final event filter. */
                const char *filter_string = t_strdup_printf(
index 01fef2b4967819eab59eb5ddfa087f546e6e0822..10adac7557ff148a2746dabafcaffcd54d5ce0fe 100644 (file)
@@ -87,13 +87,6 @@ struct settings_get_params {
    event_set_ptr(event, SETTINGS_EVENT_FILTER_NAME, "auth_policy"); */
 #define SETTINGS_EVENT_FILTER_NAME "settings_filter_name"
 
-/* The "mailbox" event field contains the full mailbox with namespace prefix.
-   However, for settings we need to use the mailbox name without the namespace
-   prefix. Internally convert the "mailbox" named filters to "mailbox_subname",
-   so the matching works for the event. */
-#define SETTINGS_EVENT_MAILBOX_NAME_WITH_PREFIX "mailbox"
-#define SETTINGS_EVENT_MAILBOX_NAME_WITHOUT_PREFIX "mailbox_subname"
-
 /* Set struct var_expand_params to be used for settings expansion. The struct is
    expected to be accessible until the event is freed or the params is removed
    from the event. Usage:
index b472cd81e8fbe6971b39c774926e11f0ce94bd2a..e15a79f3f2fc75b31628ce5c28398baa5d3cbeb1 100644 (file)
@@ -124,7 +124,7 @@ mailbox_list_iter_init_autocreate(struct mailbox_list_iterate_context *ctx)
        p_array_init(&actx->all_ns_box_sets, ctx->pool, 16);
        for (i = 0; i < count; i++) {
                if (settings_get_filter(ns->list->event,
-                                       SETTINGS_EVENT_MAILBOX_NAME_WITHOUT_PREFIX, box_names[i],
+                                       "mailbox", box_names[i],
                                        &mailbox_setting_parser_info, 0,
                                        &box_set, &error) < 0) {
                        mailbox_list_set_critical(ctx->list, "%s", error);
index ca38682a4e785a6028c8f6d952272c39f21c6f2e..4f36d607fc7aef34374768a3c898f73dd1310c82 100644 (file)
@@ -246,7 +246,7 @@ mail_namespace_autoexpunge(struct mail_namespace *ns, struct file_lock **lock,
 
        array_foreach_elem(&ns->set->mailboxes, box_name) {
                if (settings_get_filter(mailbox_list_get_event(ns->list),
-                                       SETTINGS_EVENT_MAILBOX_NAME_WITHOUT_PREFIX, box_name,
+                                       "mailbox", box_name,
                                        &mailbox_setting_parser_info, 0,
                                        &box_set, &error) < 0) {
                        e_error(mailbox_list_get_event(ns->list), "%s", error);
index 7e2f9ba87c32b66898e578e84c3973f2e56f4804..d77e03925ec9d972cf2ee45621cbe8739df433f7 100644 (file)
@@ -793,8 +793,7 @@ namespace_parse_mailboxes(struct event *event, pool_t pool,
                SETTINGS_EVENT_NAMESPACE_NAME, ns->name);
        array_foreach_elem(&ns->mailboxes, box_name) {
                if (settings_get_filter(event,
-                                       SETTINGS_EVENT_MAILBOX_NAME_WITHOUT_PREFIX,
-                                       box_name,
+                                       "mailbox", box_name,
                                        &mailbox_setting_parser_info, 0,
                                        &box_set, &error) < 0) {
                        *error_r = t_strdup_printf(
index fa2c7ae170e1dc12dd2c996a13df74866fe2837c..e126b33663ebf3b491f3b34148c49608c59ff059 100644 (file)
@@ -3480,8 +3480,7 @@ static void mailbox_settings_filters_add(struct event *event,
                const char *filter_name =
                        array_idx_elem(&list->ns->set->mailboxes, i);
                settings_event_add_list_filter_name(event,
-                       SETTINGS_EVENT_MAILBOX_NAME_WITHOUT_PREFIX,
-                       filter_name);
+                                                   "mailbox", filter_name);
        }
 }
 
@@ -3493,9 +3492,7 @@ mail_storage_mailbox_create_event(struct event *parent,
        event_add_category(event, &event_category_mailbox);
 
        mailbox_settings_filters_add(event, list, vname);
-       event_add_str(event, SETTINGS_EVENT_MAILBOX_NAME_WITH_PREFIX, vname);
-       event_add_str(event, SETTINGS_EVENT_MAILBOX_NAME_WITHOUT_PREFIX,
-                     mailbox_get_name_without_prefix(list->ns, vname));
+       event_add_str(event, "mailbox", vname);
        event_add_str(event, SETTINGS_EVENT_NAMESPACE_NAME, list->ns->set->name);
        settings_event_add_list_filter_name(event,
                SETTINGS_EVENT_NAMESPACE_NAME, list->ns->set->name);
index ab520bf0027d8ee56edb179c802eba3b71176df1..18d14547688b61e71c57018926d6f16ad2d07f67 100644 (file)
@@ -310,9 +310,8 @@ static int trash_try_mailbox(struct mail_namespace *ns, const char *box_name,
 {
        struct trash_user *tuser = TRASH_USER_CONTEXT_REQUIRE(ns->user);
        const struct trash_settings *trash_set;
-       if (settings_try_get_filter(ns->list->event,
-                                   SETTINGS_EVENT_MAILBOX_NAME_WITHOUT_PREFIX,
-                                   box_name, &trash_setting_parser_info, 0,
+       if (settings_try_get_filter(ns->list->event, "mailbox", box_name,
+                                   &trash_setting_parser_info, 0,
                                    &trash_set, error_r) < 0)
                return -1;
        unsigned int trash_priority = trash_set->trash_priority;
@@ -322,9 +321,8 @@ static int trash_try_mailbox(struct mail_namespace *ns, const char *box_name,
                return 0;
 
        const struct mailbox_settings *box_set;
-       if (settings_try_get_filter(ns->list->event,
-                                   SETTINGS_EVENT_MAILBOX_NAME_WITHOUT_PREFIX,
-                                   box_name, &mailbox_setting_parser_info, 0,
+       if (settings_try_get_filter(ns->list->event, "mailbox", box_name,
+                                   &mailbox_setting_parser_info, 0,
                                    &box_set, error_r) < 0)
                return -1;