}
}
- cl->cache = rspamd_stat_get_cache (cache_name);
- g_assert (cl->cache != NULL);
- cl->cachecf = cl->cache->init (stat_ctx, cfg, cache_obj);
+ if (cache_name == NULL) {
+ /* We assume that learn cache is the same as backend */
+ cache_name = clf->backend;
+ }
curst = clf->statfiles;
msg_debug_config ("added backend %s for symbol %s",
bk->name, stf->symbol);
+ st->cache = rspamd_stat_get_cache (cache_name);
+ g_assert (st->cache != NULL);
+ st->cachecf = st->cache->init (stat_ctx, cfg, st, cache_obj);
+ msg_debug_config ("added cache %s for symbol %s",
+ st->cache->name, stf->symbol);
+
if (st->bkcf == NULL) {
msg_err_config ("cannot init backend %s for statfile %s",
clf->backend, stf->symbol);
{
struct rspamd_stat_async_elt *elt;
struct rspamd_stat_ctx *st_ctx;
- gdouble jittered_time;
st_ctx = rspamd_stat_get_ctx ();
g_assert (st_ctx != NULL);
/* Common classifier structure */
struct rspamd_classifier {
struct rspamd_stat_ctx *ctx;
- struct rspamd_stat_cache *cache;
- gpointer cachecf;
GArray *statfiles_ids;
gulong spam_learns;
gulong ham_learns;
struct rspamd_statfile_config *stcf;
struct rspamd_classifier *classifier;
struct rspamd_stat_backend *backend;
+ struct rspamd_stat_cache *cache;
+ gpointer cachecf;
gpointer bkcf;
};