diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-08-30 19:27:26 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-08-30 19:40:08 +0100 |
commit | ddcbe3942b37a765387a4257b559add9502f7821 (patch) | |
tree | e784dca0007228adf5b9d99ac39f3b7c62fa0b9b | |
parent | d7c3fa7fe56623e0d8a339a9b43c353e01676a90 (diff) | |
download | rspamd-ddcbe3942b37a765387a4257b559add9502f7821.tar.gz rspamd-ddcbe3942b37a765387a4257b559add9502f7821.zip |
[Minor] Add public_groups_only flag
-rw-r--r-- | src/libserver/cfg_file.h | 1 | ||||
-rw-r--r-- | src/libserver/cfg_rcl.c | 6 | ||||
-rw-r--r-- | src/libserver/protocol.c | 5 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/libserver/cfg_file.h b/src/libserver/cfg_file.h index 9573b776a..cffe997e4 100644 --- a/src/libserver/cfg_file.h +++ b/src/libserver/cfg_file.h @@ -368,6 +368,7 @@ struct rspamd_config { gboolean disable_pcre_jit; /**< Disable pcre JIT */ gboolean own_lua_state; /**< True if we have created lua_state internally */ gboolean soft_reject_on_timeout; /**< If true emit soft reject on task timeout (if not reject) */ + gboolean public_groups_only; /**< Output merely public groups everywhere */ gsize max_cores_size; /**< maximum size occupied by rspamd core files */ gsize max_cores_count; /**< maximum number of core files */ diff --git a/src/libserver/cfg_rcl.c b/src/libserver/cfg_rcl.c index d224b4029..2bdb6adc6 100644 --- a/src/libserver/cfg_rcl.c +++ b/src/libserver/cfg_rcl.c @@ -1961,6 +1961,12 @@ rspamd_rcl_config_init (struct rspamd_config *cfg, GHashTable *skip_sections) 0, "Always check all filters"); rspamd_rcl_add_default_handler (sub, + "public_groups_only", + rspamd_rcl_parse_struct_boolean, + G_STRUCT_OFFSET (struct rspamd_config, public_groups_only), + 0, + "Output merely public groups everywhere"); + rspamd_rcl_add_default_handler (sub, "enable_experimental", rspamd_rcl_parse_struct_boolean, G_STRUCT_OFFSET (struct rspamd_config, enable_experimental), diff --git a/src/libserver/protocol.c b/src/libserver/protocol.c index f09784c48..469b834dc 100644 --- a/src/libserver/protocol.c +++ b/src/libserver/protocol.c @@ -1248,8 +1248,13 @@ rspamd_scan_result_ucl (struct rspamd_task *task, gdouble gr_score; obj = ucl_object_typed_new (UCL_OBJECT); + ucl_object_reserve (obj, kh_size (mres->sym_groups)); kh_foreach (mres->sym_groups, gr, gr_score,{ + if (task->cfg->public_groups_only && + !(gr->flags & RSPAMD_SYMBOL_GROUP_PUBLIC)) { + continue; + } sobj = rspamd_metric_group_ucl (task, gr, gr_score); ucl_object_insert_key (obj, sobj, gr->name, 0, false); }); |