From: Vsevolod Stakhov Date: Sat, 18 Jun 2022 13:35:55 +0000 (+0100) Subject: [Minor] Pass statfile id when requesting for the backend runtime X-Git-Tag: 3.3~190 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=655048871c3bd6ee0b8e957a2b6f127b71149bec;p=rspamd.git [Minor] Pass statfile id when requesting for the backend runtime --- diff --git a/src/libstat/backends/backends.h b/src/libstat/backends/backends.h index afb408a1a..67d612383 100644 --- a/src/libstat/backends/backends.h +++ b/src/libstat/backends/backends.h @@ -42,7 +42,9 @@ struct rspamd_stat_backend { struct rspamd_statfile *st); gpointer (*runtime) (struct rspamd_task *task, - struct rspamd_statfile_config *stcf, gboolean learn, gpointer ctx); + struct rspamd_statfile_config *stcf, + gboolean learn, gpointer ctx, + gint id); gboolean (*process_tokens) (struct rspamd_task *task, GPtrArray *tokens, gint id, @@ -81,7 +83,7 @@ struct rspamd_stat_backend { struct rspamd_config *cfg, struct rspamd_statfile *st); \ gpointer rspamd_##name##_runtime (struct rspamd_task *task, \ struct rspamd_statfile_config *stcf, \ - gboolean learn, gpointer ctx); \ + gboolean learn, gpointer ctx, gint id); \ gboolean rspamd_##name##_process_tokens (struct rspamd_task *task, \ GPtrArray *tokens, gint id, \ gpointer runtime); \ diff --git a/src/libstat/backends/cdb_backend.cxx b/src/libstat/backends/cdb_backend.cxx index 590cddafa..d0915d2d7 100644 --- a/src/libstat/backends/cdb_backend.cxx +++ b/src/libstat/backends/cdb_backend.cxx @@ -367,7 +367,8 @@ gpointer rspamd_cdb_runtime(struct rspamd_task* task, struct rspamd_statfile_config* stcf, gboolean learn, - gpointer ctx) + gpointer ctx, + gint _id) { /* In CDB we don't have any dynamic stuff */ return ctx; diff --git a/src/libstat/backends/http_backend.cxx b/src/libstat/backends/http_backend.cxx index bd3fd1d48..51ac6e0d8 100644 --- a/src/libstat/backends/http_backend.cxx +++ b/src/libstat/backends/http_backend.cxx @@ -246,9 +246,10 @@ rspamd_http_init(struct rspamd_stat_ctx* ctx, } gpointer rspamd_http_runtime(struct rspamd_task* task, - struct rspamd_statfile_config* stcf, - gboolean learn, - gpointer ctx) + struct rspamd_statfile_config* stcf, + gboolean learn, + gpointer ctx, + gint _id) { auto maybe_existing = rspamd_mempool_get_variable(task->task_pool, RSPAMD_MEMPOOL_HTTP_STAT_BACKEND_RUNTIME); diff --git a/src/libstat/backends/mmaped_file.c b/src/libstat/backends/mmaped_file.c index 7d67fa053..046c024fb 100644 --- a/src/libstat/backends/mmaped_file.c +++ b/src/libstat/backends/mmaped_file.c @@ -940,9 +940,10 @@ rspamd_mmaped_file_close (gpointer p) gpointer rspamd_mmaped_file_runtime (struct rspamd_task *task, - struct rspamd_statfile_config *stcf, - gboolean learn, - gpointer p) + struct rspamd_statfile_config *stcf, + gboolean learn, + gpointer p, + gint _id) { rspamd_mmaped_file_t *mf = p; diff --git a/src/libstat/backends/redis_backend.c b/src/libstat/backends/redis_backend.c index 6d6dc365c..fa69341f1 100644 --- a/src/libstat/backends/redis_backend.c +++ b/src/libstat/backends/redis_backend.c @@ -1650,7 +1650,7 @@ rspamd_stat_redis_on_connect(const struct redisAsyncContext *ac, int status) gpointer rspamd_redis_runtime (struct rspamd_task *task, struct rspamd_statfile_config *stcf, - gboolean learn, gpointer c) + gboolean learn, gpointer c, gint _id) { struct redis_stat_ctx *ctx = REDIS_CTX (c); struct redis_stat_runtime *rt; diff --git a/src/libstat/backends/sqlite3_backend.c b/src/libstat/backends/sqlite3_backend.c index 6b1cca173..45e51fa7b 100644 --- a/src/libstat/backends/sqlite3_backend.c +++ b/src/libstat/backends/sqlite3_backend.c @@ -661,7 +661,7 @@ rspamd_sqlite3_close (gpointer p) gpointer rspamd_sqlite3_runtime (struct rspamd_task *task, - struct rspamd_statfile_config *stcf, gboolean learn, gpointer p) + struct rspamd_statfile_config *stcf, gboolean learn, gpointer p, gint _id) { struct rspamd_stat_sqlite3_rt *rt = NULL; struct rspamd_stat_sqlite3_db *bk = p; diff --git a/src/libstat/stat_process.c b/src/libstat/stat_process.c index 6683990c0..9e2875297 100644 --- a/src/libstat/stat_process.c +++ b/src/libstat/stat_process.c @@ -328,7 +328,7 @@ rspamd_stat_preprocess (struct rspamd_stat_ctx *st_ctx, continue; } - bk_run = st->backend->runtime (task, st->stcf, is_learn, st->bkcf); + bk_run = st->backend->runtime (task, st->stcf, is_learn, st->bkcf, i); if (bk_run == NULL) { msg_err_task ("cannot init backend %s for statfile %s", @@ -1204,7 +1204,7 @@ rspamd_stat_statistics (struct rspamd_task *task, id = g_array_index (cl->statfiles_ids, gint, j); st = g_ptr_array_index (st_ctx->statfiles, id); backend_runtime = st->backend->runtime (task, st->stcf, FALSE, - st->bkcf); + st->bkcf, id); elt = st->backend->get_stat (backend_runtime, st->bkcf); if (elt && ucl_object_type (elt) == UCL_OBJECT) {