commit 0f1e8e0: [Minor] Support shadow results in lua task api
Vsevolod Stakhov
vsevolod at highsecure.ru
Tue Apr 14 14:56:10 UTC 2020
Author: Vsevolod Stakhov
Date: 2020-04-14 15:49:41 +0100
URL: https://github.com/rspamd/rspamd/commit/0f1e8e07e0a45d375176f017d8fdef131d537909 (HEAD -> master)
[Minor] Support shadow results in lua task api
---
src/lua/lua_task.c | 46 ++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 42 insertions(+), 4 deletions(-)
diff --git a/src/lua/lua_task.c b/src/lua/lua_task.c
index 8152ace54..4f92bdb06 100644
--- a/src/lua/lua_task.c
+++ b/src/lua/lua_task.c
@@ -4589,6 +4589,10 @@ lua_task_get_symbols (lua_State *L)
if (task) {
mres = task->result;
+ if (lua_isstring (L, 2)) {
+ mres = rspamd_find_metric_result (task, lua_tostring (L, 2));
+ }
+
if (mres) {
lua_createtable (L, kh_size (mres->symbols), 0);
lua_createtable (L, kh_size (mres->symbols), 0);
@@ -4628,6 +4632,10 @@ lua_task_get_symbols_all (lua_State *L)
if (task) {
mres = task->result;
+ if (lua_isstring (L, 2)) {
+ mres = rspamd_find_metric_result (task, lua_tostring (L, 2));
+ }
+
if (mres) {
found = TRUE;
lua_createtable (L, kh_size (mres->symbols), 0);
@@ -4664,6 +4672,10 @@ lua_task_get_symbols_numeric (lua_State *L)
if (task) {
mres = task->result;
+ if (lua_isstring (L, 2)) {
+ mres = rspamd_find_metric_result (task, lua_tostring (L, 2));
+ }
+
if (mres) {
lua_createtable (L, kh_size (mres->symbols), 0);
lua_createtable (L, kh_size (mres->symbols), 0);
@@ -4714,6 +4726,10 @@ lua_task_get_groups (lua_State *L)
need_private = !(task->cfg->public_groups_only);
}
+ if (lua_isstring (L, 3)) {
+ mres = rspamd_find_metric_result (task, lua_tostring (L, 3));
+ }
+
lua_createtable (L, 0, kh_size (mres->sym_groups));
kh_foreach (mres->sym_groups, gr, gr_score, {
@@ -5923,6 +5939,10 @@ lua_task_get_metric_result (lua_State *L)
if (task) {
metric_res = task->result;
+ if (lua_isstring (L, 2)) {
+ metric_res = rspamd_find_metric_result (task, lua_tostring (L, 2));
+ }
+
/* Fields added:
* - `score`: current score
* - `action`: current action as a string
@@ -5938,7 +5958,7 @@ lua_task_get_metric_result (lua_State *L)
lua_pushnumber (L, metric_res->score);
lua_settable (L, -3);
- action = rspamd_check_action_metric (task, NULL, NULL);
+ action = rspamd_check_action_metric (task, NULL, metric_res);
if (action) {
lua_pushstring (L, "action");
@@ -5982,7 +6002,13 @@ lua_task_get_metric_score (lua_State *L)
struct rspamd_scan_result *metric_res;
if (task) {
- if ((metric_res = task->result) != NULL) {
+ metric_res = task->result;
+
+ if (lua_isstring (L, 2)) {
+ metric_res = rspamd_find_metric_result (task, lua_tostring (L, 2));
+ }
+
+ if (metric_res != NULL) {
lua_createtable (L, 2, 0);
lua_pushnumber (L, isnan (metric_res->score) ? 0.0 : metric_res->score);
rs = rspamd_task_get_required_score (task, metric_res);
@@ -6009,7 +6035,13 @@ lua_task_get_metric_action (lua_State *L)
struct rspamd_action *action;
if (task) {
- action = rspamd_check_action_metric (task, NULL, NULL);
+ struct rspamd_scan_result *mres = task->result;
+
+ if (lua_isstring (L, 2)) {
+ mres = rspamd_find_metric_result (task, lua_tostring (L, 2));
+ }
+
+ action = rspamd_check_action_metric (task, NULL, mres);
lua_pushstring (L, action->name);
}
else {
@@ -6035,7 +6067,13 @@ lua_task_set_metric_score (lua_State *L)
}
if (task) {
- if ((metric_res = task->result) != NULL) {
+ metric_res = task->result;
+
+ if (lua_isstring (L, 4)) {
+ metric_res = rspamd_find_metric_result (task, lua_tostring (L, 4));
+ }
+
+ if (metric_res != NULL) {
msg_debug_task ("set metric score from %.2f to %.2f",
metric_res->score, nscore);
metric_res->score = nscore;
More information about the Commits
mailing list