dovecot-2.2-pigeonhole: Dovecot change: Replaced mail_get_real_m...

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Tue Apr 15 21:12:50 UTC 2014


details:   http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/db8f7bbda283
changeset: 1846:db8f7bbda283
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Tue Apr 15 23:11:46 2014 +0200
description:
Dovecot change: Replaced mail_get_real_mail() with mail_get_backend_mail().

diffstat:

 src/lib-sieve/sieve-actions.c  |  18 ++++++++++++++----
 src/lib-sieve/util/edit-mail.c |   6 ++++--
 2 files changed, 18 insertions(+), 6 deletions(-)

diffs (59 lines):

diff -r 8c53243b341f -r db8f7bbda283 src/lib-sieve/sieve-actions.c
--- a/src/lib-sieve/sieve-actions.c	Tue Mar 04 22:28:56 2014 +0100
+++ b/src/lib-sieve/sieve-actions.c	Tue Apr 15 23:11:46 2014 +0200
@@ -479,9 +479,9 @@
 		(struct act_store_transaction *) tr_context;
 	struct mail *mail =	( action->mail != NULL ?
 		action->mail : aenv->msgdata->mail );
-	struct mail *real_mail = mail_get_real_mail(mail);
 	struct mail_save_context *save_ctx;
 	struct mail_keywords *keywords = NULL;
+	bool backends_equal = FALSE;
 	int status = SIEVE_EXEC_OK;
 
 	/* Verify transaction */
@@ -504,12 +504,22 @@
 		return SIEVE_EXEC_FAILURE;
 	}
 
+
 	/* If the message originates from the target mailbox, only update the flags
 	 * and keywords (if not read-only)
 	 */
-	if ( mailbox_backends_equal(trans->box, mail->box) ||
-		(real_mail != mail && mailbox_backends_equal(trans->box, real_mail->box)) )
-		{
+	if ( mailbox_backends_equal(trans->box, mail->box) ) {
+		backends_equal = TRUE;
+	} else {
+		struct mail *real_mail;
+
+		if ( mail_get_backend_mail(mail, &real_mail) < 0 )
+			return SIEVE_EXEC_FAILURE;
+		if ( real_mail != mail &&
+			mailbox_backends_equal(trans->box, real_mail->box) )
+			backends_equal = TRUE;
+	}
+	if (backends_equal) {
 		trans->redundant = TRUE;
 
 		if ( trans->flags_altered && !mailbox_is_readonly(mail->box) ) {
diff -r 8c53243b341f -r db8f7bbda283 src/lib-sieve/util/edit-mail.c
--- a/src/lib-sieve/util/edit-mail.c	Tue Mar 04 22:28:56 2014 +0100
+++ b/src/lib-sieve/util/edit-mail.c	Tue Apr 15 23:11:46 2014 +0200
@@ -1379,11 +1379,13 @@
 	return edmail->wrapped->v.get_special(&edmail->wrapped->mail, field, value_r);
 }
 
-static struct mail *edit_mail_get_real_mail(struct mail *mail)
+static int
+edit_mail_get_real_mail(struct mail *mail, struct mail **real_mail_r)
 {
 	struct edit_mail *edmail = (struct edit_mail *)mail;
 
-	return edit_mail_get_mail(edmail);
+	*real_mail_r = edit_mail_get_mail(edmail);
+	return 0;
 }
 
 static void edit_mail_update_flags


More information about the dovecot-cvs mailing list