diff -r f5caf41b4db6 -r 30d29ef5b79a src/server/daemon/configmanager.c --- a/src/server/daemon/configmanager.c Sun Sep 25 09:33:39 2022 +0200 +++ b/src/server/daemon/configmanager.c Sun Sep 25 10:36:28 2022 +0200 @@ -51,16 +51,15 @@ return &global_vars; } -int cfgmgr_load_config(ServerConfiguration **set_cfg) { - ServerConfiguration *config = load_server_conf("config/server.conf"); +int cfgmgr_load_config(CfgManager *mgr) { + ZERO(mgr, sizeof(CfgManager)); + ServerConfiguration *config = load_server_conf(mgr, "config/server.conf"); if(!config) { return -1; } - if(set_cfg) { - *set_cfg = config; - } + mgr->cfg = config; if(current_config) { cfg_unref(current_config); @@ -70,6 +69,19 @@ return 0; } +int cfgmgr_apply_config(CfgManager *mgr) { + int err = 1; + if(apply_server_conf(mgr)) { + err = 0; + if(current_config) { + cfg_unref(current_config); + } + current_config = mgr->cfg; + } + + return err; +} + ServerConfiguration *cfgmgr_get_server_config() { return current_config; }