commit 6550488: [Minor] Pass statfile id when requesting for the backend runtime

Vsevolod Stakhov vsevolod at rspamd.com
Sat Jun 18 13:56:03 UTC 2022


Author: Vsevolod Stakhov
Date: 2022-06-18 14:35:55 +0100
URL: https://github.com/rspamd/rspamd/commit/655048871c3bd6ee0b8e957a2b6f127b71149bec

[Minor] Pass statfile id when requesting for the backend runtime

---
 src/libstat/backends/backends.h        | 6 ++++--
 src/libstat/backends/cdb_backend.cxx   | 3 ++-
 src/libstat/backends/http_backend.cxx  | 7 ++++---
 src/libstat/backends/mmaped_file.c     | 7 ++++---
 src/libstat/backends/redis_backend.c   | 2 +-
 src/libstat/backends/sqlite3_backend.c | 2 +-
 src/libstat/stat_process.c             | 4 ++--
 7 files changed, 18 insertions(+), 13 deletions(-)

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) {


More information about the Commits mailing list