diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2018-10-26 17:09:58 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2018-10-26 17:09:58 +0100 |
commit | 856cb10ddaeb0db71dfe5bee6e700c3cf08f4fab (patch) | |
tree | b9e3f68f643ed622d2321f9a8ce0ebdd529f9c1d /src/lua/lua_dns_resolver.c | |
parent | a821e3c6d98648455e0f8968453a885a18d9ebc4 (diff) | |
download | rspamd-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.c | 17 |
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); } } } |