From: Vsevolod Stakhov Date: Sat, 21 Mar 2015 22:03:44 +0000 (+0000) Subject: Fix composites parsing. X-Git-Tag: 0.9.0~451^2~6 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=2b6854531e2cfe19371309c29c398a3f9f422995;p=rspamd.git Fix composites parsing. --- diff --git a/src/libserver/cfg_rcl.c b/src/libserver/cfg_rcl.c index 5071b390f..e968b9faa 100644 --- a/src/libserver/cfg_rcl.c +++ b/src/libserver/cfg_rcl.c @@ -27,6 +27,7 @@ #include "utlist.h" #include "cfg_file.h" #include "lua/lua_common.h" +#include "expression.h" struct rspamd_rcl_default_handler_data { @@ -999,7 +1000,7 @@ rspamd_rcl_composite_handler (struct rspamd_config *cfg, GError **err) { const ucl_object_t *val; - struct expression *expr; + struct rspamd_expression *expr; struct rspamd_composite *composite; const gchar *composite_name, *composite_expression; gboolean new = TRUE; @@ -1027,14 +1028,8 @@ rspamd_rcl_composite_handler (struct rspamd_config *cfg, return FALSE; } - if ((expr = - parse_expression (cfg->cfg_pool, - (gchar *)composite_expression)) == NULL) { - g_set_error (err, - CFG_RCL_ERROR, - EINVAL, - "cannot parse composite expression: %s", - composite_expression); + if (!rspamd_parse_expression (composite_expression, 0, &composite_expr_subr, + NULL, cfg->cfg_pool, err, &expr)) { return FALSE; } diff --git a/src/lua/lua_config.c b/src/lua/lua_config.c index 178b3f098..6f77612fb 100644 --- a/src/lua/lua_config.c +++ b/src/lua/lua_config.c @@ -28,6 +28,7 @@ #include "message.h" #include "radix.h" #include "trie.h" +#include "expression.h" /*** * This module is used to configure rspamd and is normally available as global @@ -1131,7 +1132,7 @@ static gint lua_config_add_composite (lua_State * L) { struct rspamd_config *cfg = lua_check_config (L); - struct expression *expr; + struct rspamd_expression *expr; gchar *name; const gchar *expr_str; struct rspamd_composite *composite; @@ -1142,8 +1143,8 @@ lua_config_add_composite (lua_State * L) expr_str = luaL_checkstring (L, 3); if (name && expr_str) { - expr = parse_expression (cfg->cfg_pool, (gchar *)expr_str); - if (expr == NULL) { + if (!rspamd_parse_expression (expr_str, 0, &composite_expr_subr, + NULL, cfg->cfg_pool, NULL, &expr)) { msg_err ("cannot parse composite expression %s", expr_str); } else {