summaryrefslogtreecommitdiffstats
path: root/src/lua/lua_task.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-03-11 17:20:17 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-03-11 17:20:17 +0000
commitd24160c5e5c92cbe8c6ca31ff1ce7d79058de23d (patch)
tree91eabb1938cad9cbc120590f29cabf3397b69352 /src/lua/lua_task.c
parentfa687ca63177a2531078d0efa158ccafe5599573 (diff)
downloadrspamd-d24160c5e5c92cbe8c6ca31ff1ce7d79058de23d.tar.gz
rspamd-d24160c5e5c92cbe8c6ca31ff1ce7d79058de23d.zip
[Feature] Add task:get_dns_req method
Diffstat (limited to 'src/lua/lua_task.c')
-rw-r--r--src/lua/lua_task.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/lua/lua_task.c b/src/lua/lua_task.c
index b177f168c..e5214a321 100644
--- a/src/lua/lua_task.c
+++ b/src/lua/lua_task.c
@@ -276,6 +276,12 @@ LUA_FUNCTION_DEF (task, get_resolver);
* 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()
+ * Get number of dns requests being sent in the task
+ * @return {number} number of DNS requests
+ */
+LUA_FUNCTION_DEF (task, get_dns_req);
/***
* @method task:has_recipients([type])
@@ -570,6 +576,7 @@ static const struct luaL_reg tasklib_m[] = {
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_dns_req),
LUA_INTERFACE_DEF (task, has_recipients),
LUA_INTERFACE_DEF (task, get_recipients),
LUA_INTERFACE_DEF (task, has_from),
@@ -1391,6 +1398,21 @@ lua_task_inc_dns_req (lua_State *L)
return 0;
}
+static gint
+lua_task_get_dns_req (lua_State *L)
+{
+ struct rspamd_task *task = lua_check_task (L, 1);
+
+ if (task != NULL) {
+ lua_pushnumber (L, task->dns_requests);
+ }
+ else {
+ return luaL_error (L, "invalid arguments");
+ }
+
+ return 1;
+}
+
/*
* Convert element at the specified position to the type
* for get_from/get_recipients