Two fixes for hyperscan cache file handling:
1. Increase hyperscan_cache_file.filename buffer from 64 to 80 bytes
to accommodate full filenames (64 hex hash + ".hs.unser" = 73 chars)
2. Add rspamd_hyperscan_notice_known() call in re_cache.c after loading
hyperscan databases. Without this, re_cache files weren't registered
as "known" and would be deleted by cleanup_maybe() on restart,
causing unnecessary recompilation.
g_free(hs_flags);
re_class->nhs = n;
+ /* Notify main process about the loaded hyperscan file */
+ rspamd_hyperscan_notice_known(path);
+
if (!has_valid) {
has_valid = TRUE;
all_valid = TRUE;
} health;
/* Used when a worker loads a valid hyperscan file */
struct {
- char filename[64]; /* Just the filename, not full path */
+ char filename[80]; /* Just the filename: 64 hex hash + .hs.unser + null */
} hyperscan_cache_file;
/* Send when one worker has blocked some IP address */
struct {