]> source.dussan.org Git - rspamd.git/commitdiff
[Rework] Use dynamic items for calling callbacks
authorVsevolod Stakhov <vsevolod@rspamd.com>
Mon, 9 May 2022 20:25:23 +0000 (21:25 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Mon, 9 May 2022 20:25:23 +0000 (21:25 +0100)
It is trivial to get a static item by dynamic item by just subtracting
pointers. So there is no need in other complications.

19 files changed:
src/libserver/dns.c
src/libserver/rspamd_symcache.h
src/libserver/symcache/symcache_c.cxx
src/libserver/symcache/symcache_item.hxx
src/libserver/symcache/symcache_runtime.cxx
src/libserver/symcache/symcache_runtime.hxx
src/lua/lua_config.c
src/lua/lua_dns.c
src/lua/lua_dns_resolver.c
src/lua/lua_http.c
src/lua/lua_redis.c
src/lua/lua_spf.c
src/lua/lua_task.c
src/lua/lua_tcp.c
src/lua/lua_udp.c
src/plugins/chartable.c
src/plugins/dkim_check.c
src/plugins/fuzzy_check.c
src/plugins/regexp.c

index eb694a74de93293d678ebc60f422dd1fa49e744e..c25f5f29a0dc15a6e5b28705cae364b751be041d 100644 (file)
@@ -57,7 +57,7 @@ struct rspamd_dns_request_ud {
        gpointer ud;
        rspamd_mempool_t *pool;
        struct rspamd_task *task;
-       struct rspamd_symcache_item *item;
+       struct rspamd_symcache_dynamic_item *item;
        struct rdns_request *req;
        struct rdns_reply *reply;
 };
index e47ea3eddf8a07a69b9c909abefc3e20b6a09f57..d1a9c41feb5a0bc23b7752ee29023c299c3e3d83 100644 (file)
@@ -31,11 +31,12 @@ struct rspamd_task;
 struct rspamd_config;
 struct rspamd_symcache;
 struct rspamd_worker;
+struct rspamd_symcache_dynamic_item;
 struct rspamd_symcache_item;
 struct rspamd_config_settings_elt;
 
 typedef void (*symbol_func_t) (struct rspamd_task *task,
-                                                          struct rspamd_symcache_item *item,
+                                                          struct rspamd_symcache_dynamic_item *item,
                                                           gpointer user_data);
 
 enum rspamd_symbol_type {
@@ -219,7 +220,7 @@ void* rspamd_symcache_start_refresh (struct rspamd_symcache *cache,
  * @param cache
  * @param symbol
  */
-void rspamd_symcache_inc_frequency (struct rspamd_symcache *cache,
+void rspamd_symcache_inc_frequency (struct rspamd_symcache *_cache,
                                                                        struct rspamd_symcache_item *item);
 
 /**
@@ -333,7 +334,7 @@ void rspamd_symcache_foreach (struct rspamd_symcache *cache,
  * @param task
  * @return
  */
-struct rspamd_symcache_item *rspamd_symcache_get_cur_item (struct rspamd_task *task);
+struct rspamd_symcache_dynamic_item *rspamd_symcache_get_cur_item (struct rspamd_task *task);
 
 /**
  * Replaces the current item being processed.
@@ -342,21 +343,21 @@ struct rspamd_symcache_item *rspamd_symcache_get_cur_item (struct rspamd_task *t
  * @param item
  * @return
  */
-struct rspamd_symcache_item *rspamd_symcache_set_cur_item (struct rspamd_task *task,
-                                                                                                                  struct rspamd_symcache_item *item);
+struct rspamd_symcache_dynamic_item *rspamd_symcache_set_cur_item (struct rspamd_task *task,
+                                                                                                                                  struct rspamd_symcache_dynamic_item *item);
 
 
 /**
  * Finalize the current async element potentially calling its deps
  */
 void rspamd_symcache_finalize_item (struct rspamd_task *task,
-                                                                       struct rspamd_symcache_item *item);
+                                                                       struct rspamd_symcache_dynamic_item *item);
 
 /*
  * Increase number of async events pending for an item
  */
 guint rspamd_symcache_item_async_inc_full (struct rspamd_task *task,
-                                                                                  struct rspamd_symcache_item *item,
+                                                                                  struct rspamd_symcache_dynamic_item *item,
                                                                                   const gchar *subsystem,
                                                                                   const gchar *loc);
 
@@ -367,7 +368,7 @@ guint rspamd_symcache_item_async_inc_full (struct rspamd_task *task,
  * Decrease number of async events pending for an item, asserts if no events pending
  */
 guint rspamd_symcache_item_async_dec_full (struct rspamd_task *task,
-                                                                                  struct rspamd_symcache_item *item,
+                                                                                  struct rspamd_symcache_dynamic_item *item,
                                                                                   const gchar *subsystem,
                                                                                   const gchar *loc);
 
@@ -382,7 +383,7 @@ guint rspamd_symcache_item_async_dec_full (struct rspamd_task *task,
  * @return
  */
 gboolean rspamd_symcache_item_async_dec_check_full (struct rspamd_task *task,
-                                                                                                       struct rspamd_symcache_item *item,
+                                                                                                       struct rspamd_symcache_dynamic_item *item,
                                                                                                        const gchar *subsystem,
                                                                                                        const gchar *loc);
 
index baec746226df19b3cee1706406238e44dd5c1dc5..f8e4389f52ec4bb27ca28eeaf76dbc4c788c38c5 100644 (file)
@@ -26,6 +26,7 @@
 #define C_API_SYMCACHE(ptr) (reinterpret_cast<rspamd::symcache::symcache *>(ptr))
 #define C_API_SYMCACHE_RUNTIME(ptr) (reinterpret_cast<rspamd::symcache::symcache_runtime *>(ptr))
 #define C_API_SYMCACHE_ITEM(ptr) (reinterpret_cast<rspamd::symcache::cache_item *>(ptr))
+#define C_API_SYMCACHE_DYN_ITEM(ptr) (reinterpret_cast<rspamd::symcache::cache_dynamic_item *>(ptr))
 
 void
 rspamd_symcache_destroy(struct rspamd_symcache *cache)
@@ -466,7 +467,7 @@ rspamd_symcache_is_symbol_enabled(struct rspamd_task *task,
        return cache_runtime->is_symbol_enabled(task, *real_cache, symbol);
 }
 
-struct rspamd_symcache_item *
+struct rspamd_symcache_dynamic_item *
 rspamd_symcache_get_cur_item(struct rspamd_task *task)
 {
        auto *cache_runtime = C_API_SYMCACHE_RUNTIME(task->symcache_runtime);
@@ -475,20 +476,20 @@ rspamd_symcache_get_cur_item(struct rspamd_task *task)
                return nullptr;
        }
 
-       return (struct rspamd_symcache_item *) cache_runtime->get_cur_item();
+       return (struct rspamd_symcache_dynamic_item *) cache_runtime->get_cur_item();
 }
 
-struct rspamd_symcache_item *
-rspamd_symcache_set_cur_item(struct rspamd_task *task, struct rspamd_symcache_item *item)
+struct rspamd_symcache_dynamic_item *
+rspamd_symcache_set_cur_item(struct rspamd_task *task, struct rspamd_symcache_dynamic_item *item)
 {
        auto *cache_runtime = C_API_SYMCACHE_RUNTIME(task->symcache_runtime);
-       auto *real_item = C_API_SYMCACHE_ITEM(item);
+       auto *real_dyn_item = C_API_SYMCACHE_DYN_ITEM(item);
 
-       if (!cache_runtime || !real_item) {
+       if (!cache_runtime || !real_dyn_item) {
                return nullptr;
        }
 
-       return (struct rspamd_symcache_item *) cache_runtime->set_cur_item(real_item);
+       return (struct rspamd_symcache_dynamic_item *) cache_runtime->set_cur_item(real_dyn_item);
 }
 
 void
@@ -504,44 +505,44 @@ rspamd_symcache_enable_profile(struct rspamd_task *task)
 
 guint
 rspamd_symcache_item_async_inc_full(struct rspamd_task *task,
-                                                                       struct rspamd_symcache_item *item,
+                                                                       struct rspamd_symcache_dynamic_item *item,
                                                                        const gchar *subsystem,
                                                                        const gchar *loc)
 {
        auto *cache_runtime = C_API_SYMCACHE_RUNTIME(task->symcache_runtime);
-       auto *real_item = C_API_SYMCACHE_ITEM(item);
+       auto *real_dyn_item = C_API_SYMCACHE_DYN_ITEM(item);
 
-       auto *dyn_item = cache_runtime->get_dynamic_item(real_item->id, true);
+       auto *static_item = cache_runtime->get_item_by_dynamic_item(real_dyn_item);
        msg_debug_cache_task("increase async events counter for %s(%d) = %d + 1; "
                                                 "subsystem %s (%s)",
-                       real_item->symbol.c_str(), real_item->id,
-                       dyn_item->async_events, subsystem, loc);
+                       static_item->symbol.c_str(), static_item->id,
+                       real_dyn_item->async_events, subsystem, loc);
 
-       return ++dyn_item->async_events;
+       return ++real_dyn_item->async_events;
 }
 
 guint
 rspamd_symcache_item_async_dec_full(struct rspamd_task *task,
-                                                                       struct rspamd_symcache_item *item,
+                                                                       struct rspamd_symcache_dynamic_item *item,
                                                                        const gchar *subsystem,
                                                                        const gchar *loc)
 {
        auto *cache_runtime = C_API_SYMCACHE_RUNTIME(task->symcache_runtime);
-       auto *real_item = C_API_SYMCACHE_ITEM(item);
+       auto *real_dyn_item = C_API_SYMCACHE_DYN_ITEM(item);
 
-       auto *dyn_item = cache_runtime->get_dynamic_item(real_item->id, true);
+       auto *static_item = cache_runtime->get_item_by_dynamic_item(real_dyn_item);
        msg_debug_cache_task("increase async events counter for %s(%d) = %d + 1; "
                                                 "subsystem %s (%s)",
-                       real_item->symbol.c_str(), real_item->id,
-                       dyn_item->async_events, subsystem, loc);
-       g_assert(dyn_item->async_events > 0);
+                       static_item->symbol.c_str(), static_item->id,
+                       real_dyn_item->async_events, subsystem, loc);
+       g_assert(real_dyn_item->async_events > 0);
 
-       return --dyn_item->async_events;
+       return --real_dyn_item->async_events;
 }
 
 gboolean
 rspamd_symcache_item_async_dec_check_full(struct rspamd_task *task,
-                                                                                 struct rspamd_symcache_item *item,
+                                                                                 struct rspamd_symcache_dynamic_item *item,
                                                                                  const gchar *subsystem,
                                                                                  const gchar *loc)
 {
@@ -605,7 +606,7 @@ rspamd_symcache_process_symbols(struct rspamd_task *task,
 
 void
 rspamd_symcache_finalize_item(struct rspamd_task *task,
-                                                         struct rspamd_symcache_item *item)
+                                                         struct rspamd_symcache_dynamic_item *item)
 {
        auto *cache_runtime = C_API_SYMCACHE_RUNTIME(task->symcache_runtime);
        auto *real_item = C_API_SYMCACHE_ITEM(item);
index 89c00ded5572e020a2cfbd6ff74b1a7303d01d9d..40e2d67c1601853c3538903a5b3e05da4d10b7ff 100644 (file)
@@ -31,6 +31,7 @@
 #include "symcache_id_list.hxx"
 #include "contrib/expected/expected.hpp"
 #include "contrib/libev/ev.h"
+#include "symcache_runtime.hxx"
 
 namespace rspamd::symcache {
 
@@ -119,7 +120,7 @@ public:
                conditions.emplace_back(L, cbref);
        }
 
-       auto call(struct rspamd_task *task, struct rspamd_symcache_item *item) const -> void
+       auto call(struct rspamd_task *task, struct rspamd_symcache_dynamic_item *item) const -> void
        {
                func(task, item, user_data);
        }
@@ -369,11 +370,11 @@ public:
                return false;
        }
 
-       auto call(struct rspamd_task *task) const -> void {
+       auto call(struct rspamd_task *task, cache_dynamic_item *dyn_item) const -> void {
                if (std::holds_alternative<normal_item>(specific)) {
                        const auto &filter_data = std::get<normal_item>(specific);
 
-                       filter_data.call(task, (struct rspamd_symcache_item *)this);
+                       filter_data.call(task, (struct rspamd_symcache_dynamic_item *)dyn_item);
                }
        }
 
index b433213ed0ee7f6a5d67986a9726a13146c4c5ae..2d941c0ed44c88ef11805ddd038cec060401804b 100644 (file)
@@ -514,10 +514,10 @@ symcache_runtime::process_symbol(struct rspamd_task *task, symcache &cache, cach
                                                                        profile_start) * 1e3;
                }
                dyn_item->async_events = 0;
-               cur_item = item;
+               cur_item = dyn_item;
                items_inflight++;
                /* Callback now must finalize itself */
-               item->call(task);
+               item->call(task, dyn_item);
                cur_item = nullptr;
 
                if (items_inflight == 0) {
@@ -829,5 +829,19 @@ auto symcache_runtime::process_item_rdeps(struct rspamd_task *task, cache_item *
        }
 }
 
+auto
+symcache_runtime::get_item_by_dynamic_item(cache_dynamic_item *dyn_item) const -> cache_item *
+{
+       auto idx = dyn_item - dynamic_items;
+
+       if (idx >= 0 && idx < order->size()) {
+               return order->d[idx].get();
+       }
+
+       msg_err("internal error: invalid index to get: %d", (int)idx);
+
+       return nullptr;
+}
+
 }
 
index 1d77bfd4a2a802ed67f67187fedc4180517b3c89..678dc42a666aa41e1a9766224af75edfcd4ebf09 100644 (file)
@@ -56,7 +56,7 @@ class symcache_runtime {
 
        struct ::rspamd_scan_result *rs;
 
-       struct cache_item *cur_item;
+       struct cache_dynamic_item *cur_item;
        order_generation_ptr order;
        /* Cache of the last items to speed up lookups */
        mutable std::pair<int, int> last_id_mappings[8];
@@ -146,7 +146,7 @@ public:
         * @param item
         * @return
         */
-       auto set_cur_item(cache_item *item) -> auto {
+       auto set_cur_item(cache_dynamic_item *item) -> auto {
                std::swap(item, cur_item);
                return item;
        }
@@ -168,6 +168,12 @@ public:
         */
        auto get_dynamic_item(int id, bool save_in_cache) const -> cache_dynamic_item *;
 
+       /**
+        * Returns static cache item by dynamic cache item
+        * @return
+        */
+       auto get_item_by_dynamic_item(cache_dynamic_item *) const -> cache_item *;
+
        /**
         * Process symbols in the cache
         * @param task
index 4a238d45e50a92261d4378e7166049bfdfc4da8f..747f7b51e4785cbd4bc6a0e4059fa4cc042a59a1 100644 (file)
@@ -1180,7 +1180,7 @@ struct lua_callback_data {
        /* Dynamic data */
        gint stack_level;
        gint order;
-       struct rspamd_symcache_item *item;
+       struct rspamd_symcache_dynamic_item *item;
 };
 
 /*
@@ -1214,7 +1214,7 @@ rspamd_compare_order_func (gconstpointer a, gconstpointer b)
 
 static void
 lua_metric_symbol_callback (struct rspamd_task *task,
-                                                       struct rspamd_symcache_item *item,
+                                                       struct rspamd_symcache_dynamic_item *item,
                                                        gpointer ud)
 {
        struct lua_callback_data *cd = ud;
@@ -1350,7 +1350,7 @@ static void lua_metric_symbol_callback_error (struct thread_entry *thread_entry,
 
 static void
 lua_metric_symbol_callback_coro (struct rspamd_task *task,
-                                                       struct rspamd_symcache_item *item,
+                                                       struct rspamd_symcache_dynamic_item *item,
                                                        gpointer ud)
 {
        struct lua_callback_data *cd = ud;
index fe9951e89b953f9953b423d26daaa0f5ea104a1d..79ec72f9446f2ed4fd6b73f61aa178ee9ba6ba92 100644 (file)
@@ -31,7 +31,7 @@ struct lua_rspamd_dns_cbdata {
        struct thread_entry *thread;
        struct rspamd_task *task;
        struct rspamd_dns_resolver *resolver;
-       struct rspamd_symcache_item *item;
+       struct rspamd_symcache_dynamic_item *item;
        struct rspamd_async_session *s;
 };
 
index c3bd4cacfbb2457c86f21620a4d504cd5eabaf69..8827cb1c11fbbd6c6eb7d4580f8f680203c73c87 100644 (file)
@@ -87,7 +87,7 @@ struct lua_dns_cbdata {
        gint cbref;
        gchar *to_resolve;
        gchar *user_str;
-       struct rspamd_symcache_item *item;
+       struct rspamd_symcache_dynamic_item *item;
        struct rspamd_async_session *s;
 };
 
@@ -358,7 +358,7 @@ lua_dns_resolver_resolve_common (lua_State *L,
        struct rspamd_task *task = NULL;
        GError *err = NULL;
        gboolean forced = FALSE;
-       struct rspamd_symcache_item *item = NULL;
+       struct rspamd_symcache_dynamic_item *item = NULL;
 
        /* Check arguments */
        if (!rspamd_lua_parse_table_arguments (L, first, &err,
index 51fe1f272d1d98a45444d8d1a20dc55ece679a10..1d6c327989ebae07f0a1db5e1553e5bb9fb454af 100644 (file)
@@ -65,7 +65,7 @@ static const struct luaL_reg httplib_m[] = {
 struct lua_http_cbdata {
        struct rspamd_http_connection *conn;
        struct rspamd_async_session *session;
-       struct rspamd_symcache_item *item;
+       struct rspamd_symcache_dynamic_item *item;
        struct rspamd_http_message *msg;
        struct ev_loop *event_loop;
        struct rspamd_config *cfg;
@@ -484,7 +484,7 @@ static void
 lua_http_dns_handler (struct rdns_reply *reply, gpointer ud)
 {
        struct lua_http_cbdata *cbd = (struct lua_http_cbdata *)ud;
-       struct rspamd_symcache_item *item;
+       struct rspamd_symcache_dynamic_item *item;
        struct rspamd_task *task;
 
        task = cbd->task;
index 0ec2fa74e6d8203da53ccd777d31fbf4ed3c09d0..71463d3507200b2f3642e5d0f61c0689561546d1 100644 (file)
@@ -96,7 +96,7 @@ struct lua_redis_request_specific_userdata;
 struct lua_redis_userdata {
        redisAsyncContext *ctx;
        struct rspamd_task *task;
-       struct rspamd_symcache_item *item;
+       struct rspamd_symcache_dynamic_item *item;
        struct rspamd_async_session *s;
        struct ev_loop *event_loop;
        struct rspamd_config *cfg;
@@ -150,7 +150,7 @@ struct lua_redis_ctx {
 struct lua_redis_result {
        gboolean is_error;
        gint result_ref;
-       struct rspamd_symcache_item *item;
+       struct rspamd_symcache_dynamic_item *item;
        struct rspamd_async_session *s;
        struct rspamd_task *task;
        struct lua_redis_request_specific_userdata *sp_ud;
index a55b511be954ed3f06d4c638df54f754973aadb7..f6ce4905e9b62efb1793cf38c40fe6e749c2effe 100644 (file)
@@ -55,7 +55,7 @@ static luaL_reg rspamd_spf_record_m[] = {
 struct rspamd_lua_spf_cbdata {
        struct rspamd_task *task;
        lua_State *L;
-       struct rspamd_symcache_item *item;
+       struct rspamd_symcache_dynamic_item *item;
        gint cbref;
        ref_entry_t ref;
 };
index 2b811f4a7cb139478b47dee0d52d2584eb7670b7..4ec8c90d6b4ce37644d05aacfbf5405596f7f18d 100644 (file)
@@ -4990,7 +4990,7 @@ struct tokens_foreach_cbdata {
 };
 
 static void
-tokens_foreach_cb (struct rspamd_symcache_item *item, gpointer ud)
+tokens_foreach_cb (struct rspamd_symcache_dynamic_item *item, gpointer ud)
 {
        struct tokens_foreach_cbdata *cbd = ud;
        struct rspamd_symbol_result *s;
index 635aa885d1a304f9d77c9818f39fce7f398a22e8..851e1511d6acd3671731b6d91f7756aedba023c7 100644 (file)
@@ -339,7 +339,7 @@ struct lua_tcp_cbdata {
        struct lua_tcp_dtor *dtors;
        ref_entry_t ref;
        struct rspamd_task *task;
-       struct rspamd_symcache_item *item;
+       struct rspamd_symcache_dynamic_item *item;
        struct thread_entry *thread;
        struct rspamd_config *cfg;
        struct rspamd_ssl_connection *ssl_conn;
index 4f5696a947c71398186ab1f062bc04f46a7abb23..b976f9adf85668617fc349d6cf8083018ab3ebab 100644 (file)
@@ -66,7 +66,7 @@ struct lua_udp_cbdata {
        struct rspamd_task *task;
        rspamd_mempool_t *pool;
        rspamd_inet_addr_t *addr;
-       struct rspamd_symcache_item *item;
+       struct rspamd_symcache_dynamic_item *item;
        struct rspamd_async_session *s;
        struct iovec *iov;
        lua_State *L;
index 7b99e9c7af7a339c7ddd9679ee5b96d97b040d69..7f05d10d60f8ac298faa8429e6a86fc90e7e0044 100644 (file)
@@ -87,10 +87,10 @@ chartable_get_context (struct rspamd_config *cfg)
 }
 
 static void chartable_symbol_callback (struct rspamd_task *task,
-                                                                          struct rspamd_symcache_item *item,
+                                                                          struct rspamd_symcache_dynamic_item *item,
                                                                           void *unused);
 static void chartable_url_symbol_callback (struct rspamd_task *task,
-                                                                                  struct rspamd_symcache_item *item,
+                                                                                  struct rspamd_symcache_dynamic_item *item,
                                                                                   void *unused);
 
 gint
@@ -640,7 +640,7 @@ rspamd_chartable_process_part (struct rspamd_task *task,
 
 static void
 chartable_symbol_callback (struct rspamd_task *task,
-               struct rspamd_symcache_item *item,
+               struct rspamd_symcache_dynamic_item *item,
                void *unused)
 {
        guint i;
@@ -710,7 +710,7 @@ chartable_symbol_callback (struct rspamd_task *task,
 
 static void
 chartable_url_symbol_callback (struct rspamd_task *task,
-               struct rspamd_symcache_item *item,
+               struct rspamd_symcache_dynamic_item *item,
                void *unused)
 {
        /* XXX: TODO: unbreak module once URLs unicode project is over */
index 039cdf71812a16e60c2000151387d10b3e6f6869..be069a023bd93a14214b9006f38cdf6a20f0436b 100644 (file)
@@ -96,15 +96,15 @@ struct dkim_check_result {
        struct rspamd_dkim_check_result *res;
        gdouble mult_allow;
        gdouble mult_deny;
-       struct rspamd_symcache_item *item;
+       struct rspamd_symcache_dynamic_item *item;
        struct dkim_check_result *next, *prev, *first;
 };
 
 static void dkim_symbol_callback (struct rspamd_task *task,
-                                                                 struct rspamd_symcache_item *item,
+                                                                 struct rspamd_symcache_dynamic_item *item,
                                                                  void *unused);
 static void dkim_sign_callback (struct rspamd_task *task,
-                                                               struct rspamd_symcache_item *item,
+                                                               struct rspamd_symcache_dynamic_item *item,
                                                                void *unused);
 
 static gint lua_dkim_sign_handler (lua_State *L);
@@ -1125,7 +1125,7 @@ dkim_module_key_handler (rspamd_dkim_key_t *key,
 
 static void
 dkim_symbol_callback (struct rspamd_task *task,
-               struct rspamd_symcache_item *item,
+               struct rspamd_symcache_dynamic_item *item,
                void *unused)
 {
        rspamd_dkim_context_t *ctx;
index 01e6aa1899eb935943053b231121ee18cd1ffdea..864187cc73d0c4b37c5a6d67389339161edc13c9 100644 (file)
@@ -132,7 +132,7 @@ struct fuzzy_client_session {
        GPtrArray *commands;
        GPtrArray *results;
        struct rspamd_task *task;
-       struct rspamd_symcache_item *item;
+       struct rspamd_symcache_dynamic_item *item;
        struct upstream *server;
        struct fuzzy_rule *rule;
        struct ev_loop *event_loop;
@@ -181,7 +181,7 @@ struct fuzzy_cmd_io {
 static const char *default_headers = "Subject,Content-Type,Reply-To,X-Mailer";
 
 static void fuzzy_symbol_callback (struct rspamd_task *task,
-                                                                  struct rspamd_symcache_item *item,
+                                                                  struct rspamd_symcache_dynamic_item *item,
                                                                   void *unused);
 
 /* Initialization */
@@ -3218,7 +3218,7 @@ register_fuzzy_client_call (struct rspamd_task *task,
 /* This callback is called when we check message in fuzzy hashes storage */
 static void
 fuzzy_symbol_callback (struct rspamd_task *task,
-                                          struct rspamd_symcache_item *item,
+                                          struct rspamd_symcache_dynamic_item *item,
                                           void *unused)
 {
        struct fuzzy_rule *rule;
index 9dde6cddb21def4da9d9863bf8d9ed9db0a710cd..02de2a064d131c84dcbff6b24f98dcf6da3bed97 100644 (file)
@@ -40,7 +40,7 @@ struct regexp_ctx {
 };
 
 static void process_regexp_item (struct rspamd_task *task,
-                                                                struct rspamd_symcache_item *item,
+                                                                struct rspamd_symcache_dynamic_item *item,
                                                                 void *user_data);
 
 
@@ -530,7 +530,7 @@ rspamd_lua_call_expression_func (struct ucl_lua_funcdata *lua_data,
 
 static void
 process_regexp_item (struct rspamd_task *task,
-               struct rspamd_symcache_item *symcache_item,
+               struct rspamd_symcache_dynamic_item *symcache_item,
                void *user_data)
 {
        struct regexp_module_item *item = user_data;