mail-storage.c revision 34902486e270728379fd147ca9d7b8d366fcd0e6
715N/A#include "str-sanitize.h"
715N/A#include "hex-binary.h"
715N/A#include "file-create-locked.h"
715N/A#include "eacces-error.h"
715N/A#include "mkdir-parents.h"
715N/A#include "time-util.h"
715N/A#include "var-expand.h"
715N/A#include "dsasl-client.h"
715N/A#include "imap-date.h"
715N/A#include "settings-parser.h"
715N/A#include "mail-index-private.h"
715N/A#include "mail-index-alloc-cache.h"
715N/A#include "mailbox-tree.h"
715N/A#include "mailbox-list-private.h"
715N/A#include "mail-storage-private.h"
715N/A#include "mail-storage-settings.h"
715N/A#include "mail-namespace.h"
715N/A#include "mail-search.h"
715N/A#include "mail-search-register.h"
715N/A#include "mail-search-mime-register.h"
715N/A#include "mailbox-search-result-private.h"
715N/A#include "mailbox-guid-cache.h"
715N/A#include "mail-cache.h"
718N/Astatic int mail_storage_init_refcount = 0;
726N/Avoid mail_storage_init(void)
715N/A if (mail_storage_init_refcount++ > 0)
715N/Avoid mail_storage_deinit(void)
715N/A if (--mail_storage_init_refcount > 0)
715N/Astatic struct mail_storage *
715N/Astatic struct mail_storage *
715N/A return storage_class;
715N/A return storage_class;
715N/A } else if (!autocreate) {
726N/A bool autocreate;
726N/Astatic struct mail_storage *
const char *str;
const char *fmt, ...)
error_r);
const char *str;
const char *str;
const struct mail_storage_settings *
void *context)
return error;
const char *error_string;
return FALSE;
return FALSE;
return TRUE;
const struct mailbox_settings *
return NULL;
return *box_set;
return NULL;
T_BEGIN {
if (open_error != 0)
} T_END;
return box;
const char *vname;
&metadata) < 0) {
return box;
return box;
return TRUE;
const char *errstr;
MAILBOX_SET_AUTO_SUBSCRIBE) == 0) {
int ret;
return ret;
const char **error_r)
if (prev_sep) {
return FALSE;
if (prev_sep && i > 0) {
return FALSE;
return TRUE;
vname++;
const char *path;
&path) < 0)
return TRUE;
return FALSE;
const char *name;
name++;
const char *name)
NAMESPACE_FLAG_LIST_CHILDREN)) == 0)
return TRUE;
return FALSE;
case MAIL_ERROR_NOTFOUND:
int ret;
case MAIL_ERROR_NOTFOUND:
MAIL_STORAGE_CLASS_FLAG_OPEN_STREAMS) == 0) {
T_BEGIN {
} T_END;
} T_END;
if (ret < 0) {
return FALSE;
return FALSE;
return FALSE;
if (ret < 0)
return FALSE;
return TRUE;
const char *index_dir;
int ret;
&index_dir);
if (ret <= 0)
int ret;
return ret;
const char *name1;
return FALSE;
return TRUE;
bool directory)
int ret;
if (ret == 0) {
return ret;
int ret;
return ret;
int ret;
if (ret < 0)
if (del)
if (del) {
if (ret < 0)
int ret;
return ret;
int ret;
return ret;
const char **error_r)
return TRUE;
return FALSE;
return FALSE;
return TRUE;
const char **error_r)
return FALSE;
return FALSE;
return FALSE;
return TRUE;
int ret = 0;
return ret;
struct mail_namespace *
return FALSE;
i_unreached();
struct mailbox_sync_context *
return ctx;
T_BEGIN {
} T_END;
return ctx;
return FALSE;
const char *errormsg;
int ret;
if (ret == 0)
return ret;
struct mail_search_context *
int ret;
return ret;
bool tryagain;
if (!tryagain)
return FALSE;
return TRUE;
return FALSE;
return TRUE;
int ret;
if (ret < 0)
return ret;
struct mailbox_transaction_context *
return trans;
int ret;
return ret;
int ret;
T_BEGIN {
} T_END;
return ret;
const char *reason)
struct mailbox *
return t->box;
struct mail_save_context *
T_BEGIN {
} T_END;
return ctx;
const char *const *keywords_list;
const char *envelope)
unsigned int order)
int ret;
} else T_BEGIN {
} T_END;
if (ret < 0) {
int ret;
T_BEGIN {
} T_END;
return ret;
int ret;
T_BEGIN {
} T_END;
if (pvt_flags != 0)
t->save_count++;
return ret;
T_BEGIN {
} T_END;
struct mailbox_transaction_context *
int ret;
T_BEGIN {
} T_END;
if (ret == 0) {
if (pvt_flags != 0)
t->save_count++;
return ret;
int ret;
return ret;
int ret;
if (ret < 0) {
return ret;
const char **path_r)
int *fd_r)
int fd;
const char *root_dir;
int ret;
return ret;
&mail_dir) < 0)
unsigned int secs)
#ifndef MMAP_CONFLICTS_WRITE
return index_flags;
bool *utc_r)
unsigned int secs;
const char *error;
T_BEGIN {
} T_END;
const char **error_r)
const char *lock_path;
bool created;