]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-settings, config: Remove unused override event filter
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 10 Apr 2025 12:09:36 +0000 (15:09 +0300)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Mon, 12 May 2025 15:51:47 +0000 (15:51 +0000)
src/config/config-dump-full.c
src/lib-master/test-master-service-settings.c
src/lib-settings/settings.c

index a2138588882275c74f641da387ec58bb229c49b6..245667afc9ac7508e399eb81649aa6e46b656f01 100644 (file)
@@ -46,7 +46,6 @@
    <32bit: event filter strings count>
    Repeat for "event filter strings count":
      <NUL-terminated string: event filter string>
-     <NUL-terminated string: override event filter string>
      <32bit: number of named list filter elements>
 
    Repeat until "settings full size" is reached:
@@ -380,8 +379,7 @@ config_dump_full_write_all_keys(struct ostream *output,
 
 static void
 config_dump_full_append_filter_query(string_t *str,
-                                    const struct config_filter *filter,
-                                    bool write_named_filters)
+                                    const struct config_filter *filter)
 {
        if (filter->protocol != NULL) {
                if (filter->protocol[0] != '!') {
@@ -421,21 +419,17 @@ config_dump_full_append_filter_query(string_t *str,
        } else if (filter->filter_name != NULL) {
                const char *filter_name = filter->filter_name;
 
-               if (write_named_filters) {
-                       str_printfa(str, SETTINGS_EVENT_FILTER_NAME"=\"%s\" AND ",
-                                   wildcard_str_escape(filter_name));
-               }
+               str_printfa(str, SETTINGS_EVENT_FILTER_NAME"=\"%s\" AND ",
+                           wildcard_str_escape(filter_name));
        }
 }
 
 static void
 config_dump_full_append_filter(string_t *str,
-                              const struct config_filter *filter,
-                              bool write_named_filters)
+                              const struct config_filter *filter)
 {
        do {
-               config_dump_full_append_filter_query(str, filter,
-                                                    write_named_filters);
+               config_dump_full_append_filter_query(str, filter);
                filter = filter->parent;
        } while (filter != NULL);
 
@@ -470,19 +464,13 @@ config_dump_full_write_filters(struct ostream *output,
        /* the first filter is the global empty filter */
        uint32_t named_list_filter_count = 0;
        o_stream_nsend(output, "", 1);
-       o_stream_nsend(output, "", 1);
        o_stream_nsend(output, &named_list_filter_count,
                       sizeof(named_list_filter_count));
 
        string_t *str = str_new(default_pool, 128);
        for (i = 1; i < filter_count; i++) T_BEGIN {
                str_truncate(str, 0);
-               config_dump_full_append_filter(str, &filters[i]->filter, TRUE);
-               str_append_c(str, '\0');
-               o_stream_nsend(output, str_data(str), str_len(str));
-
-               str_truncate(str, 0);
-               config_dump_full_append_filter(str, &filters[i]->filter, FALSE);
+               config_dump_full_append_filter(str, &filters[i]->filter);
                str_append_c(str, '\0');
                o_stream_nsend(output, str_data(str), str_len(str));
 
@@ -517,7 +505,7 @@ static void config_dump_full_stdout_write_filter(struct dump_context *ctx)
 
        string_t *str = t_str_new(128);
        if (ctx->filter != NULL)
-               config_dump_full_append_filter(str, ctx->filter, TRUE);
+               config_dump_full_append_filter(str, ctx->filter);
        str_insert(str, 0, ":FILTER ");
        str_append_c(str, '\n');
 
index 8d40381a9133b76564bd239843504f24da2d4a4a..37028fef1d1cf742772a01653ed0731a5482c3ea 100644 (file)
@@ -97,7 +97,7 @@ static const struct {
        /* full file size is 7 bytes, which makes the first block size
           truncated, since it needs 8 bytes */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x26") // full size
+              NUM64("\x25") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -106,13 +106,12 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               "\x00\x00\x00\x00\x00\x00\x00"), // block size
          "Area too small when reading size of 'block size'" },
        /* first block size is 0, which is too small */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x27") // full size
+              NUM64("\x26") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -121,13 +120,12 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               NUM64("\x00")), // block size
          "'block name' points outside area" },
        /* first block size is 1, but full file size is too small */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x27") // full size
+              NUM64("\x26") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -136,13 +134,12 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               NUM64("\x01")), // block size
          "'block size' points outside are" },
        /* block name is not NUL-terminated */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x29") // full size
+              NUM64("\x28") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -151,7 +148,6 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               NUM64("\x01") // block size
               "N"
@@ -160,7 +156,7 @@ static const struct {
 
        /* settings count is truncated */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x2C") // full size
+              NUM64("\x2B") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -169,7 +165,6 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               NUM64("\x05") // block size
               "N\x00" // block name
@@ -178,7 +173,7 @@ static const struct {
 
        /* settings keys are truncated */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x2D") // full size
+              NUM64("\x2C") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -187,7 +182,6 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               NUM64("\x06") // block size
               "N\x00" // block name
@@ -196,7 +190,7 @@ static const struct {
 
        /* filter count is truncated */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x32") // full size
+              NUM64("\x31") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -205,7 +199,6 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               NUM64("\x0B") // block size
               "N\x00" // block name
@@ -216,7 +209,7 @@ static const struct {
 
        /* filter settings size is truncated */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x3A") // full size
+              NUM64("\x39") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -225,7 +218,6 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               NUM64("\x12") // block size
               "N\x00" // block name
@@ -237,7 +229,7 @@ static const struct {
 
        /* filter settings is truncated */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x3B") // full size
+              NUM64("\x3A") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -246,7 +238,6 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               NUM64("\x14") // block size
               "N\x00" // block name
@@ -257,7 +248,7 @@ static const struct {
          "'filter settings size' points outside area" },
        /* filter error is missing */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x48") // full size
+              NUM64("\x47") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -266,7 +257,6 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               NUM64("\x21") // block size
               "N\x00" // block name
@@ -280,7 +270,7 @@ static const struct {
          "'filter error string' points outside area" },
        /* filter error is not NUL-terminated */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x56") // full size
+              NUM64("\x55") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -289,7 +279,6 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               NUM64("\x2F") // block size
               "master_service\x00" // block name
@@ -304,7 +293,7 @@ static const struct {
          "'filter error string' points outside area" },
        /* include group count is truncated */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x59") // full size
+              NUM64("\x58") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -313,7 +302,6 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               NUM64("\x32") // block size
               "master_service\x00" // block name
@@ -329,7 +317,7 @@ static const struct {
          "Area too small when reading uint of 'include group count'" },
        /* include group count is too large */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x5A") // full size
+              NUM64("\x59") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -338,7 +326,6 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               NUM64("\x33") // block size
               "master_service\x00" // block name
@@ -354,7 +341,7 @@ static const struct {
          "'group label string' points outside area" },
        /* group label not NUL-terminated */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x5B") // full size
+              NUM64("\x5A") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -363,7 +350,6 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               NUM64("\x34") // block size
               "master_service\x00" // block name
@@ -380,7 +366,7 @@ static const struct {
          "'group label string' points outside area" },
        /* group name not NUL-terminated */
        { DATA("DOVECOT-CONFIG\t1.0\n"
-              NUM64("\x5D") // full size
+              NUM64("\x5C") // full size
               NUM32("\x00") // cache path count
               NUM32("\x0D") // all keys size
               "\x00" // 32bit padding
@@ -389,7 +375,6 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
               NUM64("\x36") // block size
               "master_service\x00" // block name
@@ -416,9 +401,8 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "F\x00" // event filter[0]
-              "F\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
-              NUM64("\x26") // block size
+              NUM64("\x28") // block size
               "N\x00" // block name
               NUM32("\x01") // settings count
               "K\x00" // setting[0] key
@@ -426,7 +410,7 @@ static const struct {
               NUM64("\x05") // filter settings size
               "\x00" // filter error string
               NUM32("\x00") // include group count
-              // 64bit padding
+              "\x00\x00" // 64bit padding
               NUM64("\x00") // filter[0] settings offset
               NUM32("\x00") // filter[0] event filter index
               "\x00"), // safety NUL
@@ -443,9 +427,8 @@ static const struct {
               NUM32("\x00") // block names count
               NUM32("\x01") // event filter count
               "\x00" // event filter[0]
-              "\x00" // override event filter[0]
               NUM32("\x00") // number of named list filter elements
-              NUM64("\x2B") // block size
+              NUM64("\x2C") // block size
               "N\x00" // block name
               NUM32("\x01") // settings count
               "K\x00" // setting[0] key
@@ -453,7 +436,7 @@ static const struct {
               NUM64("\x05") // filter settings size
               "\x00" // filter error string
               NUM32("\x00") // include group count
-              "\x00\x00\x00\x00\x00" // 64bit padding
+              "\x00\x00\x00\x00\x00\x00" // 64bit padding
               NUM64("\x00") // filter[0] settings offset
               NUM32("\x00") // filter[0] event filter index
               "\x00" // safety NUL
index af3a73738b2d6f0369016d2266f2807f7e335da6..04430ea1e97d05f791386bc80af2ebd284dfb63d 100644 (file)
@@ -104,7 +104,6 @@ struct settings_mmap_block {
 
 struct settings_mmap_event_filter {
        struct event_filter *filter;
-       struct event_filter *override_filter;
        bool is_group;
 
        uint32_t named_list_filter_count;
@@ -509,26 +508,21 @@ settings_read_filters(struct settings_mmap *mmap, const char *service_name,
                p_new(mmap->pool, struct settings_mmap_event_filter,
                      mmap->event_filters_count);
 
-       for (uint32_t i = 0; i < 2 * mmap->event_filters_count; i++) {
+       for (uint32_t i = 0; i < mmap->event_filters_count; i++) {
                struct settings_mmap_event_filter *set_filter =
-                       &mmap->event_filters[i / 2];
-               struct event_filter **filter_dest =
-                       i % 2 == 0 ? &set_filter->filter :
-                       &set_filter->override_filter;
+                       &mmap->event_filters[i];
                if (settings_block_read_str(mmap, offset, mmap->mmap_size,
                                            "filter string", &filter_string,
                                            error_r) < 0)
                        return -1;
-               if (i % 2 != 0) {
-                       if (settings_block_read_uint32(mmap, offset, mmap->mmap_size,
+               if (settings_block_read_uint32(mmap, offset, mmap->mmap_size,
                                        "named list filter element count",
                                        &set_filter->named_list_filter_count,
                                        error_r) < 0)
-                               return -1;
-               }
+                       return -1;
 
                if (filter_string[0] == '\0') {
-                       *filter_dest = EVENT_FILTER_MATCH_ALWAYS;
+                       set_filter->filter = EVENT_FILTER_MATCH_ALWAYS;
                        continue;
                }
 
@@ -556,7 +550,7 @@ settings_read_filters(struct settings_mmap *mmap, const char *service_name,
                            (strcmp(mmap->root->protocol_name, value) == 0) == op_not &&
                            (flags & SETTINGS_READ_NO_PROTOCOL_FILTER) == 0) {
                                /* protocol doesn't match */
-                               *filter_dest = EVENT_FILTER_MATCH_NEVER;
+                               set_filter->filter = EVENT_FILTER_MATCH_NEVER;
                                event_filter_unref(&tmp_filter);
                                continue;
                        }
@@ -564,7 +558,7 @@ settings_read_filters(struct settings_mmap *mmap, const char *service_name,
                if (service_name != NULL &&
                    !settings_filter_match_service(tmp_filter, service_name)) {
                        /* service name doesn't match */
-                       *filter_dest = EVENT_FILTER_MATCH_NEVER;
+                       set_filter->filter = EVENT_FILTER_MATCH_NEVER;
                        event_filter_unref(&tmp_filter);
                        continue;
                }
@@ -573,11 +567,11 @@ settings_read_filters(struct settings_mmap *mmap, const char *service_name,
                                SETTINGS_EVENT_FILTER_NAME,
                                SETTINGS_INCLUDE_GROUP_PREFIX_S);
 
-               *filter_dest = event_filter_create_with_pool(mmap->pool);
-               event_filter_register_cmp(*filter_dest, "local_name",
+               set_filter->filter = event_filter_create_with_pool(mmap->pool);
+               event_filter_register_cmp(set_filter->filter, "local_name",
                                          settings_local_name_cmp);
                pool_ref(mmap->pool);
-               event_filter_merge(*filter_dest, tmp_filter,
+               event_filter_merge(set_filter->filter, tmp_filter,
                                   EVENT_FILTER_MERGE_OP_OR);
                event_filter_unref(&tmp_filter);
        }
@@ -1378,9 +1372,6 @@ static void settings_mmap_unref(struct settings_mmap **_mmap)
                if (mmap->event_filters[i].filter != EVENT_FILTER_MATCH_ALWAYS &&
                    mmap->event_filters[i].filter != EVENT_FILTER_MATCH_NEVER)
                        event_filter_unref(&mmap->event_filters[i].filter);
-               if (mmap->event_filters[i].override_filter != EVENT_FILTER_MATCH_ALWAYS &&
-                   mmap->event_filters[i].override_filter != EVENT_FILTER_MATCH_NEVER)
-                       event_filter_unref(&mmap->event_filters[i].override_filter);
        }
        hash_table_destroy(&mmap->blocks);