* @param reconfig
* @return
*/
-gboolean rspamd_init_filters (struct rspamd_config *cfg, bool reconfig);
+gboolean rspamd_init_filters (struct rspamd_config *cfg, bool reconfig, bool strict);
/**
* Add new symbol to the metric
}
gboolean
-rspamd_init_filters (struct rspamd_config *cfg, bool reconfig)
+rspamd_init_filters (struct rspamd_config *cfg, bool reconfig, bool strict)
{
GList *cur;
module_t *mod, **pmod;
}
else {
if (!mod->module_config_func (cfg)) {
- msg_info_config ("config of %s failed!", mod->name);
+ msg_err_config ("config of %s failed", mod->name);
ret = FALSE;
+
+ if (strict) {
+ return FALSE;
+ }
}
}
}
cur = g_list_next (cur);
}
- ret = rspamd_init_lua_filters (cfg, 0) && ret;
+ ret = rspamd_init_lua_filters (cfg, 0, strict) && ret;
return ret;
}
}
gboolean
-rspamd_init_lua_filters (struct rspamd_config *cfg, gboolean force_load)
+rspamd_init_lua_filters (struct rspamd_config *cfg, bool force_load, bool strict)
{
struct rspamd_config **pcfg;
GList *cur;
rspamd_plugins_table_push_elt (L, "disabled_failed",
module->name);
+ if (strict) {
+ return FALSE;
+ }
+
cur = g_list_next (cur);
continue;
}
munmap (data, fsize);
g_free (lua_fname);
+ if (strict) {
+ return FALSE;
+ }
+
cur = g_list_next (cur);
continue;
}
rspamd_plugins_table_push_elt (L, "disabled_failed",
module->name);
+ if (strict) {
+ return FALSE;
+ }
+
cur = g_list_next (cur);
continue;
}
* Load and initialize lua plugins
*/
gboolean
-rspamd_init_lua_filters (struct rspamd_config *cfg, gboolean force_load);
+rspamd_init_lua_filters (struct rspamd_config *cfg, bool force_load, bool strict);
/**
* Initialize new locked lua_State structure
if (cfg != NULL) {
rspamd_lua_post_load_config (cfg);
- lua_pushboolean (L, rspamd_init_filters (cfg, FALSE));
+ lua_pushboolean (L, rspamd_init_filters (cfg, false, false));
}
else {
return luaL_error (L, "invalid arguments");
for (i = 0; i < nparts; i ++) {
if (strcmp (parts[i], "filters") == 0) {
rspamd_lua_post_load_config (cfg);
- rspamd_init_filters (cfg, FALSE);
+ rspamd_init_filters (cfg, false, false);
}
else if (strcmp (parts[i], "langdet") == 0) {
if (!cfg->lang_det) {
if (cfg != NULL && message != NULL) {
base = ev_loop_new (EVFLAG_SIGNALFD|EVBACKEND_ALL);
- rspamd_init_filters (cfg, FALSE);
+ rspamd_init_filters (cfg, false, false);
task = rspamd_task_new (NULL, cfg, NULL, NULL, base, FALSE);
task->msg.begin = rspamd_mempool_alloc (task->task_pool, mlen);
rspamd_strlcpy ((gpointer)task->msg.begin, message, mlen);
/* Do post-load actions */
rspamd_lua_post_load_config (cfg);
- if (!rspamd_init_filters (rspamd_main->cfg, FALSE)) {
- ret = FALSE;
- }
-
- if (ret) {
- ret = rspamd_config_post_load (cfg, RSPAMD_CONFIG_INIT_SYMCACHE);
- }
+ (void)rspamd_init_filters (rspamd_main->cfg, false, false);
+ rspamd_config_post_load (cfg, RSPAMD_CONFIG_INIT_SYMCACHE);
}
if (ret) {
/* Init lua modules */
rspamd_lua_set_path (cfg->lua_state, cfg->rcl_obj, ucl_vars);
- rspamd_init_lua_filters (cfg, TRUE);
+ rspamd_init_lua_filters (cfg, true, false);
if (argc > 1) {
for (i = 1; i < argc; i ++) {
/* Do post-load actions */
rspamd_lua_post_load_config (cfg);
- if (!rspamd_init_filters (rspamd_main->cfg, FALSE)) {
+ if (!rspamd_init_filters (rspamd_main->cfg, false, strict)) {
ret = FALSE;
}
* modules and merely afterwards to init modules
*/
rspamd_lua_post_load_config (tmp_cfg);
- rspamd_init_filters (tmp_cfg, TRUE);
+ rspamd_init_filters (tmp_cfg, true, false);
/* Do post-load actions */
rspamd_config_post_load (tmp_cfg,
rspamd_lua_post_load_config (cfg);
if (init_modules) {
- rspamd_init_filters (cfg, reload);
+ rspamd_init_filters (cfg, reload, false);
}
/* Do post-load actions */