struct rspamd_task *task;
gint res;
gint mult_allow, mult_deny;
+ struct rspamd_async_watcher *w;
struct dkim_check_result *next, *prev, *first;
};
}
}
- if (cur->res == -1) {
+ if (cur->res == -1 || cur->key == NULL) {
/* Still need a key */
all_done = FALSE;
}
sel->ctx->domain)));
}
}
+
+ if (all_done && res != NULL) {
+ rspamd_session_watcher_pop (res->task->s, res->w);
+ }
}
static void
if (res == NULL) {
res = rspamd_mempool_alloc0 (task->task_pool, sizeof (*res));
res->prev = res;
+ res->w = rspamd_session_get_watcher (task->s);
cur = res;
}
else {
}
if (res != NULL) {
+ rspamd_session_watcher_push (task->s);
dkim_module_check (res);
}
}