From 3f240ee5ba3ca2968b6024e8076f6a943b61d336 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sun, 1 Feb 2026 16:00:05 +0000 Subject: [PATCH] [Fix] worker_util: add hyperscan handlers to controller Controller was missing hyperscan/multipattern/regexp_map hot-swap handlers, causing it to stay on ACISM fallback while normal workers switched to hyperscan. --- src/libserver/worker_util.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/libserver/worker_util.c b/src/libserver/worker_util.c index cbc9107af6..6236e7914d 100644 --- a/src/libserver/worker_util.c +++ b/src/libserver/worker_util.c @@ -2540,6 +2540,22 @@ void rspamd_worker_init_controller(struct rspamd_worker *worker, ctx = (struct rspamd_abstract_worker_ctx *) worker->ctx; rspamd_controller_load_saved_stats(worker->srv, worker->srv->cfg); +#ifdef WITH_HYPERSCAN + /* Controller also needs hyperscan handlers for hot-swap support */ + rspamd_control_worker_add_cmd_handler(worker, + RSPAMD_CONTROL_HYPERSCAN_LOADED, + rspamd_worker_hyperscan_ready, + NULL); + rspamd_control_worker_add_cmd_handler(worker, + RSPAMD_CONTROL_MULTIPATTERN_LOADED, + rspamd_worker_multipattern_ready, + NULL); + rspamd_control_worker_add_cmd_handler(worker, + RSPAMD_CONTROL_REGEXP_MAP_LOADED, + rspamd_worker_regexp_map_ready, + NULL); +#endif + if (worker->index == 0) { /* Enable periodics and other stuff */ static struct rspamd_controller_periodics_cbdata cbd; -- 2.47.3