virtual-storage.c revision 6469cf211a57433335641725dc236ebb2b9fdd3b
c1252a5812eb11fcb81508b9ed37597a5bc84100Timo Sirainen/* Copyright (c) 2008-2011 Dovecot authors, see the included COPYING file */
c1252a5812eb11fcb81508b9ed37597a5bc84100Timo Sirainenextern struct virtual_mailbox_vfuncs virtual_mailbox_vfuncs;
c1252a5812eb11fcb81508b9ed37597a5bc84100Timo Sirainenstruct virtual_storage_module virtual_storage_module =
c1252a5812eb11fcb81508b9ed37597a5bc84100Timo Sirainen MODULE_CONTEXT_INIT(&mail_storage_module_register);
c1252a5812eb11fcb81508b9ed37597a5bc84100Timo Sirainenstatic bool ns_is_visible(struct mail_namespace *ns)
c1252a5812eb11fcb81508b9ed37597a5bc84100Timo Sirainen return (ns->flags & NAMESPACE_FLAG_LIST_PREFIX) != 0 ||
c1252a5812eb11fcb81508b9ed37597a5bc84100Timo Sirainen (ns->flags & NAMESPACE_FLAG_LIST_CHILDREN) != 0 ||
c1252a5812eb11fcb81508b9ed37597a5bc84100Timo Sirainenstatic const char *get_user_visible_mailbox_name(struct mailbox *box)
09caccbfa7a47fbcd428b0618dfdf46d1679390aTimo Sirainenvoid virtual_box_copy_error(struct mailbox *dest, struct mailbox *src)
01f54478a7c69b88ab13840c99bbab19a0d7d754Timo Sirainen str = t_strdup_printf("%s (for backend mailbox %s)", str, name);
c1252a5812eb11fcb81508b9ed37597a5bc84100Timo Sirainen mail_storage_set_error(dest->storage, error, str);
01f54478a7c69b88ab13840c99bbab19a0d7d754Timo Sirainenstatic struct mail_storage *virtual_storage_alloc(void)
c1252a5812eb11fcb81508b9ed37597a5bc84100Timo Sirainen pool = pool_alloconly_create("virtual storage", 1024);
c1252a5812eb11fcb81508b9ed37597a5bc84100Timo Sirainen storage = p_new(pool, struct virtual_storage, 1);
c1252a5812eb11fcb81508b9ed37597a5bc84100Timo Sirainenvirtual_storage_get_list_settings(const struct mail_namespace *ns ATTR_UNUSED,
5140f38cb347593aa60a44ab4b0fe60a0b17f808Timo Sirainen set->subscription_fname = VIRTUAL_SUBSCRIPTION_FILE_NAME;
c25356d5978632df6203437e1953bcb29e0c736fTimo Sirainenvirtual_backend_box_lookup_name(struct virtual_mailbox *mbox, const char *name)
unsigned int i, count;
for (i = 0; i < count; i++) {
return bboxes[i];
return NULL;
struct virtual_backend_box *
unsigned int i, count;
if (mailbox_id == 0)
return NULL;
for (i = 0; i < count; i++) {
return bboxes[i];
return NULL;
const char *name)
const char *const *names;
unsigned int i, count;
for (i = 0; i < count; i++) {
return TRUE;
return FALSE;
const char *mailbox;
unsigned int i, count;
int ret;
for (i = 0; i < count; ) {
if (ret <= 0) {
if (ret < 0)
if (i == count)
static struct mailbox *
unsigned int i, count;
for (i = 0; i < count; i++) {
int ret = 0;
if (ret == 0) {
if (ret < 0) {
sizeof(struct virtual_mail_index_record),
sizeof(uint32_t));
unsigned int i, count;
for (i = 0; i < count; i++) {
unsigned int n, i, count;
unsigned int n, i, count;
bool only_with_msgs)
unsigned int i, count;
for (i = 0; i < count; i++) {
return TRUE;
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,