Browse Source

[Minor] Allow to add additional paths to plugins

Issue: #2848
tags/1.9.2
Vsevolod Stakhov 5 years ago
parent
commit
04b317274d

+ 22
- 3
src/libserver/cfg_rcl.c View File

@@ -845,6 +845,7 @@ rspamd_rcl_lua_handler (rspamd_mempool_t *pool, const ucl_object_t *obj,
gboolean
rspamd_rcl_add_lua_plugins_path (struct rspamd_config *cfg,
const gchar *path,
gboolean main_path,
GHashTable *modules_seen,
GError **err)
{
@@ -856,7 +857,7 @@ rspamd_rcl_add_lua_plugins_path (struct rspamd_config *cfg,

if (stat (path, &st) == -1) {

if (errno != ENOENT) {
if (errno != ENOENT || main_path) {
g_set_error (err,
CFG_RCL_ERROR,
errno,
@@ -866,7 +867,7 @@ rspamd_rcl_add_lua_plugins_path (struct rspamd_config *cfg,
return FALSE;
}
else {
msg_info_config ("plugins path %s is absent, skip it", path);
msg_debug_config ("optional plugins path %s is absent, skip it", path);

return TRUE;
}
@@ -986,6 +987,7 @@ rspamd_rcl_modules_handler (rspamd_mempool_t *pool, const ucl_object_t *obj,
if (ucl_object_tostring_safe (cur, &data)) {
if (!rspamd_rcl_add_lua_plugins_path (cfg,
rspamd_mempool_strdup (cfg->cfg_pool, data),
TRUE,
mods_seen,
err)) {
return FALSE;
@@ -1008,6 +1010,23 @@ rspamd_rcl_modules_handler (rspamd_mempool_t *pool, const ucl_object_t *obj,
if (ucl_object_tostring_safe (cur, &data)) {
if (!rspamd_rcl_add_lua_plugins_path (cfg,
rspamd_mempool_strdup (cfg->cfg_pool, data),
FALSE,
mods_seen,
err)) {
return FALSE;
}
}
}
}

val = ucl_object_lookup (obj, "try_path");

if (val) {
LL_FOREACH (val, cur) {
if (ucl_object_tostring_safe (cur, &data)) {
if (!rspamd_rcl_add_lua_plugins_path (cfg,
rspamd_mempool_strdup (cfg->cfg_pool, data),
FALSE,
mods_seen,
err)) {
return FALSE;
@@ -1018,7 +1037,7 @@ rspamd_rcl_modules_handler (rspamd_mempool_t *pool, const ucl_object_t *obj,
}
else if (ucl_object_tostring_safe (obj, &data)) {
if (!rspamd_rcl_add_lua_plugins_path (cfg,
rspamd_mempool_strdup (cfg->cfg_pool, data), NULL, err)) {
rspamd_mempool_strdup (cfg->cfg_pool, data), TRUE, NULL, err)) {
return FALSE;
}
}

+ 1
- 0
src/libserver/cfg_rcl.h View File

@@ -445,6 +445,7 @@ ucl_object_t *rspamd_rcl_add_doc_by_example (struct rspamd_config *cfg,
*/
gboolean rspamd_rcl_add_lua_plugins_path (struct rspamd_config *cfg,
const gchar *path,
gboolean main_path,
GHashTable *modules_seen,
GError **err);


+ 1
- 1
src/libstat/backends/sqlite3_backend.c View File

@@ -554,7 +554,7 @@ rspamd_sqlite3_init (struct rspamd_stat_ctx *ctx,

if ((bk = rspamd_sqlite3_opendb (cfg->cfg_pool, stf, filename,
stf->opts, TRUE, &err)) == NULL) {
msg_err_config ("cannot open sqlite3 db: %e", err);
msg_err_config ("cannot open sqlite3 db %s: %e", filename, err);
g_error_free (err);
return NULL;
}

+ 1
- 1
src/rspamadm/confighelp.c View File

@@ -234,7 +234,7 @@ rspamadm_confighelp (gint argc, gchar **argv, const struct rspamadm_command *cmd
rspamd_rcl_config_init (cfg, NULL);
lua_pushboolean (cfg->lua_state, true);
lua_setglobal (cfg->lua_state, "confighelp");
rspamd_rcl_add_lua_plugins_path (cfg, plugins_path, NULL, NULL);
rspamd_rcl_add_lua_plugins_path (cfg, plugins_path, FALSE, NULL, NULL);

/* Init modules to get documentation strings */
i = 0;

Loading…
Cancel
Save