summaryrefslogtreecommitdiffstats
path: root/src/libserver
diff options
context:
space:
mode:
Diffstat (limited to 'src/libserver')
-rw-r--r--src/libserver/cfg_utils.c18
-rw-r--r--src/libserver/worker_util.c8
-rw-r--r--src/libserver/worker_util.h2
3 files changed, 8 insertions, 20 deletions
diff --git a/src/libserver/cfg_utils.c b/src/libserver/cfg_utils.c
index a50986c80..f5cf5d232 100644
--- a/src/libserver/cfg_utils.c
+++ b/src/libserver/cfg_utils.c
@@ -642,8 +642,6 @@ rspamd_config_post_load (struct rspamd_config *cfg,
struct timespec ts;
#endif
struct metric *def_metric;
- struct rspamd_config_post_load_script *sc;
- struct rspamd_config **pcfg;
gboolean ret = TRUE;
#ifdef HAVE_CLOCK_GETTIME
@@ -750,22 +748,6 @@ rspamd_config_post_load (struct rspamd_config *cfg,
rspamd_config_libs (cfg->libs_ctx, cfg);
}
- /* Execute post load scripts */
- LL_FOREACH (cfg->on_load, sc) {
- lua_rawgeti (cfg->lua_state, LUA_REGISTRYINDEX, sc->cbref);
- pcfg = lua_newuserdata (cfg->lua_state, sizeof (*pcfg));
- *pcfg = cfg;
- rspamd_lua_setclass (cfg->lua_state, "rspamd{config}", -1);
-
- if (lua_pcall (cfg->lua_state, 1, 0, 0) != 0) {
- msg_err_config ("error executing post load code: %s",
- lua_tostring (cfg->lua_state, -1));
- lua_pop (cfg->lua_state, 1);
-
- return FALSE;
- }
- }
-
/* Validate cache */
if (opts & RSPAMD_CONFIG_INIT_VALIDATE) {
return rspamd_symbols_cache_validate (cfg->cache, cfg, FALSE) && ret;
diff --git a/src/libserver/worker_util.c b/src/libserver/worker_util.c
index 80fec531c..056177e1c 100644
--- a/src/libserver/worker_util.c
+++ b/src/libserver/worker_util.c
@@ -257,7 +257,7 @@ rspamd_worker_init_signals (struct rspamd_worker *worker, struct event_base *bas
struct event_base *
rspamd_prepare_worker (struct rspamd_worker *worker, const char *name,
- void (*accept_handler)(int, short, void *))
+ void (*accept_handler)(int, short, void *), gboolean load_lua)
{
struct event_base *ev_base;
struct event *accept_events;
@@ -301,6 +301,12 @@ rspamd_prepare_worker (struct rspamd_worker *worker, const char *name,
}
}
+ if (load_lua) {
+ struct rspamd_config *cfg = worker->srv->cfg;
+
+ rspamd_lua_run_postloads (cfg->lua_state, cfg, ev_base);
+ }
+
return ev_base;
}
diff --git a/src/libserver/worker_util.h b/src/libserver/worker_util.h
index 9d129f140..63a18a4fe 100644
--- a/src/libserver/worker_util.h
+++ b/src/libserver/worker_util.h
@@ -40,7 +40,7 @@ struct rspamd_worker_signal_handler;
*/
struct event_base *
rspamd_prepare_worker (struct rspamd_worker *worker, const char *name,
- void (*accept_handler)(int, short, void *));
+ void (*accept_handler)(int, short, void *), gboolean load_lua);
/**
* Set special signal handler for a worker