mail-storage.c revision 66ac3818827f7f8b778541a02855bf09268e53c9
/* Copyright (C) 2002-2003 Timo Sirainen */
#include "lib.h"
#include "ioloop.h"
#include "mail-storage-private.h"
#include <stdlib.h>
#include <time.h>
#include <ctype.h>
/* Message to show to users when critical error occurs */
#define CRITICAL_MSG \
"Internal error occured. Refer to server log for more information."
unsigned int mail_storage_module_id = 0;
void mail_storage_init(void)
{
}
void mail_storage_deinit(void)
{
if (array_is_created(&storages))
}
{
/* append it after the list, so the autodetection order is correct */
}
{
struct mail_storage *const *classes;
unsigned int i, count;
for (i = 0; i < count; i++) {
if (classes[i] == storage_class) {
break;
}
}
}
{
struct mail_storage *const *classes;
unsigned int i, count;
for (i = 0; i < count; i++) {
return classes[i];
}
return NULL;
}
struct mail_storage *
enum mail_storage_flags flags,
{
struct mail_storage *storage;
else
return NULL;
}
struct mail_storage *
{
struct mail_storage *const *classes;
struct mail_storage *storage;
unsigned int i, count;
for (i = 0; i < count; i++) {
return storage;
}
return NULL;
}
static struct mail_storage *
{
struct mail_storage *const *classes;
unsigned int i, count;
for (i = 0; i < count; i++) {
return classes[i];
}
return NULL;
}
struct mail_storage *
enum mail_storage_flags flags,
{
struct mail_storage *storage;
const char *p, *name;
/* check if we're in the form of mailformat:data
(eg. maildir:Maildir) */
p = data;
while (i_isalnum(*p)) p++;
if (*p == ':') {
} else {
}
}
return storage;
}
{
}
{
}
{
else {
}
}
const char *fmt, ...)
{
else {
}
}
{
char str[256];
}
const char *fmt, ...)
{
else {
/* critical errors may contain sensitive data, so let user
see only "Internal error" with a timestamp to make it
easier to look from log files the actual error message. */
}
}
{
return storage->hierarchy_sep;
}
struct mail_storage_callbacks *callbacks,
void *context)
{
}
int directory)
{
}
{
}
{
}
struct mailbox_list_context *
enum mailbox_list_flags flags)
{
}
struct mailbox_list *
{
}
{
}
{
}
const char *name,
enum mailbox_name_status *status)
{
}
int *syntax_error_r)
{
}
enum mailbox_open_flags flags)
{
}
{
}
{
}
{
}
{
}
{
}
enum mailbox_status_items items,
struct mailbox_status *status)
{
}
struct mailbox_sync_context *
{
}
struct mailbox_sync_rec *sync_rec_r)
{
}
struct mailbox_status *status_r)
{
}
{
}
struct mail_keywords *
const char *const keywords[])
{
}
void mailbox_keywords_free(struct mailbox_transaction_context *t,
struct mail_keywords *keywords)
{
}
{
}
struct mailbox_header_lookup_ctx *
{
}
{
}
enum mail_sort_type *sort_program)
{
}
struct mail_search_context *
mailbox_search_init(struct mailbox_transaction_context *t,
const enum mail_sort_type *sort_program)
{
}
{
}
{
}
struct mailbox_transaction_context *
{
}
int mailbox_transaction_commit(struct mailbox_transaction_context *t,
enum mailbox_sync_flags flags)
{
}
void mailbox_transaction_rollback(struct mailbox_transaction_context *t)
{
t->box->v.transaction_rollback(t);
}
struct mail_save_context *
mailbox_save_init(struct mailbox_transaction_context *t,
int want_mail)
{
}
{
}
{
}
{
}
{
}
{
}