aboutsummaryrefslogtreecommitdiffstats
path: root/src/lua
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2021-06-15 17:22:02 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2021-06-15 17:22:02 +0100
commit2145e489461a226739b786b7c7b2a4d17acd366b (patch)
tree40e9826ac2b1391064c28f24aaf15322d49b118a /src/lua
parent3f6ec1f16340d59aad730ffe332d9feefa544707 (diff)
downloadrspamd-2145e489461a226739b786b7c7b2a4d17acd366b.tar.gz
rspamd-2145e489461a226739b786b7c7b2a4d17acd366b.zip
[Minor] Pass more information about pre_result in task:has_pre_result()
Diffstat (limited to 'src/lua')
-rw-r--r--src/lua/lua_task.c34
1 files changed, 32 insertions, 2 deletions
diff --git a/src/lua/lua_task.c b/src/lua/lua_task.c
index e44bc81b3..25e08e99a 100644
--- a/src/lua/lua_task.c
+++ b/src/lua/lua_task.c
@@ -2366,15 +2366,45 @@ lua_task_has_pre_result (lua_State * L)
{
LUA_TRACE_POINT;
struct rspamd_task *task = lua_check_task (L, 1);
+ gint nret = 1;
if (task) {
- lua_pushboolean (L, task->result->passthrough_result != NULL);
+ if (task->result->passthrough_result) {
+ struct rspamd_passthrough_result *pr = task->result->passthrough_result;
+
+ lua_pushboolean (L, true);
+ nret = 4;
+ /* bool, action, message, module */
+
+ if (pr->action) {
+ lua_pushstring(L, rspamd_action_to_str(pr->action->action_type));
+ }
+ else {
+ lua_pushnil(L);
+ }
+
+ if (pr->message) {
+ lua_pushstring(L, pr->message);
+ }
+ else {
+ lua_pushnil(L);
+ }
+ if (pr->module) {
+ lua_pushstring(L, pr->module);
+ }
+ else {
+ lua_pushnil(L);
+ }
+ }
+ else {
+ lua_pushboolean (L, false);
+ }
}
else {
return luaL_error (L, "invalid arguments");
}
- return 1;
+ return nret;
}
static gint