]> source.dussan.org Git - rspamd.git/commitdiff
Allow to specify classification headers in the options.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 28 Jul 2015 17:30:46 +0000 (18:30 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 28 Jul 2015 17:30:46 +0000 (18:30 +0100)
src/libserver/cfg_file.h
src/libserver/cfg_rcl.c
src/libstat/stat_process.c

index b14690632ce0367e12ebbad861e6b0d3dcbf3dfb..258290852b9bcbe630b9a9eac3407f9e2f8df76f 100644 (file)
@@ -261,6 +261,8 @@ struct rspamd_config {
        gdouble upstream_revive_time;                                   /**< revive timeout for upstreams                                               */
 
        guint32 min_word_len;                                                   /**< minimum length of the word to be considered                */
+
+       GList *classify_headers;                                                /**< list of headers using for statistics                               */
 };
 
 
index b7821b7bb2786b37a7bf467c5c795c5796e56125..3948ecdce5be63772640019e8e948161e2d871f4 100644 (file)
@@ -1313,6 +1313,12 @@ rspamd_rcl_config_init (void)
                rspamd_rcl_parse_struct_integer,
                G_STRUCT_OFFSET (struct rspamd_config, dns_io_per_server),
                RSPAMD_CL_FLAG_INT_32);
+       rspamd_rcl_add_default_handler (ssub,
+               "classify_headers",
+               rspamd_rcl_parse_struct_string_list,
+               G_STRUCT_OFFSET (struct rspamd_config, classify_headers),
+               0);
+
 
        /* New upstreams configuration */
        ssub = rspamd_rcl_add_section (&sub->subsections, "upstream", NULL,
index 2c0cd8955ec1e2a1481a1db69689eaf6faf404bc..91d2e7b8d861914dd913982a4950bce22915ff87 100644 (file)
@@ -152,10 +152,13 @@ rspamd_stat_tokenize_parts_metadata (struct rspamd_task *task,
                }
        }
 
-       rspamd_stat_tokenize_header (task, tok, "User-Agent", "UA:", ar);
-       rspamd_stat_tokenize_header (task, tok, "X-Mailer", "XM:", ar);
-       rspamd_stat_tokenize_header (task, tok, "Content-Type", "CT:", ar);
-       rspamd_stat_tokenize_header (task, tok, "X-MimeOLE", "XMOLE:", ar);
+       cur = g_list_first (task->cfg->classify_headers);
+
+       while (cur) {
+               rspamd_stat_tokenize_header (task, tok, cur->data, "UA:", ar);
+
+               cur = g_list_next (cur);
+       }
 
        tok->tokenizer->tokenize_func (tok,
                        task->task_pool,