aboutsummaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/main.c b/main.c
index c67ce419f..5c9fe7909 100644
--- a/main.c
+++ b/main.c
@@ -96,8 +96,9 @@ fork_worker (struct rspamd_main *rspamd, int listen_sock, int reconfig, enum pro
if (reconfig) {
tmp_cfg = (struct config_file *) g_malloc (sizeof (struct config_file));
if (tmp_cfg) {
- cfg_file = strdup (rspamd->cfg->cfg_name);
bzero (tmp_cfg, sizeof (struct config_file));
+ tmp_cfg->cfg_pool = memory_pool_new (32768);
+ cfg_file = memory_pool_strdup (tmp_cfg->cfg_pool, rspamd->cfg->cfg_name);
f = fopen (rspamd->cfg->cfg_name , "r");
if (f == NULL) {
msg_warn ("fork_worker: cannot open file: %s", rspamd->cfg->cfg_name );
@@ -177,11 +178,12 @@ main (int argc, char **argv)
active_worker = NULL;
bzero (rspamd->cfg, sizeof (struct config_file));
+ rspamd->cfg->cfg_pool = memory_pool_new (32768);
init_defaults (rspamd->cfg);
bzero (&signals, sizeof (struct sigaction));
- rspamd->cfg->cfg_name = strdup (FIXED_CONFIG_FILE);
+ rspamd->cfg->cfg_name = memory_pool_strdup (rspamd->cfg->cfg_pool, FIXED_CONFIG_FILE);
read_cmd_line (argc, argv, rspamd->cfg);
msg_warn ("(main) starting...");
@@ -203,15 +205,15 @@ main (int argc, char **argv)
}
fclose (f);
- rspamd->cfg->cfg_name = strdup (rspamd->cfg->cfg_name );
+ rspamd->cfg->cfg_name = memory_pool_strdup (rspamd->cfg->cfg_pool, rspamd->cfg->cfg_name );
/* Strictly set temp dir */
if (!rspamd->cfg->temp_dir) {
msg_warn ("tempdir is not set, trying to use $TMPDIR");
- rspamd->cfg->temp_dir = getenv ("TMPDIR");
+ rspamd->cfg->temp_dir = memory_pool_strdup (rspamd->cfg->cfg_pool, getenv ("TMPDIR"));
if (!rspamd->cfg->temp_dir) {
- rspamd->cfg->temp_dir = strdup ("/tmp");
+ rspamd->cfg->temp_dir = memory_pool_strdup (rspamd->cfg->cfg_pool, "/tmp");
}
}
@@ -227,7 +229,7 @@ main (int argc, char **argv)
/* Init C modules */
for (i = 0; i < MODULES_NUM; i ++) {
- cur_module = g_malloc (sizeof (struct module_ctx));
+ cur_module = memory_pool_alloc (rspamd->cfg->cfg_pool, sizeof (struct module_ctx));
if (modules[i].module_init_func(cfg, &cur_module) == 0) {
g_hash_table_insert (cfg->c_modules, (gpointer)modules[i].name, cur_module);
}