]> source.dussan.org Git - rspamd.git/commitdiff
Store RULESDIR in the code and UCL.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 7 Aug 2015 13:39:45 +0000 (14:39 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 7 Aug 2015 13:39:45 +0000 (14:39 +0100)
config.h.in
src/libserver/cfg_utils.c
src/lua/lua_common.c

index 38c15903022699ba5bb99090256c78cce376975f..41be3c5872bd8b877d1607cb3d371b5aabd51a26 100644 (file)
 #define RSPAMD_DBDIR "${DBDIR}"
 #define RSPAMD_EXAMPLESDIR "${EXAMPLESDIR}"
 #define RSPAMD_PLUGINSDIR "${PLUGINSDIR}"
+#define RSPAMD_RULESDIR "${RULESDIR}"
 #define RSPAMD_WWWDIR "${WWWDIR}"
 #define RSPAMD_PREFIX "${CMAKE_INSTALL_PREFIX}"
 
index 1fe7d1483871717bc09e6b2295410a6e8ae5e14b..6afff0476e74a7cae94999bffcaaec9d4d1bf33c 100644 (file)
@@ -644,6 +644,7 @@ rspamd_include_map_handler (const guchar *data, gsize len,
 #define RSPAMD_DBDIR_MACRO "DBDIR"
 #define RSPAMD_LOGDIR_MACRO "LOGDIR"
 #define RSPAMD_PLUGINSDIR_MACRO "PLUGINSDIR"
+#define RSPAMD_RULESDIR_MACRO "RULESDIR"
 #define RSPAMD_WWWDIR_MACRO "WWWDIR"
 #define RSPAMD_PREFIX_MACRO "PREFIX"
 #define RSPAMD_VERSION_MACRO "VERSION"
@@ -655,21 +656,24 @@ rspamd_ucl_add_conf_variables (struct ucl_parser *parser, GHashTable *vars)
        gpointer k, v;
 
        ucl_parser_register_variable (parser,
-                                                                                RSPAMD_CONFDIR_MACRO,
-                                                                                                                               RSPAMD_CONFDIR);
+                       RSPAMD_CONFDIR_MACRO,
+                       RSPAMD_CONFDIR);
        ucl_parser_register_variable (parser, RSPAMD_RUNDIR_MACRO,
-                                                                                                                               RSPAMD_RUNDIR);
+                       RSPAMD_RUNDIR);
        ucl_parser_register_variable (parser,  RSPAMD_DBDIR_MACRO,
-                                                                                                                               RSPAMD_DBDIR);
+                       RSPAMD_DBDIR);
        ucl_parser_register_variable (parser, RSPAMD_LOGDIR_MACRO,
-                                                                                                                               RSPAMD_LOGDIR);
+                       RSPAMD_LOGDIR);
        ucl_parser_register_variable (parser,
-               RSPAMD_PLUGINSDIR_MACRO,
-                                                                                                                               RSPAMD_PLUGINSDIR);
+                       RSPAMD_PLUGINSDIR_MACRO,
+                       RSPAMD_PLUGINSDIR);
+       ucl_parser_register_variable (parser,
+                       RSPAMD_RULESDIR_MACRO,
+                       RSPAMD_RULESDIR);
        ucl_parser_register_variable (parser,  RSPAMD_WWWDIR_MACRO,
-                                                                                                                               RSPAMD_WWWDIR);
+                       RSPAMD_WWWDIR);
        ucl_parser_register_variable (parser,  RSPAMD_PREFIX_MACRO,
-                                                                                                                               RSPAMD_PREFIX);
+                       RSPAMD_PREFIX);
        ucl_parser_register_variable (parser, RSPAMD_VERSION_MACRO, RVERSION);
 
        if (vars != NULL) {
index 2f1f645ff60d8b86160ed2e7a987d1d59a63d214..6526b3b53ecf84d1d655549c0d4237d885819f54 100644 (file)
@@ -165,6 +165,16 @@ lua_add_actions_global (lua_State *L)
        lua_setglobal (L, "rspamd_actions");
 }
 
+#define RSPAMD_CONFDIR_INDEX "CONFDIR"
+#define RSPAMD_RUNDIR_INDEX "RUNDIR"
+#define RSPAMD_DBDIR_INDEX "DBDIR"
+#define RSPAMD_LOGDIR_INDEX "LOGDIR"
+#define RSPAMD_PLUGINSDIR_INDEX "PLUGINSDIR"
+#define RSPAMD_RULESDIR_INDEX "RULESDIR"
+#define RSPAMD_WWWDIR_INDEX "WWWDIR"
+#define RSPAMD_PREFIX_INDEX "PREFIX"
+#define RSPAMD_VERSION_INDEX "VERSION"
+
 void
 rspamd_lua_set_path (lua_State *L, struct rspamd_config *cfg)
 {
@@ -191,18 +201,37 @@ rspamd_lua_set_path (lua_State *L, struct rspamd_config *cfg)
        }
 
        if (additional_path) {
-               rspamd_snprintf (path_buf, sizeof (path_buf), "%s/lua/?.lua;%s/lua/?.lua;%s;%s",
-                               RSPAMD_PLUGINSDIR, RSPAMD_CONFDIR, additional_path, old_path);
+               rspamd_snprintf (path_buf, sizeof (path_buf),
+                               "%s/lua/?.lua;%s/lua/?.lua;%s;%s;%s",
+                               RSPAMD_PLUGINSDIR, RSPAMD_CONFDIR, RSPAMD_RULESDIR,
+                               additional_path, old_path);
        }
        else {
-               rspamd_snprintf (path_buf, sizeof (path_buf), "%s/lua/?.lua;%s/lua/?.lua;%s",
-                               RSPAMD_PLUGINSDIR, RSPAMD_CONFDIR, old_path);
+               rspamd_snprintf (path_buf, sizeof (path_buf),
+                               "%s/lua/?.lua;%s/lua/?.lua;%s;%s",
+                               RSPAMD_PLUGINSDIR, RSPAMD_CONFDIR, RSPAMD_RULESDIR,
+                               old_path);
        }
 
        lua_pop (L, 1);
        lua_pushstring (L, path_buf);
        lua_setfield (L, -2, "path");
        lua_pop (L, 1);
+
+       /* Set known paths as rspamd_paths global */
+       lua_getglobal (L, "rspamd_paths");
+       if (lua_isnil (L, -1)) {
+               lua_newtable (L);
+               rspamd_lua_table_set (L, RSPAMD_CONFDIR_INDEX, RSPAMD_CONFDIR);
+               rspamd_lua_table_set (L, RSPAMD_RUNDIR_INDEX, RSPAMD_RUNDIR);
+               rspamd_lua_table_set (L, RSPAMD_DBDIR_INDEX, RSPAMD_DBDIR);
+               rspamd_lua_table_set (L, RSPAMD_LOGDIR_INDEX, RSPAMD_LOGDIR);
+               rspamd_lua_table_set (L, RSPAMD_WWWDIR_INDEX, RSPAMD_WWWDIR);
+               rspamd_lua_table_set (L, RSPAMD_PLUGINSDIR_INDEX, RSPAMD_PLUGINSDIR);
+               rspamd_lua_table_set (L, RSPAMD_RULESDIR_INDEX, RSPAMD_RULESDIR);
+               rspamd_lua_table_set (L, RSPAMD_PREFIX_INDEX, RSPAMD_PREFIX);
+               lua_setglobal (L, "rspamd_paths");
+       }
 }
 
 lua_State *