src/server/daemon/config.c

changeset 60
feb2f1e115c6
parent 54
3a1d5a52adfc
child 61
c858850f3d3a
--- a/src/server/daemon/config.c	Mon May 06 13:44:27 2013 +0200
+++ b/src/server/daemon/config.c	Mon May 06 14:54:40 2013 +0200
@@ -58,13 +58,13 @@
 // TODO: Funktion für ConfigDirective -> directive
 // TODO: Funktion für UcxList parameter list -> pblock
 
-void load_init_conf(char *file) {
+int load_init_conf(char *file) {
     printf("load_init_conf\n");
 
     InitConfig *cfg = load_init_config(file);
     UcxMempool *mp = cfg->parser.mp;
     if(cfg == NULL) {
-        return;
+        return 1;
     }
 
     cfg_pool = pool_create(); // one pool for one Configuration
@@ -93,17 +93,31 @@
         d->func = get_function(func_name);
         if(d->func == NULL) {
             free(d);
-            dirs = dirs->next;
-            continue;
+            pblock_free(d->param);
+            //dirs = dirs->next;
+            log_ereport(
+                    LOG_MISCONFIG,
+                    "Cannot find Init function %s",
+                    func_name);
+            return 1;
         }
 
         /* execute init directive */
-        d->func->func(d->param, NULL, NULL);
+        int ret = d->func->func(d->param, NULL, NULL);
+        if(ret != REQ_PROCEED || ret != REQ_NOACTION) {
+            log_ereport(
+                    LOG_FAILURE,
+                    "Error running Init function %s",
+                    func_name);
+            return 1;
+        }
 
         dirs = dirs->next;
     }
     
     free_init_config(cfg);
+    
+    return 0;
 }
 
 ServerConfiguration* load_server_conf(ServerConfiguration *old, char *file) {

mercurial