diff options
author | Larry Rosenman <ler@FreeBSD.org> | 2017-02-27 03:15:36 +0000 |
---|---|---|
committer | Larry Rosenman <ler@FreeBSD.org> | 2017-02-27 03:15:36 +0000 |
commit | 5ab73a278caa386a97f938bfa232aca8fe0da08e (patch) | |
tree | 5199fb191700a687108398f7f3daa9f1775707ed /mail | |
parent | daf6f34720ee91495aafbe03ca9dc20334951d08 (diff) |
Notes
Diffstat (limited to 'mail')
-rw-r--r-- | mail/dovecot2-pigeonhole/files/patch-src_lib-sieve_sieve-result.c | 87 | ||||
-rw-r--r-- | mail/dovecot2-pigeonhole/files/patch-src_plugins_imapsieve_imap-sieve-storage.c | 12 |
2 files changed, 0 insertions, 99 deletions
diff --git a/mail/dovecot2-pigeonhole/files/patch-src_lib-sieve_sieve-result.c b/mail/dovecot2-pigeonhole/files/patch-src_lib-sieve_sieve-result.c deleted file mode 100644 index 8876f6f9cce0..000000000000 --- a/mail/dovecot2-pigeonhole/files/patch-src_lib-sieve_sieve-result.c +++ /dev/null @@ -1,87 +0,0 @@ ---- src/lib-sieve/sieve-result.c.orig 2016-10-20 22:48:08 UTC -+++ src/lib-sieve/sieve-result.c -@@ -928,7 +928,7 @@ static int _sieve_result_implicit_keep - (struct sieve_result *result, bool rollback) - { - const struct sieve_action_exec_env *aenv = &result->action_env; -- struct sieve_result_action *rac; -+ struct sieve_result_action *rac, *kac; - int status = SIEVE_EXEC_OK; - struct sieve_result_side_effect *rsef, *rsef_first = NULL; - void *tr_context = NULL; -@@ -937,38 +937,54 @@ static int _sieve_result_implicit_keep - if ( (aenv->flags & SIEVE_EXECUTE_FLAG_DEFER_KEEP) != 0 ) - return SIEVE_EXEC_OK; - -- if ( rollback ) { -+ if ( rollback ) - act_keep = result->failure_action; -- act_keep.mail = NULL; -- } else { -+ else - act_keep = result->keep_action; -- act_keep.mail = sieve_message_get_mail(aenv->msgctx); -- } -+ act_keep.mail = NULL; - - /* If keep is a non-action, return right away */ - if ( act_keep.def == NULL ) - return SIEVE_EXEC_OK; - -- /* Scan for execution of keep-equal actions */ -- rac = result->first_action; -- while ( rac != NULL ) { -- if ( rac->action.def == act_keep.def && act_keep.def->equals != NULL && -- act_keep.def->equals(aenv->scriptenv, NULL, &rac->action) && -- rac->action.executed ) -- return SIEVE_EXEC_OK; -- -- rac = rac->next; -+ /* Scan for deferred keep */ -+ kac = result->last_action; -+ while ( kac != NULL && kac->action.executed ) { -+ if ( kac->keep && kac->action.def == NULL ) -+ break; -+ kac = kac->prev; - } - -- /* Apply any implicit side effects if applicable */ -- if ( !rollback && hash_table_is_created(result->action_contexts) ) { -- struct sieve_result_action_context *actctx; -+ if (kac == NULL) { -+ if ( !rollback ) -+ act_keep.mail = sieve_message_get_mail(aenv->msgctx); - -- /* Check for implicit side effects to keep action */ -- actctx = hash_table_lookup(result->action_contexts, act_keep.def); -+ /* Scan for execution of keep-equal actions */ -+ rac = result->first_action; -+ while ( rac != NULL ) { -+ if ( rac->action.def == act_keep.def && act_keep.def->equals != NULL && -+ act_keep.def->equals(aenv->scriptenv, NULL, &rac->action) && -+ rac->action.executed ) -+ return SIEVE_EXEC_OK; - -- if ( actctx != NULL && actctx->seffects != NULL ) -- rsef_first = actctx->seffects->first_effect; -+ rac = rac->next; -+ } -+ -+ /* Apply any implicit side effects if applicable */ -+ if ( !rollback && hash_table_is_created(result->action_contexts) ) { -+ struct sieve_result_action_context *actctx; -+ -+ /* Check for implicit side effects to keep action */ -+ actctx = hash_table_lookup(result->action_contexts, act_keep.def); -+ -+ if ( actctx != NULL && actctx->seffects != NULL ) -+ rsef_first = actctx->seffects->first_effect; -+ } -+ } else if ( !rollback ) { -+ act_keep.location = kac->action.location; -+ act_keep.mail = kac->action.mail; -+ if ( kac->seffects != NULL ) -+ rsef_first = kac->seffects->first_effect; - } - - /* Start keep action */ diff --git a/mail/dovecot2-pigeonhole/files/patch-src_plugins_imapsieve_imap-sieve-storage.c b/mail/dovecot2-pigeonhole/files/patch-src_plugins_imapsieve_imap-sieve-storage.c deleted file mode 100644 index 427b3ed41ae8..000000000000 --- a/mail/dovecot2-pigeonhole/files/patch-src_plugins_imapsieve_imap-sieve-storage.c +++ /dev/null @@ -1,12 +0,0 @@ ---- src/plugins/imapsieve/imap-sieve-storage.c.orig 2016-11-08 02:19:04 UTC -+++ src/plugins/imapsieve/imap-sieve-storage.c -@@ -531,7 +531,8 @@ imap_sieve_mailbox_transaction_begin(str - /* commence parent transaction */ - t = lbox->super.transaction_begin(box, flags); - -- if (isuser == NULL || isuser->sieve_active) -+ if (isuser == NULL || isuser->sieve_active || -+ isuser->cur_cmd == IMAP_SIEVE_CMD_NONE) - return t; - - i_assert(isuser->client != NULL); |