LUA_FUNCTION_DEF (task, create_from_buffer);
/* Task methods */
LUA_FUNCTION_DEF (task, get_message);
-LUA_FUNCTION_DEF (task, rspamd_message_parse);
+LUA_FUNCTION_DEF (task, process_message);
/***
* @method task:get_cfg()
* Get configuration object for a task.
static const struct luaL_reg tasklib_m[] = {
LUA_INTERFACE_DEF (task, get_message),
LUA_INTERFACE_DEF (task, destroy),
- LUA_INTERFACE_DEF (task, rspamd_message_parse),
+ LUA_INTERFACE_DEF (task, process_message),
LUA_INTERFACE_DEF (task, set_cfg),
LUA_INTERFACE_DEF (task, get_cfg),
LUA_INTERFACE_DEF (task, get_mempool),
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);
}