diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2017-06-30 21:53:30 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2017-06-30 21:59:47 +0100 |
commit | 9d97d3289494e72db53d9d87e722d29ce3996e31 (patch) | |
tree | 6ccbed2eb748d444199fcf1f5da82541f2bd9727 | |
parent | fc6155ae6b86ac4a7ec8dfa752e6b7f195f2d976 (diff) | |
download | rspamd-9d97d3289494e72db53d9d87e722d29ce3996e31.tar.gz rspamd-9d97d3289494e72db53d9d87e722d29ce3996e31.zip |
[Fix] Do not overwrite score when setting pre-action
-rw-r--r-- | src/lua/lua_task.c | 13 |
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; |