[dovecot-cvs] dovecot/src/lib-storage mail-storage-private.h, 1.16,
1.17 mail-storage.c, 1.37, 1.38 mail-storage.h, 1.94, 1.95
cras at dovecot.org
cras at dovecot.org
Sun Apr 3 14:36:19 EEST 2005
Update of /var/lib/cvs/dovecot/src/lib-storage
In directory talvi:/tmp/cvs-serv4553/lib-storage
Modified Files:
mail-storage-private.h mail-storage.c mail-storage.h
Log Message:
Moved several getenv()s from lib-storage to main code. deliver binary was
missing several getenvs..
Index: mail-storage-private.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/mail-storage-private.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- mail-storage-private.h 29 Mar 2005 16:48:42 -0000 1.16
+++ mail-storage-private.h 3 Apr 2005 11:36:15 -0000 1.17
@@ -8,8 +8,10 @@
extern unsigned int mail_storage_module_id;
struct mail_storage_vfuncs {
- struct mail_storage *(*create)(const char *data, const char *user,
- enum mail_storage_flags flags);
+ struct mail_storage *
+ (*create)(const char *data, const char *user,
+ enum mail_storage_flags flags,
+ enum mail_storage_lock_method lock_method);
void (*destroy)(struct mail_storage *storage);
int (*autodetect)(const char *data, enum mail_storage_flags flags);
@@ -59,6 +61,7 @@
char *error;
enum mail_storage_flags flags;
+ enum mail_storage_lock_method lock_method;
/* Module-specific contexts. See mail_storage_module_id. */
array_t ARRAY_DEFINE(module_contexts, void);
Index: mail-storage.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/mail-storage.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- mail-storage.c 29 Mar 2005 13:33:07 -0000 1.37
+++ mail-storage.c 3 Apr 2005 11:36:15 -0000 1.38
@@ -70,7 +70,8 @@
struct mail_storage *
mail_storage_create(const char *name, const char *data, const char *user,
- enum mail_storage_flags flags)
+ enum mail_storage_flags flags,
+ enum mail_storage_lock_method lock_method)
{
struct mail_storage_list *list;
@@ -78,20 +79,23 @@
for (list = storages; list != NULL; list = list->next) {
if (strcasecmp(list->storage->name, name) == 0)
- return list->storage->v.create(data, user, flags);
+ return list->storage->v.create(data, user, flags,
+ lock_method);
}
return NULL;
}
struct mail_storage *
-mail_storage_create_default(const char *user, enum mail_storage_flags flags)
+mail_storage_create_default(const char *user, enum mail_storage_flags flags,
+ enum mail_storage_lock_method lock_method)
{
struct mail_storage_list *list;
struct mail_storage *storage;
for (list = storages; list != NULL; list = list->next) {
- storage = list->storage->v.create(NULL, user, flags);
+ storage = list->storage->v.create(NULL, user, flags,
+ lock_method);
if (storage != NULL)
return storage;
}
@@ -114,13 +118,14 @@
struct mail_storage *
mail_storage_create_with_data(const char *data, const char *user,
- enum mail_storage_flags flags)
+ enum mail_storage_flags flags,
+ enum mail_storage_lock_method lock_method)
{
struct mail_storage *storage;
const char *p, *name;
if (data == NULL || *data == '\0')
- return mail_storage_create_default(user, flags);
+ return mail_storage_create_default(user, flags, lock_method);
/* check if we're in the form of mailformat:data
(eg. maildir:Maildir) */
@@ -129,11 +134,14 @@
if (*p == ':') {
name = t_strdup_until(data, p);
- storage = mail_storage_create(name, p+1, user, flags);
+ storage = mail_storage_create(name, p+1, user, flags,
+ lock_method);
} else {
storage = mail_storage_autodetect(data, flags);
- if (storage != NULL)
- storage = storage->v.create(data, user, flags);
+ if (storage != NULL) {
+ storage = storage->v.create(data, user, flags,
+ lock_method);
+ }
}
return storage;
Index: mail-storage.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/mail-storage.h,v
retrieving revision 1.94
retrieving revision 1.95
diff -u -d -r1.94 -r1.95
--- mail-storage.h 2 Apr 2005 21:09:06 -0000 1.94
+++ mail-storage.h 3 Apr 2005 11:36:15 -0000 1.95
@@ -9,7 +9,25 @@
/* Print debugging information while initializing the storage */
MAIL_STORAGE_FLAG_DEBUG = 0x01,
/* Allow full filesystem access with absolute or relative paths. */
- MAIL_STORAGE_FLAG_FULL_FS_ACCESS = 0x02
+ MAIL_STORAGE_FLAG_FULL_FS_ACCESS = 0x02,
+ /* Don't try to mmap() files */
+ MAIL_STORAGE_FLAG_MMAP_DISABLE = 0x04,
+ /* Don't try to write() to mmap()ed files. Required for the few
+ OSes that don't have unified buffer cache
+ (currently OpenBSD <= 3.5) */
+ MAIL_STORAGE_FLAG_MMAP_NO_WRITE = 0x08,
+ /* Remember message headers' MD5 sum */
+ MAIL_STORAGE_FLAG_KEEP_HEADER_MD5 = 0x10,
+ /* Use mmap() for reading mail files. */
+ MAIL_STORAGE_FLAG_MMAP_MAILS = 0x20,
+ /* Use CRLF linefeeds when saving mails. */
+ MAIL_STORAGE_FLAG_SAVE_CRLF = 0x40
+};
+
+enum mail_storage_lock_method {
+ MAIL_STORAGE_LOCK_FCNTL,
+ MAIL_STORAGE_LOCK_FLOCK,
+ MAIL_STORAGE_LOCK_DOTLOCK
};
enum mailbox_open_flags {
@@ -19,9 +37,7 @@
(eg. when opening mailbox just for STATUS). */
MAILBOX_OPEN_FAST = 0x02,
/* Don't reset MAIL_RECENT flags when syncing */
- MAILBOX_OPEN_KEEP_RECENT = 0x04,
- /* Remember message headers' MD5 sum */
- MAILBOX_OPEN_KEEP_HEADER_MD5 = 0x08
+ MAILBOX_OPEN_KEEP_RECENT = 0x04
};
enum mailbox_list_flags {
@@ -205,14 +221,17 @@
hierarchy_sep overrides the default separator if it's not '\0'. */
struct mail_storage *
mail_storage_create(const char *name, const char *data, const char *user,
- enum mail_storage_flags flags);
+ enum mail_storage_flags flags,
+ enum mail_storage_lock_method lock_method);
void mail_storage_destroy(struct mail_storage *storage);
struct mail_storage *
-mail_storage_create_default(const char *user, enum mail_storage_flags flags);
+mail_storage_create_default(const char *user, enum mail_storage_flags flags,
+ enum mail_storage_lock_method lock_method);
struct mail_storage *
mail_storage_create_with_data(const char *data, const char *user,
- enum mail_storage_flags flags);
+ enum mail_storage_flags flags,
+ enum mail_storage_lock_method lock_method);
char mail_storage_get_hierarchy_sep(struct mail_storage *storage);
More information about the dovecot-cvs
mailing list