struct thread_entry *thread;
struct rspamd_task *task;
struct rspamd_dns_resolver *resolver;
- struct rspamd_async_watcher *w;
+ struct rspamd_symcache_item *item;
struct rspamd_async_session *s;
};
/* Check arguments */
if (!rspamd_lua_parse_table_arguments (L, 1, &err,
- "*name=S;task=U{task};*type=S;forced=B;session=U{session};config=U{config}",
- &to_resolve, &task, &type_str, &forced, &session, &cfg)) {
+ "*name=S;task=U{task};*type=S;forced=B;session=U{session};config=U{config}",
+ &to_resolve,
+ &task,
+ &type_str,
+ &forced,
+ &session,
+ &cfg)) {
if (err) {
ret = luaL_error (L, "invalid arguments: %s", err->message);
if (ret) {
cbdata->thread = lua_thread_pool_get_running_entry (cfg->lua_thread_pool);
cbdata->s = session;
- cbdata->w = rspamd_session_get_watcher (session);
- rspamd_session_watcher_push (session);
+
+ if (task) {
+ cbdata->item = rspamd_symbols_cache_get_cur_item (task);
+ rspamd_symcache_item_async_inc (task, cbdata->item);
+ }
+
return lua_thread_yield (cbdata->thread, 0);
}
else {
lua_thread_resume (cbdata->thread, 2);
- if (cbdata->s) {
- rspamd_session_watcher_pop (cbdata->s, cbdata->w);
+ if (cbdata->item) {
+ rspamd_symcache_item_async_dec_check (cbdata->task, cbdata->item);
}
}
gint cbref;
gchar *to_resolve;
gchar *user_str;
- struct rspamd_async_watcher *w;
+ struct rspamd_symcache_item *item;
struct rspamd_async_session *s;
};
luaL_unref (L, LUA_REGISTRYINDEX, cd->cbref);
lua_thread_pool_restore_callback (&cbs);
- if (cd->s) {
- rspamd_session_watcher_pop (cd->s, cd->w);
+ if (cd->item) {
+ rspamd_symcache_item_async_dec_check (cd->task, cd->item);
}
if (!cd->pool) {
if (session) {
cbdata->s = session;
- cbdata->w = rspamd_session_get_watcher (session);
- rspamd_session_watcher_push (session);
}
}
else {
if (ret) {
cbdata->s = session;
- cbdata->w = rspamd_session_get_watcher (session);
- rspamd_session_watcher_push (session);
+ cbdata->item = rspamd_symbols_cache_get_cur_item (task);
+ rspamd_symcache_item_async_inc (task, cbdata->item);
/* callback was set up */
lua_pushboolean (L, TRUE);
} else {