242 /* critical error */ |
244 /* critical error */ |
243 return NULL; |
245 return NULL; |
244 } |
246 } |
245 ucx_list_free(list); |
247 ucx_list_free(list); |
246 |
248 |
|
249 log_ereport(LOG_DEBUG, "apply config: AccessLog"); |
247 list = serverconfig_get_node_list(serverconf->root, CONFIG_NODE_OBJECT, SC("AccessLog")); |
250 list = serverconfig_get_node_list(serverconf->root, CONFIG_NODE_OBJECT, SC("AccessLog")); |
248 UCX_FOREACH(elm, list) { |
251 UCX_FOREACH(elm, list) { |
249 ConfigNode *scfgobj = elm->data; |
252 ConfigNode *scfgobj = elm->data; |
250 if(cfg_handle_accesslog(serverconfig, scfgobj)) { |
253 if(cfg_handle_accesslog(serverconfig, scfgobj)) { |
251 return NULL; |
254 return NULL; |
252 } |
255 } |
253 } |
256 } |
254 ucx_list_free(list); |
257 ucx_list_free(list); |
255 |
258 |
|
259 log_ereport(LOG_DEBUG, "apply config: AuthDB"); |
256 list = serverconfig_get_node_list(serverconf->root, CONFIG_NODE_OBJECT, SC("AuthDB")); |
260 list = serverconfig_get_node_list(serverconf->root, CONFIG_NODE_OBJECT, SC("AuthDB")); |
257 UCX_FOREACH(elm, list) { |
261 UCX_FOREACH(elm, list) { |
258 ConfigNode *scfgobj = elm->data; |
262 ConfigNode *scfgobj = elm->data; |
259 if(cfg_handle_authdb(serverconfig, scfgobj)) { |
263 if(cfg_handle_authdb(serverconfig, scfgobj)) { |
260 return NULL; |
264 return NULL; |
261 } |
265 } |
262 } |
266 } |
263 ucx_list_free(list); |
267 ucx_list_free(list); |
264 |
268 |
|
269 log_ereport(LOG_DEBUG, "apply config: Listener"); |
265 list = serverconfig_get_node_list(serverconf->root, CONFIG_NODE_OBJECT, SC("Listener")); |
270 list = serverconfig_get_node_list(serverconf->root, CONFIG_NODE_OBJECT, SC("Listener")); |
266 UCX_FOREACH(elm, list) { |
271 UCX_FOREACH(elm, list) { |
267 ConfigNode *scfgobj = elm->data; |
272 ConfigNode *scfgobj = elm->data; |
268 if(cfg_handle_listener(serverconfig, scfgobj)) { |
273 if(cfg_handle_listener(serverconfig, scfgobj)) { |
269 return NULL; |
274 return NULL; |
270 } |
275 } |
271 } |
276 } |
272 ucx_list_free(list); |
277 ucx_list_free(list); |
273 |
278 |
|
279 log_ereport(LOG_DEBUG, "apply config: VirtualServer"); |
274 list = serverconfig_get_node_list(serverconf->root, CONFIG_NODE_OBJECT, SC("VirtualServer")); |
280 list = serverconfig_get_node_list(serverconf->root, CONFIG_NODE_OBJECT, SC("VirtualServer")); |
275 UCX_FOREACH(elm, list) { |
281 UCX_FOREACH(elm, list) { |
276 ConfigNode *scfgobj = elm->data; |
282 ConfigNode *scfgobj = elm->data; |
277 if(cfg_handle_vs(serverconfig, scfgobj)) { |
283 if(cfg_handle_vs(serverconfig, scfgobj)) { |
278 return NULL; |
284 return NULL; |
279 } |
285 } |
280 } |
286 } |
281 ucx_list_free(list); |
287 ucx_list_free(list); |
282 |
288 |
|
289 log_ereport(LOG_DEBUG, "apply config: ResourcePool"); |
283 list = serverconfig_get_node_list(serverconf->root, CONFIG_NODE_OBJECT, SC("ResourcePool")); |
290 list = serverconfig_get_node_list(serverconf->root, CONFIG_NODE_OBJECT, SC("ResourcePool")); |
284 UCX_FOREACH(elm, list) { |
291 UCX_FOREACH(elm, list) { |
285 ConfigNode *scfgobj = elm->data; |
292 ConfigNode *scfgobj = elm->data; |
286 if(cfg_handle_resourcepool(serverconfig, scfgobj)) { |
293 if(cfg_handle_resourcepool(serverconfig, scfgobj)) { |
287 return NULL; |
294 return NULL; |
288 } |
295 } |
289 } |
296 } |
290 |
297 |
|
298 log_ereport(LOG_DEBUG, "apply config: Dav"); |
291 list = serverconfig_get_node_list(serverconf->root, CONFIG_NODE_OBJECT, SC("Dav")); |
299 list = serverconfig_get_node_list(serverconf->root, CONFIG_NODE_OBJECT, SC("Dav")); |
292 UCX_FOREACH(elm, list) { |
300 UCX_FOREACH(elm, list) { |
293 ConfigNode *scfgobj = elm->data; |
301 ConfigNode *scfgobj = elm->data; |
294 if(cfg_handle_dav(serverconfig, scfgobj)) { |
302 if(cfg_handle_dav(serverconfig, scfgobj)) { |
295 return NULL; |
303 return NULL; |
367 |
375 |
368 int cfg_handle_logfile(ServerConfiguration *cfg, ConfigNode *obj) { |
376 int cfg_handle_logfile(ServerConfiguration *cfg, ConfigNode *obj) { |
369 scstr_t file = serverconfig_directive_value(obj, SC("File")); |
377 scstr_t file = serverconfig_directive_value(obj, SC("File")); |
370 scstr_t lvl = serverconfig_directive_value(obj, SC("Level")); |
378 scstr_t lvl = serverconfig_directive_value(obj, SC("Level")); |
371 |
379 |
372 if(file.ptr == NULL || lvl.ptr == NULL) { |
380 int err = 0; |
373 /* missing log file parameters */ |
381 if(file.ptr == NULL) { |
|
382 err = 1; |
|
383 log_ereport(LOG_MISCONFIG, "LogFile: parameter missing: File"); |
|
384 } |
|
385 if(lvl.ptr == NULL) { |
|
386 err = 1; |
|
387 log_ereport(LOG_MISCONFIG, "LogFile: parameter missing: Level"); |
|
388 } |
|
389 if(err) { |
374 return -1; |
390 return -1; |
375 } |
391 } |
376 |
392 |
377 LogConfig logcfg; |
393 LogConfig logcfg; |
378 logcfg.file = file.ptr; |
394 logcfg.file = file.ptr; |