#include <unistd.h> #include <dirent.h> #include <sys/stat.h> #define VIRTUAL_LIST_CONTEXT(obj) \ MODULE_CONTEXT(obj, virtual_mailbox_list_module) struct virtual_mailbox_list { union mailbox_list_module_context module_ctx; }; extern struct mail_storage virtual_storage; extern struct mailbox virtual_mailbox; struct virtual_storage_module virtual_storage_module = MODULE_CONTEXT_INIT(&mail_storage_module_register); static MODULE_CONTEXT_DEFINE_INIT(virtual_mailbox_list_module, &mailbox_list_module_register); static bool ns_is_visible(struct mail_namespace *ns) { return (ns->flags & NAMESPACE_FLAG_LIST_PREFIX) != 0 || (ns->flags & NAMESPACE_FLAG_LIST_CHILDREN) != 0 || (ns->flags & NAMESPACE_FLAG_HIDDEN) == 0; } static const char *get_user_visible_mailbox_name(struct mailbox *box) { if (ns_is_visible(box->list->ns)) return box->vname; else {
/* Copyright (c) 2006-2014 Dovecot authors, see the included COPYING file */ #include "lib.h" #include "ioloop.h" #include "hash.h" #include "str.h" #include "mail-index-view-private.h" #include "mail-storage-hooks.h" #include "mail-storage-private.h" #include "mailbox-list-index-storage.h" #include "mailbox-list-index-sync.h" #define MAILBOX_LIST_INDEX_REFRESH_DELAY_MSECS 1000 struct mailbox_list_index_module mailbox_list_index_module = MODULE_CONTEXT_INIT(&mailbox_list_module_register); void mailbox_list_index_set_index_error(struct mailbox_list *list) { struct mailbox_list_index *ilist = INDEX_LIST_CONTEXT(list); mailbox_list_set_internal_error(list); mail_index_reset_error(ilist->index); } static void mailbox_list_index_init_pool(struct mailbox_list_index *ilist) { ilist->mailbox_pool = pool_alloconly_create("mailbox list index", 4096); hash_table_create_direct(&ilist->mailbox_names, ilist->mailbox_pool, 0); hash_table_create_direct(&ilist->mailbox_hash, ilist->mailbox_pool, 0); }
struct stats_storage { union mail_storage_module_context module_ctx; struct mail_storage_callbacks old_callbacks; void *old_context; }; struct stats_mailbox { union mailbox_module_context module_ctx; }; const char *stats_plugin_version = DOVECOT_ABI_VERSION; struct stats_user_module stats_user_module = MODULE_CONTEXT_INIT(&mail_user_module_register); static MODULE_CONTEXT_DEFINE_INIT(stats_storage_module, &mail_storage_module_register); static bool proc_io_disabled = FALSE; static int proc_io_fd = -1; static struct stats_connection *global_stats_conn = NULL; static struct mail_user *stats_global_user = NULL; static unsigned int stats_user_count = 0; static void session_stats_refresh_timeout(struct mail_user *user); static void trans_stats_dec(struct mailbox_transaction_stats *dest, const struct mailbox_transaction_stats *src) {