summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-12-07 09:12:29 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-12-07 09:12:29 +0000
commitfc9338984d86334d76d6618944201349e13bbc49 (patch)
tree06e576f278e91ab4f8883bb9650afc40eb4470e0
parent1a7a90ffb7398d070619518fe3011fd8886590c0 (diff)
downloadrspamd-fc9338984d86334d76d6618944201349e13bbc49.tar.gz
rspamd-fc9338984d86334d76d6618944201349e13bbc49.zip
Add re class to match all headers
-rw-r--r--src/libserver/re_cache.c12
-rw-r--r--src/libserver/re_cache.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/src/libserver/re_cache.c b/src/libserver/re_cache.c
index d7f7c7b94..f1ee7157d 100644
--- a/src/libserver/re_cache.c
+++ b/src/libserver/re_cache.c
@@ -324,6 +324,15 @@ rspamd_re_cache_exec_re (struct rspamd_task *task,
}
}
break;
+ case RSPAMD_RE_ALLHEADER:
+ raw = TRUE;
+ in = task->raw_headers_content.begin;
+ len = task->raw_headers_content.len;
+ ret = rspamd_re_cache_process_pcre (rt->cache, re, in,
+ len, raw, is_multiple);
+ debug_task ("checking allheader regexp: %s -> %d",
+ rspamd_regexp_get_pattern (re), ret);
+ break;
case RSPAMD_RE_MIME:
/* Iterate throught text parts */
for (i = 0; i < task->text_parts->len; i++) {
@@ -516,6 +525,9 @@ rspamd_re_cache_type_to_string (enum rspamd_re_type type)
case RSPAMD_RE_RAWHEADER:
ret = "raw header";
break;
+ case RSPAMD_RE_ALLHEADER:
+ ret = "raw header";
+ break;
case RSPAMD_RE_MIME:
ret = "part";
break;
diff --git a/src/libserver/re_cache.h b/src/libserver/re_cache.h
index 0ced10bd6..c4ec3b2cf 100644
--- a/src/libserver/re_cache.h
+++ b/src/libserver/re_cache.h
@@ -34,6 +34,7 @@ struct rspamd_task;
enum rspamd_re_type {
RSPAMD_RE_HEADER,
RSPAMD_RE_RAWHEADER,
+ RSPAMD_RE_ALLHEADER,
RSPAMD_RE_MIME,
RSPAMD_RE_URL,
RSPAMD_RE_BODY