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