diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2018-05-19 14:57:43 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2018-05-19 14:57:43 +0100 |
commit | b11098bc3e218d3e2e739ce114b0be322e65639a (patch) | |
tree | 78c4474d6315042a86f63889634d6f4ee02aac8d /src/libstat | |
parent | 11334a875ab62460e64ece516223626a2415bc0f (diff) | |
download | rspamd-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.c | 14 |
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"); |