diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-04-11 15:06:01 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-04-11 15:06:01 +0100 |
commit | 5080c1565010de3a198507bc35dadd0cc3aad210 (patch) | |
tree | 1b55b8130b782627e1a377dfe70bd5f03376a0e6 /src/lua/lua_task.c | |
parent | 6943c3c3a4dd1334aa041fcd7df9598ecec3f152 (diff) | |
download | rspamd-5080c1565010de3a198507bc35dadd0cc3aad210.tar.gz rspamd-5080c1565010de3a198507bc35dadd0cc3aad210.zip |
[Minor] Allow to set a resolver for task
Diffstat (limited to 'src/lua/lua_task.c')
-rw-r--r-- | src/lua/lua_task.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/lua/lua_task.c b/src/lua/lua_task.c index 8e739f725..7bc4438cd 100644 --- a/src/lua/lua_task.c +++ b/src/lua/lua_task.c @@ -394,9 +394,14 @@ end */ LUA_FUNCTION_DEF (task, get_resolver); /*** - * @method task:inc_dns_req() - * Increment number of DNS requests for the task. Is used just for logging purposes. + * @method task:set_resolver(resolver) + * Sets rspamd_resolver for a specified task. */ +LUA_FUNCTION_DEF (task, set_resolver); +/*** +* @method task:inc_dns_req() +* Increment number of DNS requests for the task. Is used just for logging purposes. +*/ LUA_FUNCTION_DEF (task, inc_dns_req); /*** * @method task:get_dns_req() @@ -1058,6 +1063,7 @@ static const struct luaL_reg tasklib_m[] = { LUA_INTERFACE_DEF (task, get_queue_id), LUA_INTERFACE_DEF (task, get_uid), LUA_INTERFACE_DEF (task, get_resolver), + LUA_INTERFACE_DEF (task, set_resolver), LUA_INTERFACE_DEF (task, inc_dns_req), LUA_INTERFACE_DEF (task, get_dns_req), LUA_INTERFACE_DEF (task, has_recipients), @@ -2665,6 +2671,23 @@ lua_task_get_resolver (lua_State *L) } static gint +lua_task_set_resolver (lua_State *L) +{ + LUA_TRACE_POINT; + struct rspamd_task *task = lua_check_task (L, 1); + struct rspamd_dns_resolver *resolver = lua_check_dns_resolver (L, 2); + + if (task != NULL && resolver != NULL) { + task->resolver = resolver; + } + else { + return luaL_error (L, "invalid arguments"); + } + + return 0; +} + +static gint lua_task_inc_dns_req (lua_State *L) { LUA_TRACE_POINT; |