diff -r ab25c0a231d0 -r feb2f1e115c6 src/server/daemon/config.c --- 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) {