diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-03-24 13:42:32 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-03-24 13:42:32 +0000 |
commit | dada9cf1cc23ef27c3bbff9ded12c8c23d8dbc61 (patch) | |
tree | 34e09a9fce133c088688e2f7db53985ed48926af /src/libmime | |
parent | a8a03a7434bba6bb620283164b8dfe5c0f0494e5 (diff) | |
download | rspamd-dada9cf1cc23ef27c3bbff9ded12c8c23d8dbc61.tar.gz rspamd-dada9cf1cc23ef27c3bbff9ded12c8c23d8dbc61.zip |
Improve test regexp.
Diffstat (limited to 'src/libmime')
-rw-r--r-- | src/libmime/mime_expressions.c | 48 |
1 files changed, 39 insertions, 9 deletions
diff --git a/src/libmime/mime_expressions.c b/src/libmime/mime_expressions.c index 1a3179e90..01e3ddeb2 100644 --- a/src/libmime/mime_expressions.c +++ b/src/libmime/mime_expressions.c @@ -645,6 +645,35 @@ err: return NULL; } +static const gchar * +rspamd_mime_regexp_type_to_string (struct rspamd_regexp_atom *re) +{ + const gchar *ret = "unknown"; + + switch (re->type) { + case REGEXP_NONE: + ret = "none"; + break; + case REGEXP_HEADER: + ret = "header"; + break; + case REGEXP_RAW_HEADER: + ret = "raw header"; + break; + case REGEXP_MIME: + ret = "part"; + break; + case REGEXP_MESSAGE: + ret = "message"; + break; + case REGEXP_URL: + ret = "url"; + break; + } + + return ret; +} + static gint rspamd_mime_regexp_element_process (struct rspamd_task *task, struct rspamd_regexp_atom *re, const gchar *data, gsize len, @@ -655,8 +684,8 @@ rspamd_mime_regexp_element_process (struct rspamd_task *task, if ((r = rspamd_task_re_cache_check (task, re->regexp_text)) != RSPAMD_TASK_CACHE_NO_VALUE) { - debug_task ("regexp /%s/ is found in cache, result: %d", - re->regexp_text, r); + debug_task ("%s regexp %s is found in cache, result: %d", + rspamd_mime_regexp_type_to_string (re), re->regexp_text, r); return r; } @@ -679,13 +708,6 @@ rspamd_mime_regexp_element_process (struct rspamd_task *task, } while (rspamd_regexp_search (re->regexp, data, len, &start, &end, raw)) { - if (G_UNLIKELY (re->is_test)) { - msg_info ( - "process test regexp %s for header %s with value '%s' returned TRUE", - re->regexp_text, - re->header, - data); - } r++; if (!re->is_multiple) { @@ -693,6 +715,14 @@ rspamd_mime_regexp_element_process (struct rspamd_task *task, } } + if (G_UNLIKELY (re->is_test)) { + msg_info ( + "process %s test regexp %s returned %d", + rspamd_mime_regexp_type_to_string (re), + re->regexp_text, + r); + } + if (r > 0) { rspamd_task_re_cache_add (task, re->regexp_text, r); } |