Browse Source

Fix settings for actions other than reject

tags/1.0.0
Vsevolod Stakhov 8 years ago
parent
commit
09e125bdc9
3 changed files with 8 additions and 9 deletions
  1. 5
    1
      src/libmime/filter.c
  2. 1
    0
      src/libserver/cfg_utils.c
  3. 2
    8
      src/libserver/protocol.c

+ 5
- 1
src/libmime/filter.c View File

@@ -372,13 +372,17 @@ get_specific_action_score (const ucl_object_t *metric,
struct metric_action *action)
{
const ucl_object_t *act, *sact;
const gchar *act_name;
double score;

if (metric) {
act = ucl_object_find_key (metric, "actions");
if (act) {
sact = ucl_object_find_key (act, rspamd_action_to_str (action->action));
act_name = rspamd_action_to_str (action->action);
sact = ucl_object_find_key (act, act_name);
if (sact != NULL && ucl_object_todouble_safe (sact, &score)) {
msg_debug ("found override score %.2f for action %s in settings",
score, act_name);
return score;
}
}

+ 1
- 0
src/libserver/cfg_utils.c View File

@@ -552,6 +552,7 @@ rspamd_config_new_metric (struct rspamd_config *cfg, struct metric *c,

for (i = METRIC_ACTION_REJECT; i < METRIC_ACTION_MAX; i++) {
c->actions[i].score = -1.0;
c->actions[i].action = i;
}

c->subject = SPAM_SUBJECT;

+ 2
- 8
src/libserver/protocol.c View File

@@ -866,15 +866,9 @@ rspamd_metric_result_ucl (struct rspamd_task *task,
gchar action_char;

m = mres->metric;
mres->action = rspamd_check_action_metric (task, mres->score,
&required_score, m);

/* XXX: handle settings */
if (mres->action == METRIC_ACTION_MAX) {
mres->action = rspamd_check_action_metric (task, mres->score,
&required_score, m);
}
else {
required_score = mres->metric->actions[mres->action].score;
}
action = mres->action;
is_spam = (action == METRIC_ACTION_REJECT);


Loading…
Cancel
Save