mail-storage.c revision 037ab1d543b1a6927adbd3297663e2c82f60f3fa
96c4ae4f195842fce91fb4749faeb7f31a3cb9c6vboxsync/* Copyright (c) 2002-2008 Dovecot authors, see the included COPYING file */
96c4ae4f195842fce91fb4749faeb7f31a3cb9c6vboxsync/* Message to show to users when critical error occurs */
96c4ae4f195842fce91fb4749faeb7f31a3cb9c6vboxsync "Internal error occurred. Refer to server log for more information."
96c4ae4f195842fce91fb4749faeb7f31a3cb9c6vboxsync#define CRITICAL_MSG_STAMP CRITICAL_MSG " [%Y-%m-%d %H:%M:%S]"
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsyncstruct mail_storage_module_register mail_storage_module_register = { 0 };
583e1de06ea86fea23b026fcb8aa2b0c281d7e54vboxsyncstruct mail_module_register mail_module_register = { 0 };
fe06619ae576367ff3568e6abd99fb8ad28cc73avboxsyncstruct mail_storage_mail_index_module mail_storage_mail_index_module =
f32de6c198a491c28ace2b4c53f8d04a79fd6d69vboxsyncvoid (*hook_mail_storage_created)(struct mail_storage *storage);
0ce6ae9d6efed5d54222a13bbdabce9e688e4447vboxsyncvoid (*hook_mailbox_opened)(struct mailbox *box) = NULL;
96c4ae4f195842fce91fb4749faeb7f31a3cb9c6vboxsyncstatic ARRAY_DEFINE(storages, struct mail_storage *);
96c4ae4f195842fce91fb4749faeb7f31a3cb9c6vboxsyncvoid mail_storage_class_register(struct mail_storage *storage_class)
96c4ae4f195842fce91fb4749faeb7f31a3cb9c6vboxsync /* append it after the list, so the autodetection order is correct */
96c4ae4f195842fce91fb4749faeb7f31a3cb9c6vboxsyncvoid mail_storage_class_unregister(struct mail_storage *storage_class)
96c4ae4f195842fce91fb4749faeb7f31a3cb9c6vboxsync unsigned int i, count;
96c4ae4f195842fce91fb4749faeb7f31a3cb9c6vboxsync for (i = 0; i < count; i++) {
d46ee884c41b808b239563b1978468aae12e33a2vboxsyncvoid mail_storage_parse_env(enum mail_storage_flags *flags_r,
96c4ae4f195842fce91fb4749faeb7f31a3cb9c6vboxsync const char *str;
unsigned int i, count;
for (i = 0; i < count; i++) {
return classes[i];
return NULL;
static struct mail_storage *
unsigned int i, count;
for (i = 0; i < count; i++) {
return classes[i];
return NULL;
p = *data;
while (i_isalnum(*p)) p++;
const char **error_r)
unsigned int i, count;
data);
for (i = 0; i < count; i++) {
if (i == count) {
*error_r);
T_BEGIN {
} T_END;
const char *fmt, ...)
void *context)
bool directory)
const char *name)
const char *name)
enum mailbox_list_flags
return list_flags;
const char *error_string;
return FALSE;
return TRUE;
return NULL;
T_BEGIN {
} T_END;
return box;
struct mailbox_sync_context *
struct mail_keywords *
const char *const keywords[])
i_unreached();
return kw;
struct mailbox_header_lookup_ctx *
struct mail_search_context *
int ret;
return ret;
bool tryagain;
int ret;
&tryagain)) == 0) {
if (!tryagain)
return ret;
struct mailbox_transaction_context *
return trans;
struct mailbox *
return t->box;
if (ret == 0) {