From f786fc3053c2a3bc65a8ffe9bb4859f5c904be87 Mon Sep 17 00:00:00 2001 From: Andrew Lewis Date: Thu, 2 Apr 2015 13:00:33 +0200 Subject: [PATCH] Allow getting message queue ID from Lua --- src/lua/lua_task.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/lua/lua_task.c b/src/lua/lua_task.c index 96292bee8..c4e595c8b 100644 --- a/src/lua/lua_task.c +++ b/src/lua/lua_task.c @@ -245,6 +245,11 @@ LUA_FUNCTION_DEF (task, get_raw_headers); * @return {table of tables} list of received headers described above */ LUA_FUNCTION_DEF (task, get_received_headers); +/*** + * @method task:get_queue_id() + * Returns queue ID of the message being processed. + */ +LUA_FUNCTION_DEF (task, get_queue_id); /*** * @method task:get_resolver() * Returns ready to use rspamd_resolver object suitable for making asynchronous DNS requests. @@ -464,6 +469,7 @@ static const struct luaL_reg tasklib_m[] = { LUA_INTERFACE_DEF (task, get_header_full), LUA_INTERFACE_DEF (task, get_raw_headers), LUA_INTERFACE_DEF (task, get_received_headers), + LUA_INTERFACE_DEF (task, get_queue_id), LUA_INTERFACE_DEF (task, get_resolver), LUA_INTERFACE_DEF (task, inc_dns_req), LUA_INTERFACE_DEF (task, get_recipients), @@ -1236,6 +1242,20 @@ lua_task_get_received_headers (lua_State * L) return 1; } +static gint +lua_task_get_queue_id (lua_State *L) +{ + struct rspamd_task *task = lua_check_task (L, 1); + + if (task && task->queue_id != NULL && task->queue_id != "undef") { + lua_pushstring (L, task->queue_id); + return 1; + } + + lua_pushnil (L); + return 1; +} + static gint lua_task_get_resolver (lua_State *L) { -- 2.39.5