summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rspamd.com>2022-07-24 20:26:53 +0100
committerVsevolod Stakhov <vsevolod@rspamd.com>2022-07-24 20:26:53 +0100
commitf9e5edbd6bb0bbbf8bad0e97eb02e2441d10e055 (patch)
treecd32b29cf9491213c10976d34f709b362fa2fdc0
parent53a504c97fd62d4a24efbad05395e878fd1dd0e5 (diff)
downloadrspamd-f9e5edbd6bb0bbbf8bad0e97eb02e2441d10e055.tar.gz
rspamd-f9e5edbd6bb0bbbf8bad0e97eb02e2441d10e055.zip
[Minor] Add static C API
-rw-r--r--src/libserver/rspamd_symcache.h18
-rw-r--r--src/libserver/symcache/symcache_c.cxx17
2 files changed, 35 insertions, 0 deletions
diff --git a/src/libserver/rspamd_symcache.h b/src/libserver/rspamd_symcache.h
index 8707c631f..0510cb1dc 100644
--- a/src/libserver/rspamd_symcache.h
+++ b/src/libserver/rspamd_symcache.h
@@ -330,6 +330,24 @@ gboolean rspamd_symcache_disable_symbol (struct rspamd_task *task,
const gchar *symbol);
/**
+ * Disable execution of a symbol or a pattern (a string enclosed in `//`) permanently
+ * @param task
+ * @param cache
+ * @param symbol
+ * @return
+ */
+void rspamd_symcache_disable_symbol_static (struct rspamd_symcache *cache,
+ const gchar *symbol);
+/**
+ * Add a symbol or a pattern to the list of explicitly and statically enabled symbols
+ * @param cache
+ * @param symbol
+ * @return
+ */
+void rspamd_symcache_enable_symbol_static (struct rspamd_symcache *cache,
+ const gchar *symbol);
+
+/**
* Process specific function for each cache element (in order they are added)
* @param cache
* @param func
diff --git a/src/libserver/symcache/symcache_c.cxx b/src/libserver/symcache/symcache_c.cxx
index e0d8711f1..d4ae88e67 100644
--- a/src/libserver/symcache/symcache_c.cxx
+++ b/src/libserver/symcache/symcache_c.cxx
@@ -465,6 +465,23 @@ rspamd_symcache_enable_symbol(struct rspamd_task *task,
return cache_runtime->enable_symbol(task, *real_cache, symbol);
}
+void
+rspamd_symcache_disable_symbol_static (struct rspamd_symcache *cache,
+ const gchar *symbol)
+{
+ auto *real_cache = C_API_SYMCACHE(cache);
+
+ real_cache->disable_symbol_delayed(symbol);
+}
+
+void rspamd_symcache_enable_symbol_static (struct rspamd_symcache *cache,
+ const gchar *symbol)
+{
+ auto *real_cache = C_API_SYMCACHE(cache);
+
+ real_cache->enable_symbol_delayed(symbol);
+}
+
gboolean
rspamd_symcache_is_checked(struct rspamd_task *task,
struct rspamd_symcache *cache,