summaryrefslogtreecommitdiffstats
path: root/src/lua/lua_dns_resolver.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-10-26 17:09:58 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-10-26 17:09:58 +0100
commit856cb10ddaeb0db71dfe5bee6e700c3cf08f4fab (patch)
treeb9e3f68f643ed622d2321f9a8ce0ebdd529f9c1d /src/lua/lua_dns_resolver.c
parenta821e3c6d98648455e0f8968453a885a18d9ebc4 (diff)
downloadrspamd-856cb10ddaeb0db71dfe5bee6e700c3cf08f4fab.tar.gz
rspamd-856cb10ddaeb0db71dfe5bee6e700c3cf08f4fab.zip
[Minor] Various fixes around async events
Diffstat (limited to 'src/lua/lua_dns_resolver.c')
-rw-r--r--src/lua/lua_dns_resolver.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/lua/lua_dns_resolver.c b/src/lua/lua_dns_resolver.c
index 6c46c12cf..5d1043d75 100644
--- a/src/lua/lua_dns_resolver.c
+++ b/src/lua/lua_dns_resolver.c
@@ -352,6 +352,7 @@ lua_dns_resolver_resolve_common (lua_State *L,
struct rspamd_task *task = NULL;
GError *err = NULL;
gboolean forced = FALSE;
+ struct rspamd_symcache_item *item = NULL;
/* Check arguments */
if (!rspamd_lua_parse_table_arguments (L, first, &err,
@@ -372,6 +373,7 @@ lua_dns_resolver_resolve_common (lua_State *L,
if (task) {
pool = task->task_pool;
session = task->s;
+ item = rspamd_symbols_cache_get_cur_item (task);
}
if (to_resolve != NULL) {
@@ -449,8 +451,8 @@ lua_dns_resolver_resolve_common (lua_State *L,
/* Fail-safety as this function can, in theory, call
* lua_dns_resolver_callback without switching to the event loop
*/
- if (cbdata->item) {
- rspamd_symcache_item_async_inc (task, cbdata->item, M);
+ if (item) {
+ rspamd_symcache_item_async_inc (task, item, M);
}
if (forced) {
@@ -469,10 +471,11 @@ lua_dns_resolver_resolve_common (lua_State *L,
if (ret) {
cbdata->s = session;
- cbdata->item = rspamd_symbols_cache_get_cur_item (task);
- if (cbdata->item) {
- rspamd_symcache_item_async_inc (task, cbdata->item, M);
+
+ if (item) {
+ cbdata->item = item;
+ rspamd_symcache_item_async_inc (task, item, M);
}
/* callback was set up */
lua_pushboolean (L, TRUE);
@@ -481,8 +484,8 @@ lua_dns_resolver_resolve_common (lua_State *L,
lua_pushnil (L);
}
- if (cbdata->item) {
- rspamd_symcache_item_async_dec_check (task, cbdata->item, M);
+ if (item) {
+ rspamd_symcache_item_async_dec_check (task, item, M);
}
}
}