#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[] = {
#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"
#include <dirent.h>
#include <sys/stat.h>
-#define VIRTUAL_DEFAULT_MAX_OPEN_MAILBOXES 64
-
#define VIRTUAL_BACKEND_CONTEXT(obj) \
MODULE_CONTEXT_REQUIRE(obj, virtual_backend_storage_module)
{
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;
}