]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Add auth_static_settings for static userdb and passdb
authorMarkus Valentin <markus.valentin@open-xchange.com>
Fri, 1 Mar 2024 16:41:49 +0000 (17:41 +0100)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:12 +0000 (12:34 +0200)
src/auth/auth-settings.c
src/auth/auth-settings.h

index 1ef3239c15f9c8d6ae1e46a9295dd0af63409f2e..a45d861d35ab9a3a05735de4512fd37768791fab 100644 (file)
@@ -298,6 +298,33 @@ const struct setting_parser_info auth_userdb_post_setting_parser_info = {
        .pool_offset1 = 1 + offsetof(struct auth_userdb_post_settings, pool),
 };
 
+#undef DEF
+#define DEF(type, name) \
+       SETTING_DEFINE_STRUCT_##type(#name, name, struct auth_static_settings)
+
+static const struct setting_define auth_static_setting_defines[] = {
+       { .type = SET_FILTER_NAME, .key = "passdb_static", },
+       { .type = SET_FILTER_NAME, .key = "userdb_static", },
+       DEF(STR, passdb_static_password),
+       DEF(BOOL, userdb_static_allow_all_users),
+
+       SETTING_DEFINE_LIST_END
+};
+
+static const struct auth_static_settings auth_static_default_settings = {
+       .passdb_static_password = "",
+       .userdb_static_allow_all_users = FALSE,
+};
+
+const struct setting_parser_info auth_static_setting_parser_info = {
+       .name = "auth_static",
+
+       .defines = auth_static_setting_defines,
+       .defaults = &auth_static_default_settings,
+
+       .struct_size = sizeof(struct auth_static_settings),
+       .pool_offset1 = 1 + offsetof(struct auth_static_settings, pool),
+};
 
 /* we're kind of kludging here to avoid "auth_" prefix in the struct fields */
 #undef DEF
index b8488545115af2b19cb94f8053f438b57df57266..f9cd52ce69d4b8939d1a04d561da5d48957eaebb 100644 (file)
@@ -125,8 +125,15 @@ struct auth_settings {
        const struct ip_addr *proxy_self_ips;
 };
 
+struct auth_static_settings {
+       pool_t pool;
+       const char *passdb_static_password;
+       bool userdb_static_allow_all_users;
+};
+
 extern const struct setting_parser_info auth_setting_parser_info;
 extern const struct setting_parser_info auth_passdb_setting_parser_info;
+extern const struct setting_parser_info auth_static_setting_parser_info;
 extern const struct setting_parser_info auth_passdb_pre_setting_parser_info;
 extern const struct setting_parser_info auth_passdb_post_setting_parser_info;
 extern const struct setting_parser_info auth_userdb_setting_parser_info;