Переглянути джерело

[Minor] Add logging variable for forced actions

tags/1.8.1
Vsevolod Stakhov 5 роки тому
джерело
коміт
8c5dafb02f
3 змінених файлів з 33 додано та 1 видалено
  1. 1
    0
      src/libserver/cfg_file.h
  2. 3
    0
      src/libserver/cfg_utils.c
  3. 29
    1
      src/libserver/task.c

+ 1
- 0
src/libserver/cfg_file.h Переглянути файл

@@ -236,6 +236,7 @@ enum rspamd_log_format_type {
RSPAMD_LOG_LUA,
RSPAMD_LOG_DIGEST,
RSPAMD_LOG_FILENAME,
RSPAMD_LOG_FORCED_ACTION,
};

enum rspamd_log_format_flags {

+ 3
- 0
src/libserver/cfg_utils.c Переглянути файл

@@ -446,6 +446,9 @@ rspamd_config_process_var (struct rspamd_config *cfg, const rspamd_ftok_t *var,
else if (rspamd_ftok_cstr_equal (&tok, "filename", TRUE)) {
type = RSPAMD_LOG_FILENAME;
}
else if (rspamd_ftok_cstr_equal (&tok, "forced_action", TRUE)) {
type = RSPAMD_LOG_FORCED_ACTION;
}
else {
msg_err_config ("unknown log variable: %T", &tok);
return FALSE;

+ 29
- 1
src/libserver/task.c Переглянути файл

@@ -1010,6 +1010,11 @@ rspamd_task_log_check_condition (struct rspamd_task *task,
ret = TRUE;
}
break;
case RSPAMD_LOG_FORCED_ACTION:
if (task->result->passthrough_result) {
ret = TRUE;
}
break;
default:
ret = TRUE;
break;
@@ -1292,7 +1297,7 @@ rspamd_task_log_variable (struct rspamd_task *task,
{
rspamd_fstring_t *res = logbuf;
rspamd_ftok_t var = {.begin = NULL, .len = 0};
static gchar numbuf[64];
static gchar numbuf[128];
static const gchar undef[] = "undef";

switch (lf->type) {
@@ -1412,6 +1417,29 @@ rspamd_task_log_variable (struct rspamd_task *task,
var.len = sizeof (undef) - 1;
}
break;
case RSPAMD_LOG_FORCED_ACTION:
if (task->result->passthrough_result) {
struct rspamd_passthrough_result *pr = task->result->passthrough_result;

if (!isnan (pr->target_score)) {
var.len = rspamd_snprintf (numbuf, sizeof (numbuf),
"%s \"%s\"; score=%.2f (set by %s)",
rspamd_action_to_str (pr->action),
pr->message, pr->target_score, pr->module);
}
else {
var.len = rspamd_snprintf (numbuf, sizeof (numbuf),
"%s \"%s\"; score=nan (set by %s)",
rspamd_action_to_str (pr->action),
pr->message, pr->module);
}
var.begin = numbuf;
}
else {
var.begin = undef;
var.len = sizeof (undef) - 1;
}
break;
default:
var = rspamd_task_log_metric_res (task, lf);
break;

Завантаження…
Відмінити
Зберегти