src/server/daemon/configmanager.c

changeset 388
30d29ef5b79a
parent 255
b5d15a4a19f5
child 392
0aef555055ee
--- 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;
 }

mercurial