@@ -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; | |||
} | |||
@@ -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 { |