summaryrefslogtreecommitdiffstats
path: root/src/libserver/cfg_rcl.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-02-22 21:32:22 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-02-22 21:32:22 +0000
commitef9d816e983d6559e6c711a2a5e2e76a2ddbd226 (patch)
treedd88474496b8df6d950d51ac516693ed9f39b5fe /src/libserver/cfg_rcl.c
parent32d054c31888e6eb9f4e449e4c237142d4042b7f (diff)
downloadrspamd-ef9d816e983d6559e6c711a2a5e2e76a2ddbd226.tar.gz
rspamd-ef9d816e983d6559e6c711a2a5e2e76a2ddbd226.zip
Allow configurable tokenizers.
Diffstat (limited to 'src/libserver/cfg_rcl.c')
-rw-r--r--src/libserver/cfg_rcl.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/libserver/cfg_rcl.c b/src/libserver/cfg_rcl.c
index eece86fb7..0ba9423a1 100644
--- a/src/libserver/cfg_rcl.c
+++ b/src/libserver/cfg_rcl.c
@@ -930,6 +930,7 @@ rspamd_rcl_classifier_handler (struct rspamd_config *cfg,
struct rspamd_classifier_config *ccf;
gboolean res = TRUE;
struct rspamd_rcl_section *stat_section;
+ struct rspamd_tokenizer_config *tkcf = NULL;
ccf = rspamd_config_new_classifier (cfg, NULL);
@@ -960,6 +961,19 @@ rspamd_rcl_classifier_handler (struct rspamd_config *cfg,
}
}
}
+ else if (g_ascii_strcasecmp (key, "tokenizer") == 0) {
+ tkcf = rspamd_mempool_alloc0 (cfg->cfg_pool, sizeof (*tkcf));
+ if (ucl_object_type (val) == UCL_STRING) {
+ tkcf->name = ucl_object_tostring (val);
+ }
+ else if (ucl_object_type (val) == UCL_OBJECT) {
+ cur = ucl_object_find_key (val, "name");
+ if (cur != NULL) {
+ tkcf->name = ucl_object_tostring (cur);
+ tkcf->opts = val;
+ }
+ }
+ }
}
}
}
@@ -968,6 +982,7 @@ rspamd_rcl_classifier_handler (struct rspamd_config *cfg,
}
ccf->opts = (ucl_object_t *)obj;
+ ccf->tokenizer = tkcf;
cfg->classifiers = g_list_prepend (cfg->classifiers, ccf);
@@ -1357,11 +1372,6 @@ rspamd_rcl_config_init (void)
G_STRUCT_OFFSET (struct rspamd_classifier_config, classifier),
0);
rspamd_rcl_add_default_handler (sub,
- "tokenizer",
- rspamd_rcl_parse_struct_string,
- G_STRUCT_OFFSET (struct rspamd_classifier_config, tokenizer),
- 0);
- rspamd_rcl_add_default_handler (sub,
"min_tokens",
rspamd_rcl_parse_struct_integer,
G_STRUCT_OFFSET (struct rspamd_classifier_config, min_tokens),