diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2021-07-15 19:49:58 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2021-07-15 19:49:58 +0100 |
commit | b4679a32d4a586200399d941fa1acc982deeb98c (patch) | |
tree | c02ffe08549352ca636cd5bc4188587ba16a27c5 /src/lua | |
parent | fae4ed9fce781764540e636fec1e8397f1f9f532 (diff) | |
download | rspamd-b4679a32d4a586200399d941fa1acc982deeb98c.tar.gz rspamd-b4679a32d4a586200399d941fa1acc982deeb98c.zip |
[Project] Fix lua bindings
Diffstat (limited to 'src/lua')
-rw-r--r-- | src/lua/lua_config.c | 37 |
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; } } |