Browse Source

[Minor] Store more information about symbols added

tags/1.8.1
Vsevolod Stakhov 5 years ago
parent
commit
bedf3ff408
2 changed files with 20 additions and 4 deletions
  1. 16
    4
      src/libmime/filter.c
  2. 4
    0
      src/libmime/filter.h

+ 16
- 4
src/libmime/filter.c View File

@@ -54,13 +54,10 @@ rspamd_create_metric_result (struct rspamd_task *task)
return metric_res;
}

metric_res = rspamd_mempool_alloc (task->task_pool,
metric_res = rspamd_mempool_alloc0 (task->task_pool,
sizeof (struct rspamd_metric_result));
metric_res->symbols = kh_init (rspamd_symbols_hash);
metric_res->sym_groups = kh_init (rspamd_symbols_group_hash);
metric_res->grow_factor = 0;
metric_res->score = 0;
metric_res->passthrough_result = NULL;

/* Optimize allocation */
kh_resize (rspamd_symbols_group_hash, metric_res->sym_groups, 4);
@@ -364,9 +361,24 @@ insert_metric_result (struct rspamd_task *task,
}

if (!isnan (final_score)) {
#ifndef DBL_EPSILON
#define DBL_EPSILON 2.2204460492503131e-16
#endif
const double epsilon = DBL_EPSILON;

metric_res->score += final_score;
metric_res->grow_factor = next_gf;
s->score = final_score;

/* We ignore zero scored symbols */
if (final_score > epsilon) {
metric_res->npositive ++;
metric_res->positive_score += final_score;
}
else if (final_score < epsilon) {
metric_res->nnegative ++;
metric_res->negative_score += fabs (final_score);
}
}
else {
s->score = 0;

+ 4
- 0
src/libmime/filter.h View File

@@ -77,6 +77,10 @@ struct rspamd_metric_result {
double score; /**< total score */
double grow_factor; /**< current grow factor */
struct rspamd_passthrough_result *passthrough_result;
guint npositive;
guint nnegative;
double positive_score;
double negative_score;
khash_t(rspamd_symbols_hash) *symbols; /**< symbols of metric */
khash_t(rspamd_symbols_group_hash) *sym_groups; /**< groups of symbols */
gdouble actions_limits[METRIC_ACTION_MAX]; /**< set of actions for this metric */

Loading…
Cancel
Save