diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2014-04-21 16:25:51 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2014-04-21 16:25:51 +0100 |
commit | 61555065f3d1c8badcc9573691232f1b6e42988c (patch) | |
tree | 563d5b7cb8c468530f7e79c4da0a75267b1184e1 /src/symbols_cache.h | |
parent | ad5bf825b7f33bc10311673991f0cc888e69c0b1 (diff) | |
download | rspamd-61555065f3d1c8badcc9573691232f1b6e42988c.tar.gz rspamd-61555065f3d1c8badcc9573691232f1b6e42988c.zip |
Rework project structure, remove trash files.
Diffstat (limited to 'src/symbols_cache.h')
-rw-r--r-- | src/symbols_cache.h | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/src/symbols_cache.h b/src/symbols_cache.h deleted file mode 100644 index bb2100fc1..000000000 --- a/src/symbols_cache.h +++ /dev/null @@ -1,150 +0,0 @@ -#ifndef RSPAMD_SYMBOLS_CACHE_H -#define RSPAMD_SYMBOLS_CACHE_H - -#include "config.h" -#include "radix.h" - -#define MAX_SYMBOL 128 - -struct rspamd_task; -struct config_file; - -typedef void (*symbol_func_t)(struct rspamd_task *task, gpointer user_data); - -struct saved_cache_item { - gchar symbol[MAX_SYMBOL]; - double weight; - guint32 frequency; - double avg_time; -}; - -struct dynamic_map_item { - struct in_addr addr; - guint32 mask; - gboolean negative; -}; - -struct cache_item { - /* Static item's data */ - struct saved_cache_item *s; - - /* For dynamic rules */ - struct dynamic_map_item *networks; - guint32 networks_number; - gboolean is_dynamic; - - /* Callback data */ - symbol_func_t func; - gpointer user_data; - - /* Flags of virtual symbols */ - gboolean is_virtual; - gboolean is_callback; - - /* Priority */ - gint priority; - gdouble metric_weight; -}; - - -struct symbols_cache { - /* Normal cache items */ - GList *static_items; - - /* Items that have negative weights */ - GList *negative_items; - - /* Radix map of dynamic rules with ip mappings */ - radix_tree_t *dynamic_map; - radix_tree_t *negative_dynamic_map; - - /* Common dynamic rules */ - GList *dynamic_items; - - /* Hash table for fast access */ - GHashTable *items_by_symbol; - - rspamd_mempool_t *static_pool; - - guint cur_items; - guint used_items; - guint uses; - gpointer map; - rspamd_mempool_rwlock_t *lock; - struct config_file *cfg; -}; - -/** - * Load symbols cache from file, must be called _after_ init_symbols_cache - */ -gboolean init_symbols_cache (rspamd_mempool_t *pool, struct symbols_cache *cache, struct config_file *cfg, - const gchar *filename, gboolean ignore_checksum); - -/** - * Register function for symbols parsing - * @param name name of symbol - * @param func pointer to handler - * @param user_data pointer to user_data - */ -void register_symbol (struct symbols_cache **cache, const gchar *name, double weight, - symbol_func_t func, gpointer user_data); - - -/** - * Register virtual symbol - * @param name name of symbol - */ -void register_virtual_symbol (struct symbols_cache **cache, const gchar *name, double weight); - -/** - * Register callback function for symbols parsing - * @param name name of symbol - * @param func pointer to handler - * @param user_data pointer to user_data - */ -void register_callback_symbol (struct symbols_cache **cache, const gchar *name, double weight, - symbol_func_t func, gpointer user_data); - -/** - * Register function for symbols parsing with strict priority - * @param name name of symbol - * @param func pointer to handler - * @param user_data pointer to user_data - */ -void register_callback_symbol_priority (struct symbols_cache **cache, const gchar *name, double weight, - gint priority, symbol_func_t func, gpointer user_data); - -/** - * Register function for dynamic symbols parsing - * @param name name of symbol - * @param func pointer to handler - * @param user_data pointer to user_data - */ -void register_dynamic_symbol (rspamd_mempool_t *pool, struct symbols_cache **cache, const gchar *name, - double weight, symbol_func_t func, - gpointer user_data, GList *networks); - -/** - * Call function for cached symbol using saved callback - * @param task task object - * @param cache symbols cache - * @param saved_item pointer to currently saved item - */ -gboolean call_symbol_callback (struct rspamd_task *task, struct symbols_cache *cache, gpointer *save); - -/** - * Remove all dynamic rules from cache - * @param cache symbols cache - */ -void remove_dynamic_rules (struct symbols_cache *cache); - -/** - * Validate cache items agains theirs weights defined in metrics - * @param cache symbols cache - * @param cfg configuration - * @param strict do strict checks - symbols MUST be described in metrics - */ -gboolean validate_cache (struct symbols_cache *cache, struct config_file *cfg, gboolean strict); - - -#endif |