]> source.dussan.org Git - rspamd.git/commitdiff
Fix lua composites API.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 23 Mar 2015 00:37:36 +0000 (00:37 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 23 Mar 2015 00:37:36 +0000 (00:37 +0000)
src/lua/lua_cfg_file.c

index 9ad33313259735e7dd1160da0fa1ea7595a11dda..c73173f97f2bf498fc8b5fd5e643d76a86a379f4 100644 (file)
@@ -24,6 +24,8 @@
 
 #include "lua_common.h"
 #include "symbols_cache.h"
+#include "expression.h"
+#include "filter.h"
 #ifdef HAVE_SYS_UTSNAME_H
 #include <sys/utsname.h>
 #endif
@@ -139,9 +141,10 @@ rspamd_lua_post_load_config (struct rspamd_config *cfg)
        lua_State *L = cfg->lua_state;
        const gchar *name, *val;
        gchar *sym;
-       struct expression *expr, *old_expr;
+       struct rspamd_expression *expr, *old_expr;
        ucl_object_t *obj;
        gsize keylen;
+       GError *err = NULL;
 
        /* First check all module options that may be overriden in 'config' global */
        lua_getglobal (L, "config");
@@ -192,10 +195,12 @@ rspamd_lua_post_load_config (struct rspamd_config *cfg)
                        if (name != NULL && lua_isstring (L, -1)) {
                                val = lua_tostring (L, -1);
                                sym = rspamd_mempool_strdup (cfg->cfg_pool, name);
-                               if ((expr =
-                                       parse_expression (cfg->cfg_pool,
-                                       rspamd_mempool_strdup (cfg->cfg_pool, val))) == NULL) {
-                                       msg_err ("cannot parse composite expression: %s", val);
+                               if (!rspamd_parse_expression (val, 0, &composite_expr_subr, NULL,
+                                                       cfg->cfg_pool, &err, &expr)) {
+                                       msg_err ("cannot parse composite expression '%s': %s", val,
+                                                       err->message);
+                                       g_error_free (err);
+                                       err = NULL;
                                        continue;
                                }
                                /* Now check hash table for this composite */