diff -r 255e316db762 -r d77b8f3e14e2 src/server/daemon/configmanager.c --- a/src/server/daemon/configmanager.c Sat Nov 26 19:14:29 2022 +0100 +++ b/src/server/daemon/configmanager.c Sat Nov 26 19:15:33 2022 +0100 @@ -65,17 +65,23 @@ } int cfgmgr_apply_config(CfgManager *mgr) { - int err = 0; - if(apply_server_conf(mgr)) { - if(current_config) { - cfg_unref(current_config); - } - current_config = mgr->cfg; - } else { - err = 1; + // stage 2 config loading + if(!apply_server_conf(mgr)) { + return 1; } - return err; + // some extra steps required if there is already a configuration loaded + if(current_config) { + if(migrate_server_conf(current_config, mgr->cfg)) { + return 1; + } + + cfg_unref(current_config); + } + + current_config = mgr->cfg; + + return 0; } ServerConfiguration *cfgmgr_get_server_config() {