aboutsummaryrefslogtreecommitdiff
path: root/mail
diff options
context:
space:
mode:
authorLarry Rosenman <ler@FreeBSD.org>2017-02-27 03:15:36 +0000
committerLarry Rosenman <ler@FreeBSD.org>2017-02-27 03:15:36 +0000
commit5ab73a278caa386a97f938bfa232aca8fe0da08e (patch)
tree5199fb191700a687108398f7f3daa9f1775707ed /mail
parentdaf6f34720ee91495aafbe03ca9dc20334951d08 (diff)
Notes
Diffstat (limited to 'mail')
-rw-r--r--mail/dovecot2-pigeonhole/files/patch-src_lib-sieve_sieve-result.c87
-rw-r--r--mail/dovecot2-pigeonhole/files/patch-src_plugins_imapsieve_imap-sieve-storage.c12
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);