diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-03-24 13:49:13 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-03-24 13:49:13 +0000 |
commit | 21d32da6a5200dde3dad32ea40721ff2f1679419 (patch) | |
tree | 6f56ad3ae79f6ab4a420d53a7ce304aa507af931 /src/libutil/expression.c | |
parent | dada9cf1cc23ef27c3bbff9ded12c8c23d8dbc61 (diff) | |
download | rspamd-21d32da6a5200dde3dad32ea40721ff2f1679419.tar.gz rspamd-21d32da6a5200dde3dad32ea40721ff2f1679419.zip |
Fix inversion logic.
Diffstat (limited to 'src/libutil/expression.c')
-rw-r--r-- | src/libutil/expression.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libutil/expression.c b/src/libutil/expression.c index 77627becf..06a3af8e8 100644 --- a/src/libutil/expression.c +++ b/src/libutil/expression.c @@ -595,6 +595,13 @@ rspamd_process_expression (struct rspamd_expression *expr, gpointer data) st_elt[0]->flags |= RSPAMD_EXPR_FLAG_NEGATE; } + if (st_elt[0]->flags & RSPAMD_EXPR_FLAG_PROCESSED) { + /* Inverse the value */ + if ((st_elt[0]->flags & RSPAMD_EXPR_FLAG_NEGATE)) { + st_elt[0]->value = !st_elt[0]->value; + } + } + rspamd_expr_stack_push (expr, st_elt[0]); break; case OP_OR: |