src/server/daemon/configmanager.c

changeset 440
d77b8f3e14e2
parent 426
6a2e7a464991
child 443
ef3c8a0e1fee
--- 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() {

mercurial