aboutsummaryrefslogtreecommitdiffstats
path: root/src/libserver/cfg_utils.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-03-15 18:00:35 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-03-15 18:00:35 +0000
commite417edfa97e80946b3fadbd5b7da3420b287d76a (patch)
tree88623e5f1793c859fa98188c6384d40754c7dfcb /src/libserver/cfg_utils.c
parent73292700854365e6a43b78adc0dcd36ee88301c2 (diff)
downloadrspamd-e417edfa97e80946b3fadbd5b7da3420b287d76a.tar.gz
rspamd-e417edfa97e80946b3fadbd5b7da3420b287d76a.zip
[Feature] Add lua rules squeezing
Diffstat (limited to 'src/libserver/cfg_utils.c')
-rw-r--r--src/libserver/cfg_utils.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/libserver/cfg_utils.c b/src/libserver/cfg_utils.c
index c042c5eb2..10503dc21 100644
--- a/src/libserver/cfg_utils.c
+++ b/src/libserver/cfg_utils.c
@@ -753,6 +753,27 @@ rspamd_config_post_load (struct rspamd_config *cfg,
}
if (opts & RSPAMD_CONFIG_INIT_SYMCACHE) {
+ lua_State *L = cfg->lua_state;
+ int err_idx;
+
+ /* Process squeezed Lua rules */
+ lua_pushcfunction (L, &rspamd_lua_traceback);
+ err_idx = lua_gettop (L);
+
+ if (rspamd_lua_require_function (cfg->lua_state, "lua_squeeze_rules",
+ "squeeze_init")) {
+ if (lua_pcall (L, 0, 0, err_idx) != 0) {
+ GString *tb = lua_touserdata (L, -1);
+ msg_err_config ("call to squeeze_init script failed: %v", tb);
+
+ if (tb) {
+ g_string_free (tb, TRUE);
+ }
+ }
+ }
+
+ lua_settop (L, err_idx - 1);
+
/* Init config cache */
rspamd_symbols_cache_init (cfg->cache);