commit 7b97551: [Project] Http_stat: Notice statfiles when creating runtime

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


Author: Vsevolod Stakhov
Date: 2022-06-18 14:50:43 +0100
URL: https://github.com/rspamd/rspamd/commit/7b97551741638838332ab7566d932200830f018d (HEAD -> master)

[Project] Http_stat: Notice statfiles when creating runtime

---
 src/libstat/backends/http_backend.cxx | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/libstat/backends/http_backend.cxx b/src/libstat/backends/http_backend.cxx
index 51ac6e0d8..eaf2b1804 100644
--- a/src/libstat/backends/http_backend.cxx
+++ b/src/libstat/backends/http_backend.cxx
@@ -80,9 +80,13 @@ private:
 class http_backend_runtime final {
 public:
 	static auto create(struct rspamd_task *task, bool is_learn) -> http_backend_runtime *;
+	/* Add a new statfile with a specific id to the list of statfiles */
+	auto notice_statfile(int id, const struct rspamd_statfile_config *st) -> void {
+		seen_statfiles[id] = st;
+	}
 private:
 	http_backends_collection *all_backends;
-	robin_hood::unordered_flat_map<int, struct rspamd_statfile *> seen_statfiles;
+	robin_hood::unordered_flat_map<int, const struct rspamd_statfile_config *> seen_statfiles;
 	struct upstream *selected;
 private:
 	http_backend_runtime(struct rspamd_task *task, bool is_learn) :
@@ -249,17 +253,21 @@ rspamd_http_runtime(struct rspamd_task* task,
 					struct rspamd_statfile_config* stcf,
 					gboolean learn,
 					gpointer ctx,
-					gint _id)
+					gint id)
 {
 	auto maybe_existing = rspamd_mempool_get_variable(task->task_pool, RSPAMD_MEMPOOL_HTTP_STAT_BACKEND_RUNTIME);
 
 	if (maybe_existing != nullptr) {
+		auto real_runtime = (rspamd::stat::http::http_backend_runtime *)maybe_existing;
+		real_runtime->notice_statfile(id, stcf);
+
 		return maybe_existing;
 	}
 
 	auto runtime = rspamd::stat::http::http_backend_runtime::create(task, learn);
 
 	if (runtime) {
+		runtime->notice_statfile(id, stcf);
 		rspamd_mempool_set_variable(task->task_pool, RSPAMD_MEMPOOL_HTTP_STAT_BACKEND_RUNTIME,
 				(void *)runtime, nullptr);
 	}


More information about the Commits mailing list