From: Timo Sirainen Date: Tue, 4 Mar 2025 14:22:52 +0000 (+0200) Subject: lib-settings: Compare local_name as DNS wildcards X-Git-Tag: 2.4.1~104 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b7d2473d3aec649cc4d3eb347d2533eff196533b;p=thirdparty%2Fdovecot%2Fcore.git lib-settings: Compare local_name as DNS wildcards --- diff --git a/src/lib-auth-client/Makefile.am b/src/lib-auth-client/Makefile.am index 90374e53c7..04e35c3b44 100644 --- a/src/lib-auth-client/Makefile.am +++ b/src/lib-auth-client/Makefile.am @@ -33,6 +33,7 @@ noinst_PROGRAMS = $(test_programs) test_libs = \ $(noinst_LTLIBRARIES) \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-var-expand/libvar_expand.la \ ../lib-test/libtest.la \ ../lib/liblib.la \ @@ -41,6 +42,7 @@ test_libs = \ test_deps = \ $(noinst_LTLIBRARIES) \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-var-expand/libvar_expand.la \ ../lib-test/libtest.la \ ../lib/liblib.la diff --git a/src/lib-dcrypt/Makefile.am b/src/lib-dcrypt/Makefile.am index d9343e6b62..d84dffb0e7 100644 --- a/src/lib-dcrypt/Makefile.am +++ b/src/lib-dcrypt/Makefile.am @@ -61,6 +61,7 @@ LIBDOVECOT_TEST_DEPS = \ ../lib-ssl-iostream/libssl_iostream.la \ ../lib-json/libjson.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-test/libtest.la \ ../lib/liblib.la LIBDOVECOT_TEST = \ diff --git a/src/lib-dict-extra/Makefile.am b/src/lib-dict-extra/Makefile.am index 1ec49d9ac3..76010ec4b5 100644 --- a/src/lib-dict-extra/Makefile.am +++ b/src/lib-dict-extra/Makefile.am @@ -32,6 +32,7 @@ test_libs = \ ../lib-test/libtest.la \ ../lib-dict/libdict.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-var-expand/libvar_expand.la \ ../lib/liblib.la diff --git a/src/lib-dict/Makefile.am b/src/lib-dict/Makefile.am index aa09941af6..74ce3e481f 100644 --- a/src/lib-dict/Makefile.am +++ b/src/lib-dict/Makefile.am @@ -55,6 +55,7 @@ noinst_PROGRAMS = $(test_programs) test_libs = \ libdict.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-var-expand/libvar_expand.la \ ../lib-test/libtest.la \ ../lib/liblib.la diff --git a/src/lib-fs/Makefile.am b/src/lib-fs/Makefile.am index bbde3d00b8..c663688896 100644 --- a/src/lib-fs/Makefile.am +++ b/src/lib-fs/Makefile.am @@ -52,6 +52,7 @@ test_deps = \ $(noinst_LTLIBRARIES) \ ../lib-dict/libdict.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-var-expand/libvar_expand.la \ ../lib-test/libtest.la \ ../lib/liblib.la diff --git a/src/lib-http/Makefile.am b/src/lib-http/Makefile.am index bafefec4ec..a492e16889 100644 --- a/src/lib-http/Makefile.am +++ b/src/lib-http/Makefile.am @@ -81,6 +81,7 @@ noinst_PROGRAMS = $(test_programs) $(test_nocheck_programs) test_libs = \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-var-expand/libvar_expand.la \ ../lib-test/libtest.la \ ../lib/liblib.la \ @@ -90,6 +91,7 @@ test_deps = \ $(noinst_LTLIBRARIES) \ ../lib-test/libtest.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-var-expand/libvar_expand.la \ ../lib/liblib.la diff --git a/src/lib-imap-client/Makefile.am b/src/lib-imap-client/Makefile.am index da22a85140..6c6a84bc6e 100644 --- a/src/lib-imap-client/Makefile.am +++ b/src/lib-imap-client/Makefile.am @@ -45,6 +45,7 @@ test_deps = \ ../lib-otp/libotp.la \ ../lib-json/libjson.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-var-expand/libvar_expand.la \ ../lib-test/libtest.la \ ../lib/liblib.la diff --git a/src/lib-login/Makefile.am b/src/lib-login/Makefile.am index 61c7e68321..08a2f30ee1 100644 --- a/src/lib-login/Makefile.am +++ b/src/lib-login/Makefile.am @@ -35,6 +35,7 @@ test_libs = \ ../lib-dns/libdns.la \ ../lib-ssl-iostream/libssl_iostream.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-var-expand/libvar_expand.la \ ../lib-test/libtest.la \ ../lib/liblib.la \ @@ -48,6 +49,7 @@ test_deps = \ ../lib-dns/libdns.la \ ../lib-ssl-iostream/libssl_iostream.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-var-expand/libvar_expand.la \ ../lib-test/libtest.la \ ../lib/liblib.la diff --git a/src/lib-master/Makefile.am b/src/lib-master/Makefile.am index bb52e06e10..f4b22d1484 100644 --- a/src/lib-master/Makefile.am +++ b/src/lib-master/Makefile.am @@ -55,6 +55,7 @@ test_deps = \ libmaster.la \ ../lib-ssl-iostream/libssl_iostream.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-var-expand/libvar_expand.la \ ../lib-test/libtest.la \ ../lib-dns-client/libdns-client.la \ diff --git a/src/lib-oauth2/Makefile.am b/src/lib-oauth2/Makefile.am index 7f29a5488a..3f5c577e19 100644 --- a/src/lib-oauth2/Makefile.am +++ b/src/lib-oauth2/Makefile.am @@ -45,6 +45,7 @@ test_libs = \ ../lib-auth-client/libauth-client.la \ ../lib-dict/libdict.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-var-expand/libvar_expand.la \ ../lib-test/libtest.la \ ../lib/liblib.la \ @@ -62,6 +63,7 @@ test_deps = \ ../lib-auth-client/libauth-client.la \ ../lib-dict/libdict.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-var-expand/libvar_expand.la \ ../lib-test/libtest.la \ ../lib/liblib.la diff --git a/src/lib-program-client/Makefile.am b/src/lib-program-client/Makefile.am index 561188c5d5..b2dd804463 100644 --- a/src/lib-program-client/Makefile.am +++ b/src/lib-program-client/Makefile.am @@ -37,6 +37,7 @@ test_libs = \ ../lib-test/libtest.la \ ../lib-mail/libmail.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-charset/libcharset.la \ ../lib-var-expand/libvar_expand.la \ ../lib/liblib.la \ diff --git a/src/lib-settings/Makefile.am b/src/lib-settings/Makefile.am index f02649a9a4..06c092fb53 100644 --- a/src/lib-settings/Makefile.am +++ b/src/lib-settings/Makefile.am @@ -3,6 +3,7 @@ noinst_LTLIBRARIES = libsettings.la AM_CPPFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/lib-test \ + -I$(top_srcdir)/src/lib-dns \ -I$(top_srcdir)/src/lib-var-expand libsettings_la_SOURCES = \ @@ -38,6 +39,7 @@ noinst_PROGRAMS = $(test_programs) test_libs = \ libsettings.la \ ../lib-var-expand/libvar_expand.la \ + ../lib-dns/libdns.la \ ../lib-test/libtest.la \ ../lib/liblib.la diff --git a/src/lib-settings/settings.c b/src/lib-settings/settings.c index 7dd2b1a632..ec60f7ad08 100644 --- a/src/lib-settings/settings.c +++ b/src/lib-settings/settings.c @@ -9,6 +9,7 @@ #include "event-filter-private.h" #include "wildcard-match.h" #include "mmap-util.h" +#include "dns-util.h" #include "settings.h" #include "var-expand.h" @@ -198,6 +199,11 @@ static unsigned int path_element_count(const char *key) return count; } +static bool settings_local_name_cmp(const char *value, const char *wanted_value) +{ + return dns_match_wildcard(value, wanted_value) == 0; +} + static void settings_override_free(struct settings_override *override) { event_filter_unref(&override->filter); @@ -433,6 +439,8 @@ settings_read_filters(struct settings_mmap *mmap, const char *service_name, SETTINGS_INCLUDE_GROUP_PREFIX_S); *filter_dest = event_filter_create_with_pool(mmap->pool); + event_filter_register_cmp(*filter_dest, "local_name", + settings_local_name_cmp); pool_ref(mmap->pool); event_filter_merge(*filter_dest, tmp_filter, EVENT_FILTER_MERGE_OP_OR); diff --git a/src/lib-smtp/Makefile.am b/src/lib-smtp/Makefile.am index d8468ac6e5..a93bee4d51 100644 --- a/src/lib-smtp/Makefile.am +++ b/src/lib-smtp/Makefile.am @@ -112,6 +112,7 @@ test_libs = \ ../lib-auth-client/libauth-client.la \ ../lib-ssl-iostream/libssl_iostream.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-sasl/libsasl.la \ ../lib-auth/libauth.la \ ../lib-otp/libotp.la \ @@ -132,6 +133,7 @@ test_deps = \ ../lib-auth-client/libauth-client.la \ ../lib-ssl-iostream/libssl_iostream.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-sasl/libsasl.la \ ../lib-auth/libauth.la \ ../lib-json/libjson.la \ diff --git a/src/lib-ssl-iostream/Makefile.am b/src/lib-ssl-iostream/Makefile.am index 4bcc60bcf5..0a25aa8e66 100644 --- a/src/lib-ssl-iostream/Makefile.am +++ b/src/lib-ssl-iostream/Makefile.am @@ -45,6 +45,7 @@ test_libs = \ $(module_LTLIBRARIES) \ $(noinst_LTLIBRARIES) \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-var-expand/libvar_expand.la \ ../lib-test/libtest.la \ ../lib/liblib.la diff --git a/src/lib-var-expand-crypt/Makefile.am b/src/lib-var-expand-crypt/Makefile.am index 8f829bcc02..d62a948d4f 100644 --- a/src/lib-var-expand-crypt/Makefile.am +++ b/src/lib-var-expand-crypt/Makefile.am @@ -25,6 +25,7 @@ test_libs = \ ../lib-dcrypt/libdcrypt.la \ ../lib-var-expand/libvar_expand.la \ ../lib-settings/libsettings.la \ + ../lib-dns/libdns.la \ ../lib-test/libtest.la \ $(DLLIB)