Browse Source

[Project] Add helpers

tags/1.7.9
Vsevolod Stakhov 5 years ago
parent
commit
03bba7bf39
2 changed files with 52 additions and 0 deletions
  1. 33
    0
      src/libmime/filter.c
  2. 19
    0
      src/libmime/filter.h

+ 33
- 0
src/libmime/filter.c View File

@@ -419,3 +419,36 @@ rspamd_check_action_metric (struct rspamd_task *task, struct rspamd_metric_resul

return METRIC_ACTION_NOACTION;
}

struct rspamd_symbol_result*
rspamd_task_find_symbol_result (struct rspamd_task *task, const char *sym)
{
struct rspamd_symbol_result *res = NULL;
khiter_t k;


if (task->result) {
k = kh_get (rspamd_symbols_hash, task->result->symbols, sym);

if (k != kh_end (task->result->symbols)) {
res = &kh_value (task->result->symbols, k);
}
}

return res;
}

void
rspamd_task_symbol_result_foreach (struct rspamd_task *task,
GHFunc func,
gpointer ud)
{
const gchar *kk;
struct rspamd_symbol_result res;

if (func && task->result) {
kh_foreach (task->result->symbols, kk, res, {
func ((gpointer)kk, (gpointer)&res, ud);
});
}
}

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

@@ -104,6 +104,25 @@ struct rspamd_symbol_result* rspamd_task_insert_result_full (struct rspamd_task
gboolean rspamd_task_add_result_option (struct rspamd_task *task,
struct rspamd_symbol_result *s, const gchar *opt);

/**
* Finds symbol result
* @param task
* @param sym
* @return
*/
struct rspamd_symbol_result* rspamd_task_find_symbol_result (
struct rspamd_task *task, const char *sym);

/**
* Compatibility function to iterate on symbols hash
* @param task
* @param func
* @param ud
*/
void rspamd_task_symbol_result_foreach (struct rspamd_task *task,
GHFunc func,
gpointer ud);

/**
* Default consolidation function for metric, it get all symbols and multiply symbol
* weight by some factor that is specified in config. Default factor is 1.

Loading…
Cancel
Save