From: Timo Sirainen Date: Thu, 10 Apr 2025 12:09:36 +0000 (+0300) Subject: lib-settings, config: Remove unused override event filter X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a128186e416ff1ff1ec8b69295a0461176131ee1;p=thirdparty%2Fdovecot%2Fcore.git lib-settings, config: Remove unused override event filter --- diff --git a/src/config/config-dump-full.c b/src/config/config-dump-full.c index a213858888..245667afc9 100644 --- a/src/config/config-dump-full.c +++ b/src/config/config-dump-full.c @@ -46,7 +46,6 @@ <32bit: event filter strings count> Repeat for "event filter strings count": - <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'); diff --git a/src/lib-master/test-master-service-settings.c b/src/lib-master/test-master-service-settings.c index 8d40381a91..37028fef1d 100644 --- a/src/lib-master/test-master-service-settings.c +++ b/src/lib-master/test-master-service-settings.c @@ -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 diff --git a/src/lib-settings/settings.c b/src/lib-settings/settings.c index af3a73738b..04430ea1e9 100644 --- a/src/lib-settings/settings.c +++ b/src/lib-settings/settings.c @@ -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);