summaryrefslogtreecommitdiffstats
path: root/src/libstat
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-05-19 14:57:43 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-05-19 14:57:43 +0100
commitb11098bc3e218d3e2e739ce114b0be322e65639a (patch)
tree78c4474d6315042a86f63889634d6f4ee02aac8d /src/libstat
parent11334a875ab62460e64ece516223626a2415bc0f (diff)
downloadrspamd-b11098bc3e218d3e2e739ce114b0be322e65639a.tar.gz
rspamd-b11098bc3e218d3e2e739ce114b0be322e65639a.zip
[Feature] Use OSB to combine header names
Diffstat (limited to 'src/libstat')
-rw-r--r--src/libstat/stat_process.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libstat/stat_process.c b/src/libstat/stat_process.c
index aed9d383d..4f7f4e703 100644
--- a/src/libstat/stat_process.c
+++ b/src/libstat/stat_process.c
@@ -81,6 +81,7 @@ rspamd_stat_tokenize_parts_metadata (struct rspamd_stat_ctx *st_ctx,
gchar tmpbuf[128];
lua_State *L = task->cfg->lua_state;
const gchar *headers_hash;
+ struct rspamd_mime_header *hdr;
ar = g_array_sized_new (FALSE, FALSE, sizeof (elt), 16);
elt.flags = RSPAMD_STAT_TOKEN_FLAG_META;
@@ -183,6 +184,19 @@ rspamd_stat_tokenize_parts_metadata (struct rspamd_stat_ctx *st_ctx,
g_array_append_val (ar, elt);
}
+ /* Use more precise headers order */
+ cur = g_list_first (task->headers_order->head);
+ while (cur) {
+ hdr = cur->data;
+
+ if (hdr->name && hdr->type != RSPAMD_HEADER_RECEIVED) {
+ elt.begin = hdr->name;
+ elt.len = strlen (hdr->name);
+ g_array_append_val (ar, elt);
+ }
+
+ cur = g_list_next (cur);
+ }
/* Use metatokens plugin from Lua */
lua_getglobal (L, "rspamd_plugins");