]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
Rework cache API slightly
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 11 Jan 2016 11:18:28 +0000 (11:18 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 11 Jan 2016 11:18:28 +0000 (11:18 +0000)
src/libstat/learn_cache/learn_cache.h
src/libstat/learn_cache/redis_cache.c
src/libstat/learn_cache/sqlite3_cache.c
src/libstat/stat_process.c

index 263252695f43c908fa9721600f2631ff47b5068a..3ca5baa53fc7d09aab67c532bfd2b07c1a6db262 100644 (file)
@@ -45,12 +45,10 @@ struct rspamd_stat_cache {
                        gpointer ctx, gboolean learn);
        gint (*check)(struct rspamd_task *task,
                        gboolean is_spam,
-                       gpointer runtime,
-                       gpointer ctx);
+                       gpointer runtime);
        gint (*learn)(struct rspamd_task *task,
                        gboolean is_spam,
-                       gpointer runtime,
-                       gpointer ctx);
+                       gpointer runtime);
        void (*close) (gpointer ctx);
        gpointer ctx;
 };
@@ -64,12 +62,10 @@ struct rspamd_stat_cache {
                                gpointer ctx, gboolean learn); \
                gint rspamd_stat_cache_##name##_check (struct rspamd_task *task, \
                                gboolean is_spam, \
-                               gpointer runtime, \
-                               gpointer ctx); \
+                               gpointer runtime); \
                gint rspamd_stat_cache_##name##_learn (struct rspamd_task *task, \
                                gboolean is_spam, \
-                               gpointer runtime, \
-                               gpointer ctx); \
+                               gpointer runtime); \
                void rspamd_stat_cache_##name##_close (gpointer ctx)
 
 RSPAMD_STAT_CACHE_DEF(sqlite3);
index 9224a5f46e084c2ccd0859dd608f3512d8417942..c24c47b6d265ecbbee43cad4e5b9ef63efdec0b8 100644 (file)
@@ -306,8 +306,7 @@ rspamd_stat_cache_redis_runtime (struct rspamd_task *task,
 gint
 rspamd_stat_cache_redis_check (struct rspamd_task *task,
                gboolean is_spam,
-               gpointer runtime,
-               gpointer c)
+               gpointer runtime)
 {
        struct rspamd_redis_cache_runtime *rt = runtime;
        struct timeval tv;
@@ -333,8 +332,7 @@ rspamd_stat_cache_redis_check (struct rspamd_task *task,
 gint
 rspamd_stat_cache_redis_learn (struct rspamd_task *task,
                gboolean is_spam,
-               gpointer runtime,
-               gpointer c)
+               gpointer runtime)
 {
        struct rspamd_redis_cache_runtime *rt = runtime;
        struct timeval tv;
index 9594941ba8f00eeab03b9a53fb9b3574dcc2b75a..4bc8f0d06ba3e8caffdeb0688ad7fdbaf81fe4ce 100644 (file)
@@ -174,16 +174,15 @@ rspamd_stat_cache_sqlite3_runtime (struct rspamd_task *task,
                                gpointer ctx, gboolean learn)
 {
        /* No need of runtime for this type of classifier */
-       return NULL;
+       return ctx;
 }
 
 gint
 rspamd_stat_cache_sqlite3_check (struct rspamd_task *task,
                gboolean is_spam,
-               gpointer runtime,
-               gpointer c)
+               gpointer runtime)
 {
-       struct rspamd_stat_sqlite3_ctx *ctx = (struct rspamd_stat_sqlite3_ctx *)c;
+       struct rspamd_stat_sqlite3_ctx *ctx = runtime;
        struct mime_text_part *part;
        rspamd_cryptobox_hash_state_t st;
        rspamd_ftok_t *word;
@@ -243,10 +242,9 @@ rspamd_stat_cache_sqlite3_check (struct rspamd_task *task,
 gint
 rspamd_stat_cache_sqlite3_learn (struct rspamd_task *task,
                gboolean is_spam,
-               gpointer runtime,
-               gpointer c)
+               gpointer runtime)
 {
-       struct rspamd_stat_sqlite3_ctx *ctx = (struct rspamd_stat_sqlite3_ctx *)c;
+       struct rspamd_stat_sqlite3_ctx *ctx = runtime;
        gboolean unlearn = !!(task->flags & RSPAMD_TASK_FLAG_UNLEARN);
        guchar *h;
        gint64 flag;
index 74b226407db51a3bae77b78c4d9bf87beb9a54cb..086b7e2989df43742d5c74be194062a2342996b3 100644 (file)
@@ -391,8 +391,7 @@ rspamd_stat_cache_check (struct rspamd_stat_ctx *st_ctx,
 
                if (cl->cache && cl->cachecf) {
                        rt = cl->cache->runtime (task, cl->cachecf, FALSE);
-                       learn_res = cl->cache->check (task, spam,
-                                       cl->cachecf, rt);
+                       learn_res = cl->cache->check (task, spam, rt);
                }
 
                if (learn_res == RSPAMD_LEARN_INGORE) {
@@ -576,7 +575,7 @@ rspamd_stat_backends_post_learn (struct rspamd_stat_ctx *st_ctx,
 
                if (cl->cache) {
                        cache_run = cl->cache->runtime (task, cl->cachecf, TRUE);
-                       cl->cache->learn (task, spam, cache_run, cl->cachecf);
+                       cl->cache->learn (task, spam, cache_run);
                }
 
                for (j = 0; j < cl->statfiles_ids->len; j ++) {