]> source.dussan.org Git - rspamd.git/commitdiff
Fix composites parsing.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 21 Mar 2015 22:03:44 +0000 (22:03 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 21 Mar 2015 22:03:44 +0000 (22:03 +0000)
src/libserver/cfg_rcl.c
src/lua/lua_config.c

index 5071b390f03df04f3c75cddcb417b15ce7b527d3..e968b9faa2b9380c8514edb8f144ec9d7566cd85 100644 (file)
@@ -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;
        }
 
index 178b3f098fe2cec597d9add0cc20268084a9d062..6f77612fb5be257762c12c331e6fec52e113b0eb 100644 (file)
@@ -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 {