summaryrefslogtreecommitdiffstats
path: root/src/lua/lua_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/lua_util.c')
-rw-r--r--src/lua/lua_util.c29
1 files changed, 17 insertions, 12 deletions
diff --git a/src/lua/lua_util.c b/src/lua/lua_util.c
index ac0c5f18a..3e6b34c81 100644
--- a/src/lua/lua_util.c
+++ b/src/lua/lua_util.c
@@ -195,24 +195,29 @@ lua_util_process_message (lua_State *L)
task->s = rspamd_session_create (task->task_pool, rspamd_task_fin,
rspamd_task_restore, rspamd_task_free_hard, task);
- if (rspamd_task_process (task, NULL, message, mlen, TRUE)) {
- event_base_loop (base, 0);
+ if (!rspamd_task_load_message (task, NULL, message, mlen)) {
+ lua_pushnil (L);
+ }
+ else {
+ if (rspamd_task_process (task, RSPAMD_TASK_PROCESS_ALL)) {
+ event_base_loop (base, 0);
- if (res != NULL) {
- ucl_object_push_lua (L, res, true);
+ if (res != NULL) {
+ ucl_object_push_lua (L, res, true);
- ucl_object_unref (res);
+ ucl_object_unref (res);
+ }
+ else {
+ ucl_object_push_lua (L, rspamd_protocol_write_ucl (task, NULL),
+ true);
+ rdns_resolver_release (task->resolver->r);
+ rspamd_task_free_hard (task);
+ }
}
else {
- ucl_object_push_lua (L, rspamd_protocol_write_ucl (task, NULL),
- true);
- rdns_resolver_release (task->resolver->r);
- rspamd_task_free_hard (task);
+ lua_pushnil (L);
}
}
- else {
- lua_pushnil (L);
- }
event_base_free (base);
}