Browse Source

[Feature] Add `thresholds` field to the scan result

tags/3.5
Vsevolod Stakhov 1 year ago
parent
commit
16d8e1ef57
No account linked to committer's email address
1 changed files with 16 additions and 1 deletions
  1. 16
    1
      src/libserver/protocol.c

+ 16
- 1
src/libserver/protocol.c View File

@@ -1213,7 +1213,7 @@ rspamd_scan_result_ucl (struct rspamd_task *task,

if (pr) {
if (pr->message && !(pr->flags & RSPAMD_PASSTHROUGH_NO_SMTP_MESSAGE)) {
/* Add smtp message if it does not exists: see #3269 for details */
/* Add smtp message if it does not exist: see #3269 for details */
if (ucl_object_lookup(task->messages, "smtp_message") == NULL) {
ucl_object_insert_key(task->messages,
ucl_object_fromstring_common(pr->message, 0, UCL_STRING_RAW),
@@ -1268,6 +1268,21 @@ rspamd_scan_result_ucl (struct rspamd_task *task,

/* Now handle symbols */
if (task->cmd != CMD_CHECK) {
/* Insert actions thresholds */
ucl_object_t *actions_obj = ucl_object_typed_new (UCL_OBJECT);

for (int i = task->result->nactions - 1; i >= 0; i --) {
struct rspamd_action_config *action_lim = &task->result->actions_config[i];

if (!isnan (action_lim->cur_limit) &&
!(action_lim->action->flags & (RSPAMD_ACTION_NO_THRESHOLD|RSPAMD_ACTION_HAM))) {
ucl_object_insert_key(actions_obj, ucl_object_fromdouble(action_lim->cur_limit),
action_lim->action->name, 0, true);
}
}

ucl_object_insert_key(obj, actions_obj, "thresholds", 0, false);

/* For checkv2 we insert symbols as a separate object */
obj = ucl_object_typed_new (UCL_OBJECT);
}

Loading…
Cancel
Save