From 414251d607b4dd0d2b096bc926607f8c0c987d1e Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Sun, 3 Jan 2016 16:29:30 +0100 Subject: [PATCH] lib-sieve: Fixed duplication of discard actions in result. No duplicate check function was implemented, so that the discard action would be duplicated each time it is invoked. This only affects the action limits (each discard invocation is counted as another new action). The result of the script execution would be identical. --- src/lib-sieve/cmd-discard.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/lib-sieve/cmd-discard.c b/src/lib-sieve/cmd-discard.c index 108397d79..d643f415a 100644 --- a/src/lib-sieve/cmd-discard.c +++ b/src/lib-sieve/cmd-discard.c @@ -55,6 +55,13 @@ const struct sieve_operation_def cmd_discard_operation = { * Discard actions */ +static bool act_discard_equals + (const struct sieve_script_env *senv, const struct sieve_action *act1, + const struct sieve_action *act2); +static int act_discard_check_duplicate + (const struct sieve_runtime_env *renv, + const struct sieve_action *act, + const struct sieve_action *act_other); static void act_discard_print (const struct sieve_action *action, const struct sieve_result_print_env *rpenv, bool *keep); @@ -64,6 +71,8 @@ static int act_discard_commit const struct sieve_action_def act_discard = { .name = "discard", + .equals = act_discard_equals, + .check_duplicate = act_discard_check_duplicate, .print = act_discard_print, .commit = act_discard_commit, }; @@ -115,6 +124,22 @@ static int cmd_discard_operation_execute * Action implementation */ +static bool act_discard_equals +(const struct sieve_script_env *senv ATTR_UNUSED, + const struct sieve_action *act1 ATTR_UNUSED, + const struct sieve_action *act2 ATTR_UNUSED) +{ + return TRUE; +} + +static int act_discard_check_duplicate +(const struct sieve_runtime_env *renv ATTR_UNUSED, + const struct sieve_action *act ATTR_UNUSED, + const struct sieve_action *act_other ATTR_UNUSED) +{ + return 1; +} + static void act_discard_print (const struct sieve_action *action ATTR_UNUSED, const struct sieve_result_print_env *rpenv, bool *keep) -- GitLab