}
i_assert(ilist->has_backing_store || dir != NULL);
+ i_assert(list->set.list_index_fname != NULL);
ilist->path = dir == NULL ? "(in-memory mailbox list index)" :
- p_strdup_printf(list->pool, "%s/"MAILBOX_LIST_INDEX_PREFIX, dir);
- ilist->index = mail_index_alloc(dir, MAILBOX_LIST_INDEX_PREFIX);
+ p_strdup_printf(list->pool, "%s/%s", dir, list->set.list_index_fname);
+ ilist->index = mail_index_alloc(dir, list->set.list_index_fname);
ilist->ext_id = mail_index_ext_register(ilist->index, "list",
sizeof(struct mailbox_list_index_header),
#include <sys/time.h>
#define MAILBOX_LIST_INDEX_HIERARHCY_SEP '~'
-#define MAILBOX_LIST_INDEX_PREFIX "dovecot.list.index"
#define INDEX_LIST_CONTEXT(obj) \
MODULE_CONTEXT(obj, mailbox_list_index_module)
#define MAILBOX_LIST_NAME_INDEX "index"
#define MAILBOX_LIST_NAME_NONE "none"
+#define MAILBOX_LIST_INDEX_DEFAULT_PREFIX "dovecot.list.index"
#define MAILBOX_LOG_FILE_NAME "dovecot.mailbox.log"
#define T_MAILBOX_LIST_ERR_NOT_FOUND(list, name) \
list->set.inbox_path = p_strdup(list->pool, set->inbox_path);
list->set.subscription_fname =
p_strdup(list->pool, set->subscription_fname);
+ list->set.list_index_fname =
+ p_strdup(list->pool, set->list_index_fname);
list->set.maildir_name =
p_strdup(list->pool, set->maildir_name);
list->set.mailbox_dir_name =
memset(set_r, 0, sizeof(*set_r));
set_r->mailbox_dir_name = "";
set_r->maildir_name = "";
+ set_r->list_index_fname = MAILBOX_LIST_INDEX_DEFAULT_PREFIX;
}
static int
dest = &set_r->maildir_name;
else if (strcmp(key, "MAILBOXDIR") == 0)
dest = &set_r->mailbox_dir_name;
+ else if (strcmp(key, "LISTINDEX") == 0)
+ dest = &set_r->list_index_fname;
else if (strcmp(key, "FULLDIRNAME") == 0) {
set_r->index_control_use_maildir_name = TRUE;
dest = &set_r->maildir_name;
const char *inbox_path;
const char *subscription_fname;
+ const char *list_index_fname;
/* If non-empty, it means that mails exist in a maildir_name
subdirectory. eg. if you have a directory containing directories: