[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