diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-04-07 16:20:42 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-04-07 16:20:42 +0100 |
commit | ef9d7cfd85fa422a86acd0d92bf7f637e5dabc3a (patch) | |
tree | 771619b2676606859508dd266abc22eb96733672 /src/libserver/symbols_cache.c | |
parent | 93e08dc6e00459b2fda6119bfc630b0fb996758c (diff) | |
download | rspamd-ef9d7cfd85fa422a86acd0d92bf7f637e5dabc3a.tar.gz rspamd-ef9d7cfd85fa422a86acd0d92bf7f637e5dabc3a.zip |
[Feature] Allow to get and set callback data for rspamd symbols
Diffstat (limited to 'src/libserver/symbols_cache.c')
-rw-r--r-- | src/libserver/symbols_cache.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/libserver/symbols_cache.c b/src/libserver/symbols_cache.c index eea7f84b2..0ee9ed74c 100644 --- a/src/libserver/symbols_cache.c +++ b/src/libserver/symbols_cache.c @@ -1747,3 +1747,45 @@ rspamd_symbols_cache_disable_symbol (struct rspamd_task *task, msg_info_task ("cannot disable %s: not found", symbol); } } + +struct rspamd_abstract_callback_data* rspamd_symbols_cache_get_cbdata ( + struct symbols_cache *cache, const gchar *symbol) +{ + gint id; + struct cache_item *item; + + g_assert (cache != NULL); + g_assert (symbol != NULL); + + id = rspamd_symbols_cache_find_symbol_parent (cache, symbol); + + if (id < 0) { + return NULL; + } + + item = g_ptr_array_index (cache->items_by_id, id); + + return item->user_data; +} + +gboolean +rspamd_symbols_cache_set_cbdata (struct symbols_cache *cache, + const gchar *symbol, struct rspamd_abstract_callback_data *cbdata) +{ + gint id; + struct cache_item *item; + + g_assert (cache != NULL); + g_assert (symbol != NULL); + + id = rspamd_symbols_cache_find_symbol_parent (cache, symbol); + + if (id < 0) { + return FALSE; + } + + item = g_ptr_array_index (cache->items_by_id, id); + item->user_data = cbdata; + + return TRUE; +} |