.pool_offset1 = 1 + offsetof(struct mail_driver_settings, pool),
};
+#undef DEF
+#define DEF(type, name) \
+ SETTING_DEFINE_STRUCT_##type(#name, name, struct mailbox_list_layout_settings)
+
+static const struct setting_define mailbox_list_layout_setting_defines[] = {
+ DEF(STR, mailbox_list_layout),
+ SETTING_DEFINE_LIST_END
+};
+
+const struct mailbox_list_layout_settings mailbox_list_layout_default_settings = {
+ .mailbox_list_layout = "fs",
+};
+
+const struct setting_parser_info mailbox_list_layout_setting_parser_info = {
+ .name = "mailbox_list_layout",
+
+ .defines = mailbox_list_layout_setting_defines,
+ .defaults = &mailbox_list_layout_default_settings,
+
+ .struct_size = sizeof(struct mailbox_list_layout_settings),
+ .pool_offset1 = 1 + offsetof(struct mailbox_list_layout_settings, pool),
+};
+
#undef DEF
#define DEF(type, name) \
SETTING_DEFINE_STRUCT_##type("mailbox_"#name, name, struct mailbox_settings)
const char *mail_driver;
};
+struct mailbox_list_layout_settings {
+ pool_t pool;
+ const char *mailbox_list_layout;
+};
+
struct mail_storage_settings {
pool_t pool;
const char *mail_driver;
extern const struct setting_parser_info mail_user_setting_parser_info;
extern const struct setting_parser_info mail_namespace_setting_parser_info;
extern const struct setting_parser_info mail_driver_setting_parser_info;
+extern const struct setting_parser_info mailbox_list_layout_setting_parser_info;
extern const struct setting_parser_info mail_storage_setting_parser_info;
extern const struct setting_parser_info mailbox_setting_parser_info;
extern const struct mail_namespace_settings mail_namespace_default_settings;
SETTINGS_OVERRIDE_TYPE_CODE);
}
- const struct mail_storage_settings *mail_set;
- if (settings_get(set_event, &mail_storage_setting_parser_info, 0,
- &mail_set, error_r) < 0) {
+ const struct mailbox_list_layout_settings *layout_set;
+ if (settings_get(set_event, &mailbox_list_layout_setting_parser_info, 0,
+ &layout_set, error_r) < 0) {
event_unref(&set_event);
return -1;
}
event_unref(&set_event);
set_event = set_event2;
settings_event_add_filter_name(set_event, t_strdup_printf("layout_%s",
- t_str_lcase(mail_set->mailbox_list_layout)));
- settings_free(mail_set);
+ t_str_lcase(layout_set->mailbox_list_layout)));
+ settings_free(layout_set);
if (root_path_override != NULL) {
mail_storage_create_ns_instance(ns, set_event);
SETTINGS_OVERRIDE_TYPE_CODE);
}
+ const struct mail_storage_settings *mail_set;
if (settings_get(set_event, &mail_storage_setting_parser_info, 0,
&mail_set, error_r) < 0) {
event_unref(&set_event);