summaryrefslogtreecommitdiffstats
path: root/src/lua
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2017-06-30 21:53:30 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2017-06-30 21:59:47 +0100
commit9d97d3289494e72db53d9d87e722d29ce3996e31 (patch)
tree6ccbed2eb748d444199fcf1f5da82541f2bd9727 /src/lua
parentfc6155ae6b86ac4a7ec8dfa752e6b7f195f2d976 (diff)
downloadrspamd-9d97d3289494e72db53d9d87e722d29ce3996e31.tar.gz
rspamd-9d97d3289494e72db53d9d87e722d29ce3996e31.zip
[Fix] Do not overwrite score when setting pre-action
Diffstat (limited to 'src/lua')
-rw-r--r--src/lua/lua_task.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/lua/lua_task.c b/src/lua/lua_task.c
index 06b699a38..b9d8ad56f 100644
--- a/src/lua/lua_task.c
+++ b/src/lua/lua_task.c
@@ -1210,10 +1210,15 @@ lua_task_set_pre_result (lua_State * L)
if (action < METRIC_ACTION_MAX && action >= METRIC_ACTION_REJECT) {
/* We also need to set the default metric to that result */
- mres = rspamd_create_metric_result (task);
- if (mres != NULL) {
- mres->score = mres->metric->actions[action].score;
- mres->action = action;
+ if (!task->result) {
+ mres = rspamd_create_metric_result (task);
+ if (mres != NULL) {
+ mres->score = mres->metric->actions[action].score;
+ mres->action = action;
+ }
+ }
+ else {
+ task->result->action = action;
}
task->pre_result.action = action;