mail-storage.c revision 60c9aa3080b5b120b3e15bbe8d9cfab76b94d417
/* Copyright (C) 2002 Timo Sirainen */
#include "lib.h"
#include "ioloop.h"
#include "mail-storage.h"
#include <stdlib.h>
#include <time.h>
#include <ctype.h>
/* Message to show to users when critical error occurs */
#define CRITICAL_MSG "Internal error [%Y-%m-%d %H:%M:%S]"
struct mail_storage_list {
struct mail_storage_list *next;
struct mail_storage *storage;
};
struct client_workaround_list {
const char *name;
enum client_workarounds num;
};
struct client_workaround_list client_workaround_list[] = {
{ "oe6-fetch-no-newmail", WORKAROUND_OE6_FETCH_NO_NEWMAIL },
{ NULL, 0 }
};
enum client_workarounds client_workarounds = 0;
int full_filesystem_access = FALSE;
void mail_storage_init(void)
{
struct client_workaround_list *list;
const char *env;
const char *const *str;
return;
if (**str == '\0')
continue;
else
}
}
}
{
/* append it after the list, so the autodetection order is correct */
}
{
}
}
}
const char *user)
{
struct mail_storage_list *list;
}
return NULL;
}
{
struct mail_storage_list *list;
struct mail_storage *storage;
return storage;
}
return NULL;
}
{
struct mail_storage_list *list;
}
return NULL;
}
const char *user)
{
struct mail_storage *storage;
const char *p, *name;
return mail_storage_create_default(user);
/* 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. */
}
}
int *syntax)
{
}
{
return box->inconsistent;
}