summaryrefslogtreecommitdiffstats
path: root/pigeonhole
diff options
context:
space:
mode:
Diffstat (limited to 'pigeonhole')
-rw-r--r--pigeonhole/ChangeLog24
-rw-r--r--pigeonhole/NEWS6
-rwxr-xr-xpigeonhole/configure20
-rw-r--r--pigeonhole/configure.ac2
-rw-r--r--pigeonhole/pigeonhole-version.h2
-rw-r--r--pigeonhole/src/lib-sieve/sieve-result.c12
6 files changed, 51 insertions, 15 deletions
diff --git a/pigeonhole/ChangeLog b/pigeonhole/ChangeLog
index 5768a2d..dcff0c8 100644
--- a/pigeonhole/ChangeLog
+++ b/pigeonhole/ChangeLog
@@ -1,3 +1,27 @@
+2024-08-13 11:18:55 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (49005e73)
+
+ configure: Set version to 0.5.21.1
+
+
+M configure.ac
+
+2024-08-13 11:18:44 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (9ed3d6e7)
+
+ NEWS: Add news for 0.5.21.1
+
+
+M NEWS
+
+2023-10-10 11:32:20 +0300 Timo Sirainen <timo.sirainen@open-xchange.com> (fc319df8)
+
+ lib-sieve: sieve-result - If mail store fails at commit, always fail the
+ delivery
+
+ If the mail store commit failed, the mail was not guaranteed to be saved. We
+ don't want to lose mails, even if e.g. a forward had just succeeded.
+
+M src/lib-sieve/sieve-result.c
+
2023-08-30 15:48:42 +0300 Aki Tuomi <aki.tuomi@open-xchange.com> (f6cd4b8e)
configure: Set version to 0.5.21
diff --git a/pigeonhole/NEWS b/pigeonhole/NEWS
index 8c09177..10e7113 100644
--- a/pigeonhole/NEWS
+++ b/pigeonhole/NEWS
@@ -1,3 +1,9 @@
+v0.5.21.1 2024-08-14 Aki Tuomi <aki.tuomi@open-xchange.com>
+
+ - sieve: When saving to local storage failed after a successful action
+ in sieve (e.g. redirect, vacation), the mail was reported as
+ successfully delivered, although it was lost locally.
+
v0.5.21 2023-08-15 Aki Tuomi <aki.tuomi@open-xchange.com>
- sieve: Using the deleteheader action on a message with a broken/invalid
diff --git a/pigeonhole/configure b/pigeonhole/configure
index 7c1f0ff..a4a3185 100755
--- a/pigeonhole/configure
+++ b/pigeonhole/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Pigeonhole 0.5.21.
+# Generated by GNU Autoconf 2.69 for Pigeonhole 0.5.21.1.
#
# Report bugs to <dovecot@dovecot.org>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Pigeonhole'
PACKAGE_TARNAME='dovecot-2.3-pigeonhole'
-PACKAGE_VERSION='0.5.21'
-PACKAGE_STRING='Pigeonhole 0.5.21'
+PACKAGE_VERSION='0.5.21.1'
+PACKAGE_STRING='Pigeonhole 0.5.21.1'
PACKAGE_BUGREPORT='dovecot@dovecot.org'
PACKAGE_URL=''
@@ -1422,7 +1422,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Pigeonhole 0.5.21 to adapt to many kinds of systems.
+\`configure' configures Pigeonhole 0.5.21.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1494,7 +1494,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Pigeonhole 0.5.21:";;
+ short | recursive ) echo "Configuration of Pigeonhole 0.5.21.1:";;
esac
cat <<\_ACEOF
@@ -1623,7 +1623,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Pigeonhole configure 0.5.21
+Pigeonhole configure 0.5.21.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1992,7 +1992,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Pigeonhole $as_me 0.5.21, which was
+It was created by Pigeonhole $as_me 0.5.21.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2877,7 +2877,7 @@ fi
# Define the identity of the package.
PACKAGE='dovecot-2.3-pigeonhole'
- VERSION='0.5.21'
+ VERSION='0.5.21.1'
# Some tools Automake needs.
@@ -14244,7 +14244,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Pigeonhole $as_me 0.5.21, which was
+This file was extended by Pigeonhole $as_me 0.5.21.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -14310,7 +14310,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-Pigeonhole config.status 0.5.21
+Pigeonhole config.status 0.5.21.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/pigeonhole/configure.ac b/pigeonhole/configure.ac
index 6239f62..ac573a3 100644
--- a/pigeonhole/configure.ac
+++ b/pigeonhole/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.59])
# Be sure to update ABI version also if anything changes that might require
# recompiling plugins. Most importantly that means if any structs are changed.
-AC_INIT([Pigeonhole], [0.5.21], [dovecot@dovecot.org], [dovecot-2.3-pigeonhole])
+AC_INIT([Pigeonhole], [0.5.21.1], [dovecot@dovecot.org], [dovecot-2.3-pigeonhole])
AC_DEFINE_UNQUOTED([PIGEONHOLE_ABI_VERSION], "0.5.ABIv21($PACKAGE_VERSION)", [Pigeonhole ABI version])
AC_CONFIG_AUX_DIR([.])
diff --git a/pigeonhole/pigeonhole-version.h b/pigeonhole/pigeonhole-version.h
index 8ef02ff..abb52f0 100644
--- a/pigeonhole/pigeonhole-version.h
+++ b/pigeonhole/pigeonhole-version.h
@@ -1,6 +1,6 @@
#ifndef PIGEONHOLE_VERSION_H
#define PIGEONHOLE_VERSION_H
-#define PIGEONHOLE_VERSION_FULL PIGEONHOLE_VERSION" (f6cd4b8e)"
+#define PIGEONHOLE_VERSION_FULL PIGEONHOLE_VERSION" (49005e73)"
#endif /* PIGEONHOLE_VERSION_H */
diff --git a/pigeonhole/src/lib-sieve/sieve-result.c b/pigeonhole/src/lib-sieve/sieve-result.c
index 89d249e..be31cab 100644
--- a/pigeonhole/src/lib-sieve/sieve-result.c
+++ b/pigeonhole/src/lib-sieve/sieve-result.c
@@ -1274,6 +1274,7 @@ sieve_result_action_commit_or_rollback(struct sieve_result_execution *rexec,
{
struct sieve_result_action *rac = aexec->action;
struct sieve_action *act = &rac->action;
+ const struct sieve_execute_env *exec_env = rexec->action_env.exec_env;
/* Skip actions that are already finalized. */
if (aexec->state >= SIEVE_ACTION_EXECUTION_STATE_FINALIZED)
@@ -1312,9 +1313,14 @@ sieve_result_action_commit_or_rollback(struct sieve_result_execution *rexec,
/* This is bad; try to salvage as much as possible */
if (*commit_status == SIEVE_EXEC_OK) {
*commit_status = cstatus;
- if (!rexec->committed) {
- /* We haven't executed anything yet;
- continue as rollback */
+ if (!rexec->committed ||
+ exec_env->exec_status->store_failed) {
+ /* We haven't executed anything yet,
+ or storing mail locally failed;
+ continue as rollback. We generally
+ don't want to fail entirely, e.g.
+ a failed mail forward shouldn't
+ cause duplicate local deliveries. */
status = cstatus;
}
}