From 237e498ff32ddf6653c0a3723aed5e5ae19efa8a Mon Sep 17 00:00:00 2001 From: Andrew Lewis Date: Tue, 11 Oct 2016 17:21:51 +0200 Subject: [PATCH] [Feature] Allow getting task UID from Lua --- src/lua/lua_task.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/lua/lua_task.c b/src/lua/lua_task.c index a3354acb6..89875d51c 100644 --- a/src/lua/lua_task.c +++ b/src/lua/lua_task.c @@ -265,6 +265,11 @@ LUA_FUNCTION_DEF (task, get_received_headers); * Returns queue ID of the message being processed. */ LUA_FUNCTION_DEF (task, get_queue_id); +/*** + * @method task:get_uid() + * Returns ID of the task being processed. + */ +LUA_FUNCTION_DEF (task, get_uid); /*** * @method task:get_resolver() * Returns ready to use rspamd_resolver object suitable for making asynchronous DNS requests. @@ -704,6 +709,7 @@ static const struct luaL_reg tasklib_m[] = { 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_uid), LUA_INTERFACE_DEF (task, get_resolver), LUA_INTERFACE_DEF (task, inc_dns_req), LUA_INTERFACE_DEF (task, get_dns_req), @@ -1598,6 +1604,21 @@ lua_task_get_queue_id (lua_State *L) return 1; } +static gint +lua_task_get_uid (lua_State *L) +{ + struct rspamd_task *task = lua_check_task (L, 1); + + if (task) { + lua_pushstring (L, task->task_pool->tag.uid); + } + else { + return luaL_error (L, "invalid arguments"); + } + + return 1; +} + static gint lua_task_get_resolver (lua_State *L) { -- 2.39.5