From: Vsevolod Stakhov Date: Tue, 23 Jan 2018 19:09:40 +0000 (+0000) Subject: [Minor] Store occurencies numbers for languages X-Git-Tag: 1.7.0~254 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c4ad580acb132884c874562cc9d7477c4ad9b5e;p=thirdparty%2Frspamd.git [Minor] Store occurencies numbers for languages --- diff --git a/src/libmime/lang_detection.c b/src/libmime/lang_detection.c index 3eeb9829f5..2bdda30049 100644 --- a/src/libmime/lang_detection.c +++ b/src/libmime/lang_detection.c @@ -40,6 +40,7 @@ struct rspamd_language_elt { guint unigramms_total; /* total frequencies for unigramms */ guint bigramms_total; /* total frequencies for bigramms */ guint trigramms_total; /* total frequencies for trigramms */ + guint occurencies; /* total number of parts with this language */ }; struct rspamd_ngramm_elt { @@ -54,6 +55,7 @@ struct rspamd_lang_detector { GHashTable *trigramms; /* trigramms frequencies */ UConverter *uchar_converter; gsize short_text_limit; + gsize total_occurencies; /* number of all languages found */ }; #define msg_debug_lang_det(...) rspamd_conditional_debug_fast (NULL, NULL, \ @@ -372,7 +374,7 @@ rspamd_language_detector_init (struct rspamd_config *cfg) goto end; } - ret = rspamd_mempool_alloc (cfg->cfg_pool, sizeof (*ret)); + ret = rspamd_mempool_alloc0 (cfg->cfg_pool, sizeof (*ret)); ret->languages = g_ptr_array_sized_new (gl.gl_pathc); ret->uchar_converter = ucnv_open ("UTF-8", &uc_err); ret->short_text_limit = short_text_limit; @@ -908,5 +910,11 @@ rspamd_language_detector_detect (struct rspamd_task *task, g_ptr_array_sort (result, rspamd_language_detector_cmp); g_hash_table_unref (candidates); + if (result->len > 0) { + cand = g_ptr_array_index (result, 0); + cand->elt->occurencies ++; + d->total_occurencies ++; + } + return result; } \ No newline at end of file