Browse Source

Fix composites parsing.

tags/0.9.0
Vsevolod Stakhov 9 years ago
parent
commit
2b6854531e
2 changed files with 8 additions and 12 deletions
  1. 4
    9
      src/libserver/cfg_rcl.c
  2. 4
    3
      src/lua/lua_config.c

+ 4
- 9
src/libserver/cfg_rcl.c View 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;
}


+ 4
- 3
src/lua/lua_config.c View 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 {

Loading…
Cancel
Save