static bool
mdbox_storage_autodetect(const struct mail_namespace *ns,
- struct mailbox_list_settings *set ATTR_UNUSED,
const struct mail_storage_settings *mail_set,
const char **root_path_r,
const char **inbox_path_r ATTR_UNUSED)
static bool
sdbox_storage_autodetect(const struct mail_namespace *ns,
- struct mailbox_list_settings *set ATTR_UNUSED,
const struct mail_storage_settings *mail_set,
const char **root_path_r,
const char **inbox_path_r ATTR_UNUSED)
static struct mailbox_list *imapc_list_get_fs(struct imapc_mailbox_list *list)
{
- struct mailbox_list_settings list_set;
const char *error, *dir;
if (list->list.mail_set->mail_index_path[0] == '\0')
if (dir[0] == '\0') {
/* indexes disabled */
} else if (list->index_list == NULL && !list->index_list_failed) {
- mailbox_list_settings_init_defaults(&list_set);
struct settings_instance *set_instance =
mail_storage_service_user_get_settings_instance(
list->list.ns->user->service_user);
&mail_set, &error) < 0) {
e_error(list->list.event, "%s", error);
list->index_list_failed = TRUE;
- } else if (mailbox_list_create(event, list->list.ns,
- &list_set, mail_set,
+ } else if (mailbox_list_create(event, list->list.ns, mail_set,
MAILBOX_LIST_FLAG_SECONDARY,
&list->index_list, &error) < 0) {
e_error(list->list.event,
static bool
maildir_storage_autodetect(const struct mail_namespace *ns,
- struct mailbox_list_settings *set ATTR_UNUSED,
const struct mail_storage_settings *mail_set,
const char **root_path_r,
const char **inbox_path_r ATTR_UNUSED)
static bool
mbox_storage_autodetect(const struct mail_namespace *ns,
- struct mailbox_list_settings *set ATTR_UNUSED,
const struct mail_storage_settings *mail_set,
const char **root_path_r, const char **inbox_path_r)
{
must be returned in that case. inbox_path_r is NULL already when
calling, and means the default INBOX path is used. */
bool (*autodetect)(const struct mail_namespace *ns,
- struct mailbox_list_settings *set,
const struct mail_storage_settings *mail_set,
const char **root_path_r, const char **inbox_path_r);
static struct mail_storage *
mail_storage_autodetect(const struct mail_namespace *ns,
- struct mailbox_list_settings *set,
const struct mail_storage_settings *mail_set,
const char **root_path_override,
const char **inbox_path_override)
classes = array_get(&mail_storage_classes, &count);
for (i = 0; i < count; i++) {
if (classes[i]->v.autodetect != NULL) {
- if (classes[i]->v.autodetect(ns, set, mail_set,
+ if (classes[i]->v.autodetect(ns, mail_set,
&root_path, &inbox_path)) {
*root_path_override = root_path;
*inbox_path_override = inbox_path;
static struct mail_storage *
mail_storage_get_class(struct mail_namespace *ns, const char *driver,
const struct mail_storage_settings *mail_set,
- struct mailbox_list_settings *list_set,
const char **root_path_override,
const char **inbox_path_override, const char **error_r)
{
if (storage_class != NULL)
return storage_class;
- storage_class = mail_storage_autodetect(ns, list_set, mail_set,
+ storage_class = mail_storage_autodetect(ns, mail_set,
root_path_override,
inbox_path_override);
if (storage_class != NULL)
struct mail_storage *storage_class,
struct event *set_event,
enum mail_storage_flags flags,
- struct mailbox_list_settings *list_set,
const char *root_path_override,
const char *inbox_path_override,
const char **error_r)
struct event *event = event_create(ns->user->event);
event_add_str(event, "namespace", ns->set->name);
- int ret = mailbox_list_create(event, ns, list_set,
- mail_set, list_flags, &list, error_r);
+ int ret = mailbox_list_create(event, ns, mail_set, list_flags,
+ &list, error_r);
if (ret < 0) {
*error_r = t_strdup_printf("mailbox_list_layout %s: %s",
mail_set->mailbox_list_layout, *error_r);
{
struct mail_storage *storage_class, *storage = NULL;
const struct mail_storage_settings *mail_set;
- struct mailbox_list_settings list_set;
const char *p, *data, *driver = NULL;
const char *inbox_path_override = NULL;
const char *root_path_override = NULL;
return -1;
data = mail_set->mail_location;
- mailbox_list_settings_init_defaults(&list_set);
if ((flags & MAIL_STORAGE_FLAG_SHARED_DYNAMIC) != 0) {
/* internal shared namespace */
driver = MAIL_SHARED_STORAGE_NAME;
root_path_override = ns->user->set->base_dir;
} else {
mail_storage_set_autodetection(&data, &driver);
- if (mailbox_list_settings_parse(ns->user, data, &list_set,
- error_r) < 0) {
- settings_free(mail_set);
- return -1;
- }
}
- storage_class = mail_storage_get_class(ns, driver, mail_set, &list_set,
+ storage_class = mail_storage_get_class(ns, driver, mail_set,
&root_path_override,
&inbox_path_override, error_r);
settings_free(mail_set);
if (ns->list == NULL) {
/* first storage for namespace */
if (mail_storage_create_list(ns, storage_class, set_event,
- flags, &list_set,
- root_path_override,
+ flags, root_path_override,
inbox_path_override, error_r) < 0)
return -1;
if ((storage_class->class_flags & MAIL_STORAGE_CLASS_FLAG_NO_ROOT) == 0) {
/* private: */
pool_t pool;
struct mail_namespace *ns;
- struct mailbox_list_settings set;
const struct mail_storage_settings *mail_set;
enum mailbox_list_flags flags;
void mailbox_lists_init(void);
void mailbox_lists_deinit(void);
-void mailbox_list_settings_init_defaults(struct mailbox_list_settings *set_r);
-int mailbox_list_settings_parse(struct mail_user *user, const char *data,
- struct mailbox_list_settings *set_r,
- const char **error_r);
const char *
mailbox_list_escape_name_params(const char *vname, const char *ns_prefix,
char ns_sep, char list_sep, char escape_char,
}
int mailbox_list_create(struct event *event, struct mail_namespace *ns,
- const struct mailbox_list_settings *set ATTR_UNUSED,
const struct mail_storage_settings *mail_set,
enum mailbox_list_flags flags,
struct mailbox_list **list_r, const char **error_r)
return 0;
}
-void mailbox_list_settings_init_defaults(struct mailbox_list_settings *set_r)
-{
- i_zero(set_r);
-}
-
-static int
-mailbox_list_settings_parse_full(struct mail_user *user ATTR_UNUSED,
- const char *data ATTR_UNUSED,
- bool expand_home ATTR_UNUSED,
- struct mailbox_list_settings *set_r,
- const char **error_r)
-{
- *error_r = NULL;
-
- mailbox_list_settings_init_defaults(set_r);
- if (*data == '\0')
- return 0;
-
- *error_r = "Unknown settings";
- return -1;
-}
-
-int mailbox_list_settings_parse(struct mail_user *user, const char *data,
- struct mailbox_list_settings *set_r,
- const char **error_r)
-{
- return mailbox_list_settings_parse_full(user, data, TRUE,
- set_r, error_r);
-}
-
const char *mailbox_list_get_unexpanded_path(struct mailbox_list *list,
enum mailbox_list_path_type type)
{
return list->name;
}
-const struct mailbox_list_settings *
-mailbox_list_get_settings(const struct mailbox_list *list)
-{
- return &list->set;
-}
-
enum mailbox_list_flags mailbox_list_get_flags(const struct mailbox_list *list)
{
return list->flags;
MAILBOX_LIST_GET_STORAGE_FLAG_SAVEONLY = BIT(0),
};
-struct mailbox_list_settings {
-};
-
struct mailbox_permissions {
/* The actual uid/gid of the mailbox */
uid_t file_uid;
mailbox_list_find_class(const char *driver);
int mailbox_list_create(struct event *event, struct mail_namespace *ns,
- const struct mailbox_list_settings *set,
const struct mail_storage_settings *mail_set,
enum mailbox_list_flags flags,
struct mailbox_list **list_r, const char **error_r);
const char *
mailbox_list_get_driver_name(const struct mailbox_list *list) ATTR_PURE;
-const struct mailbox_list_settings *
-mailbox_list_get_settings(const struct mailbox_list *list) ATTR_PURE;
enum mailbox_list_flags
mailbox_list_get_flags(const struct mailbox_list *list) ATTR_PURE;
struct mail_namespace *