From: Timo Sirainen Date: Wed, 28 Aug 2024 00:23:23 +0000 (+0300) Subject: virtual: Convert plugin settings to regular settings X-Git-Tag: 2.4.0~371 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=71cd69c54f10d628472744437e966c289c1f28a9;p=thirdparty%2Fdovecot%2Fcore.git virtual: Convert plugin settings to regular settings --- diff --git a/src/plugins/virtual/virtual-settings.c b/src/plugins/virtual/virtual-settings.c index 7ce774b548..5d5605bf15 100644 --- a/src/plugins/virtual/virtual-settings.c +++ b/src/plugins/virtual/virtual-settings.c @@ -5,12 +5,18 @@ #include "mail-storage-settings.h" #include "virtual-settings.h" +#undef DEF +#define DEF(type, name) \ + SETTING_DEFINE_STRUCT_##type(#name, name, struct virtual_settings) static const struct setting_define virtual_setting_defines[] = { { .type = SET_FILTER_NAME, .key = "virtual" }, + DEF(UINT, virtual_max_open_mailboxes), + SETTING_DEFINE_LIST_END }; static const struct virtual_settings virtual_default_settings = { + .virtual_max_open_mailboxes = 64, }; static const struct setting_keyvalue virtual_default_settings_keyvalue[] = { diff --git a/src/plugins/virtual/virtual-settings.h b/src/plugins/virtual/virtual-settings.h index 233d112cf5..e91d995d66 100644 --- a/src/plugins/virtual/virtual-settings.h +++ b/src/plugins/virtual/virtual-settings.h @@ -3,6 +3,8 @@ struct virtual_settings { pool_t pool; + + unsigned int virtual_max_open_mailboxes; }; extern const struct setting_parser_info virtual_setting_parser_info; diff --git a/src/plugins/virtual/virtual-storage.c b/src/plugins/virtual/virtual-storage.c index 75cb509257..d5433968b2 100644 --- a/src/plugins/virtual/virtual-storage.c +++ b/src/plugins/virtual/virtual-storage.c @@ -7,12 +7,14 @@ #include "llist.h" #include "mkdir-parents.h" #include "unlink-directory.h" +#include "settings.h" #include "index-mail.h" #include "mail-copy.h" #include "mail-search.h" #include "mailbox-list-private.h" #include "virtual-plugin.h" #include "virtual-transaction.h" +#include "virtual-settings.h" #include "virtual-storage.h" #include "mailbox-list-notify.h" @@ -21,8 +23,6 @@ #include #include -#define VIRTUAL_DEFAULT_MAX_OPEN_MAILBOXES 64 - #define VIRTUAL_BACKEND_CONTEXT(obj) \ MODULE_CONTEXT_REQUIRE(obj, virtual_backend_storage_module) @@ -92,15 +92,14 @@ virtual_storage_create(struct mail_storage *_storage, { struct virtual_storage *storage = container_of(_storage, struct virtual_storage, storage); - const char *value; + const struct virtual_settings *set; - value = mail_user_plugin_getenv(_storage->user, "virtual_max_open_mailboxes"); - if (value == NULL) - storage->max_open_mailboxes = VIRTUAL_DEFAULT_MAX_OPEN_MAILBOXES; - else if (str_to_uint(value, &storage->max_open_mailboxes) < 0) { - *error_r = "Invalid virtual_max_open_mailboxes setting"; + if (settings_get(_storage->event, &virtual_setting_parser_info, 0, + &set, error_r) < 0) return -1; - } + + storage->max_open_mailboxes = set->virtual_max_open_mailboxes; + settings_free(set); return 0; }