@@ -460,12 +460,19 @@ rspamd_composite_process_single_symbol (struct composites_data *cd, | |||
if (!found) { | |||
msg_debug_composites ("symbol %s in composite %s misses required option %s", | |||
sym, | |||
cd->composite->sym, | |||
(cur_opt->type == RSPAMD_COMPOSITE_OPTION_PLAIN ? | |||
cur_opt->data.match : | |||
rspamd_regexp_get_pattern (cur_opt->data.re))); | |||
if (cur_opt->type == RSPAMD_COMPOSITE_OPTION_PLAIN) { | |||
msg_debug_composites ("symbol %s in composite %s misses required option %s", | |||
sym, | |||
cd->composite->sym, | |||
cur_opt->data.match); | |||
} | |||
else { | |||
msg_debug_composites ("symbol %s in composite %s failed to match regexp %s", | |||
sym, | |||
cd->composite->sym, | |||
rspamd_regexp_get_pattern (cur_opt->data.re)); | |||
} | |||
ms = NULL; | |||
break; |
@@ -51,13 +51,22 @@ Composites - Opts RE Miss one | |||
Scan File ${MESSAGE} opts=sym1,foo1 | |||
Expect Symbol With Score SYMOPTS1 5.00 | |||
Do Not Expect Symbol SYMOPTS2 | |||
Do Not Expect Symbol SYMOPTS3 | |||
Composites - Opts RE Miss both | |||
Scan File ${MESSAGE} opts=sym2 | |||
Do Not Expect Symbol SYMOPTS1 | |||
Do Not Expect Symbol SYMOPTS2 | |||
Do Not Expect Symbol SYMOPTS3 | |||
Composites - Opts RE Hit | |||
Scan File ${MESSAGE} opts=sym2,foo1 | |||
Scan File ${MESSAGE} opts=foo1,sym2 | |||
Expect Symbol With Score SYMOPTS2 6.00 | |||
Do Not Expect Symbol SYMOPTS1 | |||
Do Not Expect Symbol SYMOPTS3 | |||
Composites - Opts RE Hit 2 | |||
Scan File ${MESSAGE} opts=foo/,sym2 | |||
Expect Symbol With Score SYMOPTS3 6.00 | |||
Do Not Expect Symbol SYMOPTS2 | |||
Do Not Expect Symbol SYMOPTS1 |
@@ -73,7 +73,11 @@ composites { | |||
} | |||
SYMOPTS2 { | |||
expression = "OPTS[/foo.*/,sym2]"; | |||
expression = 'OPTS[/foo[0-9]/,sym2]'; | |||
score = 6.0; | |||
} | |||
SYMOPTS3 { | |||
expression = 'OPTS[sym2,/FoO\\//i]'; | |||
score = 6.0; | |||
} | |||
} |