dovecot-2.2-pigeonhole: Fixed handling of SMTP errors.

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Tue Aug 26 22:19:50 UTC 2014


details:   http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/dd2116e13393
changeset: 1912:dd2116e13393
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Wed Aug 27 00:19:40 2014 +0200
description:
Fixed handling of SMTP errors.
Logging was mixed up; it logged permanent SMTP failures as errors rather than mere info.
Redirect now handles temporary failure as a separate error condition, causing LDA to return a temporary failure if no other (storage) actions were performed.

diffstat:

 src/lib-sieve/cmd-redirect.c                       |  14 +++++++-------
 src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c |   4 ++--
 src/lib-sieve/plugins/notify/cmd-notify.c          |   4 ++--
 src/lib-sieve/plugins/vacation/cmd-vacation.c      |   4 ++--
 src/lib-sieve/sieve-actions.c                      |   4 ++--
 5 files changed, 15 insertions(+), 15 deletions(-)

diffs (97 lines):

diff -r 3ceab9d20a00 -r dd2116e13393 src/lib-sieve/cmd-redirect.c
--- a/src/lib-sieve/cmd-redirect.c	Sun Aug 24 00:27:40 2014 +0200
+++ b/src/lib-sieve/cmd-redirect.c	Wed Aug 27 00:19:40 2014 +0200
@@ -357,17 +357,17 @@
 	/* Close SMTP transport */
 	if ( (ret=sieve_smtp_finish(sctx, &error)) <= 0 ) {
 		if ( ret < 0 ) {
-			sieve_result_global_log_error(aenv,
+			sieve_result_global_error(aenv,
 				"failed to redirect message to <%s>: %s "
 				"(temporary failure)",
 				str_sanitize(ctx->to_address, 256), str_sanitize(error, 512));
-		} else {
-			sieve_result_global_error(aenv,
-				"failed to redirect message to <%s>: %s "
-				"(permanent failure)",
-				str_sanitize(ctx->to_address, 256), str_sanitize(error, 512));
+			return SIEVE_EXEC_TEMP_FAILURE;
+		}
 
-		}
+		sieve_result_global_log_error(aenv,
+			"failed to redirect message to <%s>: %s "
+			"(permanent failure)",
+			str_sanitize(ctx->to_address, 256), str_sanitize(error, 512));
 		return SIEVE_EXEC_FAILURE;
 	}
 
diff -r 3ceab9d20a00 -r dd2116e13393 src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c
--- a/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c	Sun Aug 24 00:27:40 2014 +0200
+++ b/src/lib-sieve/plugins/enotify/mailto/ntfy-mailto.c	Wed Aug 27 00:19:40 2014 +0200
@@ -555,11 +555,11 @@
 
 	if ( (ret=sieve_smtp_finish(sctx, &error)) <= 0 ) {
 		if (ret < 0)  {
-			sieve_enotify_global_log_error(nenv,
+			sieve_enotify_global_error(nenv,
 				"failed to send mail notification to %s: %s (temporary failure)",
 				str_c(all),	str_sanitize(error, 512));
 		} else {
-			sieve_enotify_global_error(nenv,
+			sieve_enotify_global_log_error(nenv,
 				"failed to send mail notification to %s: %s (permanent failure)",
 				str_c(all),	str_sanitize(error, 512));
 		}
diff -r 3ceab9d20a00 -r dd2116e13393 src/lib-sieve/plugins/notify/cmd-notify.c
--- a/src/lib-sieve/plugins/notify/cmd-notify.c	Sun Aug 24 00:27:40 2014 +0200
+++ b/src/lib-sieve/plugins/notify/cmd-notify.c	Wed Aug 27 00:19:40 2014 +0200
@@ -784,11 +784,11 @@
 
 	if ( (ret=sieve_smtp_finish(sctx, &error)) <= 0 ) {
 		if (ret < 0) {
-			sieve_result_global_log_error(aenv,
+			sieve_result_global_error(aenv,
 				"failed to send mail notification to %s: %s (temporary failure)",
 				str_c(all),	str_sanitize(error, 512));
 		} else {
-			sieve_result_global_error(aenv,
+			sieve_result_global_log_error(aenv,
 				"failed to send mail notification to %s: %s (permanent failure)",
 				str_c(all),	str_sanitize(error, 512));
 		}
diff -r 3ceab9d20a00 -r dd2116e13393 src/lib-sieve/plugins/vacation/cmd-vacation.c
--- a/src/lib-sieve/plugins/vacation/cmd-vacation.c	Sun Aug 24 00:27:40 2014 +0200
+++ b/src/lib-sieve/plugins/vacation/cmd-vacation.c	Wed Aug 27 00:19:40 2014 +0200
@@ -992,11 +992,11 @@
 	/* Close smtp session */
 	if ( (ret=sieve_smtp_finish(sctx, &error)) <= 0 ) {
 		if ( ret < 0 ) {
-			sieve_result_global_log_error(aenv,
+			sieve_result_global_error(aenv,
 				"failed to send vacation response to <%s>: %s (temporary error)",
 				str_sanitize(reply_to, 256), str_sanitize(error, 512));
 		} else {
-			sieve_result_global_error(aenv,
+			sieve_result_global_log_error(aenv,
 				"failed to send vacation response to <%s>: %s (permanent error)",
 				str_sanitize(reply_to, 256), str_sanitize(error, 512));
 		}
diff -r 3ceab9d20a00 -r dd2116e13393 src/lib-sieve/sieve-actions.c
--- a/src/lib-sieve/sieve-actions.c	Sun Aug 24 00:27:40 2014 +0200
+++ b/src/lib-sieve/sieve-actions.c	Wed Aug 27 00:19:40 2014 +0200
@@ -873,12 +873,12 @@
 
 	if ( (ret=sieve_smtp_finish(sctx, &error)) <= 0 ) {
 		if ( ret < 0 ) {
-			sieve_result_global_log_error(aenv,
+			sieve_result_global_error(aenv,
 				"failed to send rejection message to <%s>: %s "
 				"(temporary failure)",
 				str_sanitize(sender, 256), str_sanitize(error, 512));
 		} else {
-			sieve_result_global_error(aenv,
+			sieve_result_global_log_error(aenv,
 				"failed to send rejection message to <%s>: %s "
 				"(permanent failure)",
 				str_sanitize(sender, 256), str_sanitize(error, 512));


More information about the dovecot-cvs mailing list