summaryrefslogtreecommitdiffstats
path: root/src/lua
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2021-07-15 19:49:58 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2021-07-15 19:49:58 +0100
commitb4679a32d4a586200399d941fa1acc982deeb98c (patch)
treec02ffe08549352ca636cd5bc4188587ba16a27c5 /src/lua
parentfae4ed9fce781764540e636fec1e8397f1f9f532 (diff)
downloadrspamd-b4679a32d4a586200399d941fa1acc982deeb98c.tar.gz
rspamd-b4679a32d4a586200399d941fa1acc982deeb98c.zip
[Project] Fix lua bindings
Diffstat (limited to 'src/lua')
-rw-r--r--src/lua/lua_config.c37
1 files changed, 6 insertions, 31 deletions
diff --git a/src/lua/lua_config.c b/src/lua/lua_config.c
index c2f5efb42..b0e2df672 100644
--- a/src/lua/lua_config.c
+++ b/src/lua/lua_config.c
@@ -2600,47 +2600,22 @@ lua_config_add_composite (lua_State * L)
{
LUA_TRACE_POINT;
struct rspamd_config *cfg = lua_check_config (L, 1);
- struct rspamd_expression *expr;
gchar *name;
const gchar *expr_str;
struct rspamd_composite *composite;
- gboolean ret = FALSE, new = TRUE;
- GError *err = NULL;
+ gboolean ret = FALSE;
if (cfg) {
name = rspamd_mempool_strdup (cfg->cfg_pool, luaL_checkstring (L, 2));
expr_str = luaL_checkstring (L, 3);
if (name && expr_str) {
- if (!rspamd_parse_expression (expr_str, 0, &composite_expr_subr,
- NULL, cfg->cfg_pool, &err, &expr)) {
- msg_err_config ("cannot parse composite expression %s: %e",
- expr_str,
- err);
- g_error_free (err);
- }
- else {
- if (g_hash_table_lookup (cfg->composite_symbols, name) != NULL) {
- msg_warn_config ("composite %s is redefined", name);
- new = FALSE;
- }
-
- composite = rspamd_mempool_alloc0 (cfg->cfg_pool,
- sizeof (struct rspamd_composite));
- composite->expr = expr;
- composite->id = g_hash_table_size (cfg->composite_symbols);
- composite->str_expr = rspamd_mempool_strdup (cfg->cfg_pool,
- expr_str);
- composite->sym = name;
- g_hash_table_insert (cfg->composite_symbols,
- (gpointer)name,
- composite);
-
- if (new) {
- rspamd_symcache_add_symbol (cfg->cache, name,
- 0, NULL, composite, SYMBOL_TYPE_COMPOSITE, -1);
- }
+ composite = rspamd_composites_manager_add_from_string(cfg->composites_manager,
+ name, expr_str);
+ if (composite) {
+ rspamd_symcache_add_symbol (cfg->cache, name,
+ 0, NULL, composite, SYMBOL_TYPE_COMPOSITE, -1);
ret = TRUE;
}
}