]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Pass more information about pre_result in task:has_pre_result()
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 15 Jun 2021 16:22:02 +0000 (17:22 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 15 Jun 2021 16:22:02 +0000 (17:22 +0100)
src/lua/lua_task.c

index e44bc81b302cb06cb59a8d47a54640970d0eba0c..25e08e99a0a285d6edb2d6b560530ec4caaad793 100644 (file)
@@ -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