#
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
-fann_redis {
+neural {
#servers = 127.0.0.1:6379; # Redis server to store learning data and ANN
train {
}
timeout = 20; # Increase redis timeout
- enabled = false; # Explicitly disable module
- use_settings = false; # If enabled, then settings-id could switch this module to another FANN
+ enabled = ${HAS_TORCH}; # Explicitly disable module when torch is disabled
+ use_settings = false; # If enabled, then settings-id is used to dispatch networks
+
+ # Legacy support
.include(try=true,priority=5) "${DBDIR}/dynamic/fann_redis.conf"
.include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/fann_redis.conf"
.include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/fann_redis.conf"
+
+ .include(try=true,priority=5) "${DBDIR}/dynamic/neural.conf"
+ .include(try=true,priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/neural.conf"
+ .include(try=true,priority=10) "$LOCAL_CONFDIR/override.d/neural.conf"
}
\ No newline at end of file
ucl_parser_register_variable (parser, RSPAMD_BRANCH_VERSION_MACRO,
RSPAMD_VERSION_BRANCH);
+#if defined(WITH_TORCH) && defined(WITH_LUAJIT) && defined(__x86_64__)
+ ucl_parser_register_variable (parser, "HAS_TORCH",
+ "yes");
+#else
+ ucl_parser_register_variable (parser, "HAS_TORCH",
+ "no");
+#endif
+
if (vars != NULL) {
g_hash_table_iter_init (&it, vars);
else {
enabled = ucl_object_lookup (conf, "enabled");
- if (enabled && ucl_object_type (enabled) == UCL_BOOLEAN) {
- if (!ucl_object_toboolean (enabled)) {
- rspamd_plugins_table_push_elt (L,
- "disabled_explicitly", module_name);
+ if (enabled) {
+ if (ucl_object_type (enabled) == UCL_BOOLEAN) {
+ if (!ucl_object_toboolean (enabled)) {
+ rspamd_plugins_table_push_elt (L,
+ "disabled_explicitly", module_name);
- msg_info_config ("%s module %s is disabled in the configuration",
- is_c ? "internal" : "lua", module_name);
- return FALSE;
+ msg_info_config (
+ "%s module %s is disabled in the configuration",
+ is_c ? "internal" : "lua", module_name);
+ return FALSE;
+ }
+ }
+ else if (ucl_object_type (enabled) == UCL_STRING) {
+ gint ret;
+
+ ret = rspamd_config_parse_flag (ucl_object_tostring (enabled), 0);
+
+ if (ret == 0) {
+ rspamd_plugins_table_push_elt (L,
+ "disabled_explicitly", module_name);
+
+ msg_info_config (
+ "%s module %s is disabled in the configuration",
+ is_c ? "internal" : "lua", module_name);
+ return FALSE;
+ }
+ else if (ret == -1) {
+ rspamd_plugins_table_push_elt (L,
+ "disabled_failed", module_name);
+
+ msg_info_config (
+ "%s module %s has wrong enabled flag (%s) in the configuration",
+ is_c ? "internal" : "lua", module_name,
+ ucl_object_tostring (enabled));
+ return FALSE;
+ }
}
}
}