/* Set checked for this symbol to avoid cyclic references */
if (isclr (cd->checked, ncomp->id * 2)) {
setbit (cd->checked, cd->composite->id * 2);
- rc = rspamd_process_expression (ncomp->expr, cd);
+ rc = rspamd_process_expression (ncomp->expr,
+ RSPAMD_EXPRESSION_FLAG_NOOPT, cd);
clrbit (cd->checked, cd->composite->id * 2);
ms = g_hash_table_lookup (cd->metric_res->symbols, sym);
}
cd->composite = comp;
- rc = rspamd_process_expression (comp->expr, cd);
+ rc = rspamd_process_expression (comp->expr, RSPAMD_EXPRESSION_FLAG_NOOPT, cd);
/* Checked bit */
setbit (cd->checked, comp->id * 2);
{
struct lua_expression *e = rspamd_lua_expression (L, 1);
gint res;
+ gint flags = 0;
- res = rspamd_process_expression (e->expr, GINT_TO_POINTER (2));
+ if (lua_gettop (L) >= 3) {
+ flags = lua_tonumber (L, 3);
+ }
+
+ res = rspamd_process_expression (e->expr, flags, GINT_TO_POINTER (2));
lua_pushnumber (L, res);
else {
/* Process expression */
if (item->expr) {
- res = rspamd_process_expression (item->expr, task);
+ res = rspamd_process_expression (item->expr, 0, task);
}
else {
msg_warn ("FIXME: %s symbol is broken with new expressions",