[dovecot-cvs] dovecot/src/lib-storage/index/maildir maildir-copy.c, 1.30, 1.31 maildir-save.c, 1.32, 1.33 maildir-storage.h, 1.23, 1.24

cras at procontrol.fi cras at procontrol.fi
Sun Jun 20 06:25:36 EEST 2004


Update of /home/cvs/dovecot/src/lib-storage/index/maildir
In directory talvi:/tmp/cvs-serv336/src/lib-storage/index/maildir

Modified Files:
	maildir-copy.c maildir-save.c maildir-storage.h 
Log Message:
mailbox_save() and mailbox_copy() functions can now return the saved mail so
it can be immediately queried. Implemented UIDPLUS extension using it.
Maildir implementation missing, so it crashes with it for now.. APPEND with
mbox now doesn't require resyncing the mailbox since it updates indexes
directly.



Index: maildir-copy.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/maildir/maildir-copy.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- maildir-copy.c	27 Apr 2004 20:25:54 -0000	1.30
+++ maildir-copy.c	20 Jun 2004 03:25:33 -0000	1.31
@@ -120,7 +120,8 @@
 	pool_unref(ctx->pool);
 }
 
-int maildir_copy(struct mailbox_transaction_context *_t, struct mail *mail)
+int maildir_copy(struct mailbox_transaction_context *_t, struct mail *mail,
+		 struct mail **dest_mail_r)
 {
 	struct maildir_transaction_context *t =
 		(struct maildir_transaction_context *)_t;
@@ -132,6 +133,7 @@
 	ctx = t->copy_ctx;
 
 	if (ctx->hardlink && mail->box->storage == ctx->ibox->box.storage) {
+		// FIXME: handle dest_mail_r
 		t_push();
 		ret = maildir_copy_hardlink(mail, ctx);
 		t_pop();
@@ -144,5 +146,5 @@
 		/* non-fatal hardlinking failure, try the slow way */
 	}
 
-	return mail_storage_copy(_t, mail);
+	return mail_storage_copy(_t, mail, dest_mail_r);
 }

Index: maildir-save.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/maildir/maildir-save.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- maildir-save.c	2 May 2004 20:32:16 -0000	1.32
+++ maildir-save.c	20 Jun 2004 03:25:33 -0000	1.33
@@ -33,7 +33,7 @@
 {
 	const char *path, *fname;
 	struct ostream *output;
-	int fd;
+	int fd, crlf;
 
 	fd = maildir_create_tmp(ibox, dir, ibox->mail_create_mode, &path);
 	if (fd == -1)
@@ -46,8 +46,9 @@
 	output = o_stream_create_file(fd, pool_datastack_create(), 4096, FALSE);
 	o_stream_set_blocking(output, 60000, NULL, NULL);
 
+	crlf = getenv("MAIL_SAVE_CRLF") != NULL;
 	if (mail_storage_save(ibox->box.storage, path, input, output,
-			      getenv("MAIL_SAVE_CRLF") != NULL, NULL, NULL) < 0)
+			      crlf, crlf, NULL, NULL) < 0)
 		fname = NULL;
 
 	o_stream_unref(output);
@@ -121,7 +122,7 @@
 		 const struct mail_full_flags *flags,
 		 time_t received_date, int timezone_offset __attr_unused__,
 		 const char *from_envelope __attr_unused__,
-		 struct istream *data)
+		 struct istream *data, struct mail **mail_r)
 {
 	struct maildir_transaction_context *t =
 		(struct maildir_transaction_context *)_t;

Index: maildir-storage.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/maildir/maildir-storage.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- maildir-storage.h	16 Jun 2004 00:53:37 -0000	1.23
+++ maildir-storage.h	20 Jun 2004 03:25:33 -0000	1.24
@@ -49,11 +49,13 @@
 int maildir_save(struct mailbox_transaction_context *t,
 		 const struct mail_full_flags *flags,
 		 time_t received_date, int timezone_offset,
-		 const char *from_envelope, struct istream *data);
+		 const char *from_envelope, struct istream *data,
+		 struct mail **mail_r);
 int maildir_save_commit(struct maildir_save_context *ctx);
 void maildir_save_rollback(struct maildir_save_context *ctx);
 
-int maildir_copy(struct mailbox_transaction_context *t, struct mail *mail);
+int maildir_copy(struct mailbox_transaction_context *t, struct mail *mail,
+		 struct mail **dest_mail_r);
 int maildir_copy_commit(struct maildir_copy_context *ctx);
 void maildir_copy_rollback(struct maildir_copy_context *ctx);
 



More information about the dovecot-cvs mailing list