dovecot-2.1-pigeonhole: lib-sieve: spamvirustest: improved trace...

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Thu Aug 16 23:28:11 EEST 2012


details:   http://hg.rename-it.nl/dovecot-2.1-pigeonhole/rev/ff55c9946366
changeset: 1641:ff55c9946366
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Thu Aug 16 22:28:06 2012 +0200
description:
lib-sieve: spamvirustest: improved trace debugging of score calculation.

diffstat:

 src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c |  47 +++++----
 src/lib-sieve/plugins/spamvirustest/tst-spamvirustest.c        |   2 +
 2 files changed, 27 insertions(+), 22 deletions(-)

diffs (159 lines):

diff -r cfe8e9f49dfe -r ff55c9946366 src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c
--- a/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c	Wed Aug 15 00:55:05 2012 +0200
+++ b/src/lib-sieve/plugins/spamvirustest/ext-spamvirustest-common.c	Thu Aug 16 22:28:06 2012 +0200
@@ -457,7 +457,6 @@
 	const struct sieve_message_data *msgdata = renv->msgdata;
 	struct sieve_message_context *msgctx = renv->msgctx;
 	struct ext_spamvirustest_message_context *mctx;
-	const char *ext_name = sieve_extension_name(ext);
 	regmatch_t match_values[2];
 	const char *header_value, *error;
 	const char *status = NULL, *max = NULL;
@@ -470,7 +469,7 @@
 	 */
 	if ( ext_data == NULL ) {
 		sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS,
-			"%s: extension not configured", ext_name);
+			"error: extension not configured");
 		return "0";
 	}
 
@@ -504,8 +503,8 @@
 				(msgdata->mail, max_header->header_name, &header_value) < 0 ||
 				header_value == NULL ) {
 				sieve_runtime_trace(renv,  SIEVE_TRLVL_TESTS,
-					"%s: header '%s' not found in message",
-					ext_name, max_header->header_name);
+					"header '%s' not found in message",
+					max_header->header_name);
 				goto failed;
 			}
 
@@ -514,16 +513,16 @@
 				if ( regexec(&max_header->regexp, header_value, 2, match_values, 0)
 					!= 0 ) {
 					sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS,
-						"%s: regexp for header '%s' did not match "
-						"on value '%s'", ext_name, max_header->header_name, header_value);
+						"regexp for header '%s' did not match "
+						"on value '%s'", max_header->header_name, header_value);
 					goto failed;
 				}
 
 				max = _regexp_match_get_value(header_value, 1, match_values, 2);
 				if ( max == NULL ) {
 					sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS,
-						"%s: regexp did not return match value "
-						"for string '%s'", ext_name, header_value);
+						"regexp did not return match value "
+						"for string '%s'", header_value);
 					goto failed;
 				}
 			} else {
@@ -532,7 +531,7 @@
 
 			if ( !ext_spamvirustest_parse_decimal_value(max, &max_value, &error) ) {
 				sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS,
-					"%s: failed to parse maximum value: %s", ext_name, error);
+					"failed to parse maximum value: %s", error);
 				goto failed;
 			}
 		} else {
@@ -541,7 +540,7 @@
 
 		if ( max_value == 0 ) {
 			sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS,
-				"%s: max value is 0", ext_name);
+				"error: max value is 0");
 			goto failed;
 		}
 	} else {
@@ -557,8 +556,8 @@
 		(msgdata->mail, status_header->header_name, &header_value) < 0 ||
 		header_value == NULL ) {
 		sieve_runtime_trace(renv,  SIEVE_TRLVL_TESTS,
-			"%s: header '%s' not found in message",
-			ext_name, status_header->header_name);
+			"header '%s' not found in message",
+			status_header->header_name);
 		goto failed;
 	}
 
@@ -567,16 +566,16 @@
 		if ( regexec(&status_header->regexp, header_value, 2, match_values, 0)
 			!= 0 ) {
 			sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS,
-				"%s: regexp for header '%s' did not match on value '%s'",
-			ext_name, status_header->header_name, header_value);
+				"regexp for header '%s' did not match on value '%s'",
+				status_header->header_name, header_value);
 			goto failed;
 		}
 
 		status = _regexp_match_get_value(header_value, 1, match_values, 2);
 		if ( status == NULL ) {
 			sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS,
-				"%s: regexp did not return match value for string '%s'",
-				ext_name, header_value);
+				"regexp did not return match value for string '%s'",
+				header_value);
 			goto failed;
 		}
 	} else {
@@ -588,8 +587,8 @@
 		if ( !ext_spamvirustest_parse_decimal_value
 			(status, &status_value, &error) ) {
 			sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS,
-				"%s: failed to parse status value '%s': %s",
-				ext_name, status, error);
+				"failed to parse status value '%s': %s",
+				status, error);
 			goto failed;
 		}
 		break;
@@ -597,8 +596,8 @@
 		if ( !ext_spamvirustest_parse_strlen_value
 			(status, &status_value, &error) ) {
 			sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS,
-				"%s: failed to parse status value '%s': %s",
-				ext_name, status, error);
+				"failed to parse status value '%s': %s",
+				status, error);
 			goto failed;
 		}
 		break;
@@ -618,8 +617,8 @@
 
 		if ( i > max_text ) {
 			sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS,
-				"%s: failed to match textstatus value '%s'",
-				ext_name, status);
+				"failed to match textstatus value '%s'",
+				status);
 			goto failed;
 		}
 		break;
@@ -636,6 +635,10 @@
 	else
 		mctx->score_ratio = (status_value / max_value);
 
+	sieve_runtime_trace(renv, SIEVE_TRLVL_TESTS,
+		"extracted score=%.3f, max=%.3f, ratio=%.0f %%",
+		status_value, max_value, mctx->score_ratio * 100);
+
 	return ext_spamvirustest_get_score(ext, mctx->score_ratio, percent);
 
 failed:
diff -r cfe8e9f49dfe -r ff55c9946366 src/lib-sieve/plugins/spamvirustest/tst-spamvirustest.c
--- a/src/lib-sieve/plugins/spamvirustest/tst-spamvirustest.c	Wed Aug 15 00:55:05 2012 +0200
+++ b/src/lib-sieve/plugins/spamvirustest/tst-spamvirustest.c	Thu Aug 16 22:28:06 2012 +0200
@@ -290,7 +290,9 @@
 	}
 
 	/* Get score value */
+	sieve_runtime_trace_descend(renv);
 	score_value = ext_spamvirustest_get_value(renv, this_ext, percent);
+	sieve_runtime_trace_ascend(renv);
 
 	/* Construct value list */
 	value_list = sieve_single_stringlist_create_cstr(renv, score_value, TRUE);


More information about the dovecot-cvs mailing list