src/server/daemon/config.c

changeset 45
a24aa388f02f
parent 44
3da1f7b6847f
child 46
636e05eb48f6
equal deleted inserted replaced
44:3da1f7b6847f 45:a24aa388f02f
178 if(check_event_handler_cfg() != 0) { 178 if(check_event_handler_cfg() != 0) {
179 /* critical error */ 179 /* critical error */
180 return NULL; 180 return NULL;
181 } 181 }
182 182
183 list = ucx_map_sstr_get(serverconf->objects, sstrn("AccessLog", 9));
184 UCX_FOREACH(UcxList*, list, elm) {
185 ServerConfigObject *scfgobj = elm->data;
186 cfg_handle_accesslog(serverconfig, scfgobj);
187 }
188
183 list = ucx_map_sstr_get(serverconf->objects, sstrn("AuthDB", 6)); 189 list = ucx_map_sstr_get(serverconf->objects, sstrn("AuthDB", 6));
184 UCX_FOREACH(UcxList*, list, elm) { 190 UCX_FOREACH(UcxList*, list, elm) {
185 ServerConfigObject *scfgobj = elm->data; 191 ServerConfigObject *scfgobj = elm->data;
186 cfg_handle_authdb(serverconfig, scfgobj); 192 cfg_handle_authdb(serverconfig, scfgobj);
187 } 193 }
372 evcfg.isdefault = util_getboolean(isdefault.ptr, 0); 378 evcfg.isdefault = util_getboolean(isdefault.ptr, 0);
373 379
374 int ret = create_event_handler(&evcfg); 380 int ret = create_event_handler(&evcfg);
375 381
376 return ret; 382 return ret;
383 }
384
385 int cfg_handle_accesslog(ServerConfiguration *cfg, ServerConfigObject *obj) {
386 // TODO: use a name to identify the log file
387
388 sstr_t file = cfg_directivelist_get_str(obj->directives, sstr("File"));
389 if(file.ptr == NULL) {
390 return 0;
391 }
392 sstr_t format;
393 format.ptr = NULL;
394
395 AccessLog *log = get_access_log(file, format);
396 if(log) {
397 // access logs are only stored in the server config to free them
398 cfg->logfiles = ucx_list_append(cfg->logfiles, log);
399 }
400
401 return 0;
377 } 402 }
378 403
379 int cfg_handle_authdb(ServerConfiguration *cfg, ServerConfigObject *obj) { 404 int cfg_handle_authdb(ServerConfiguration *cfg, ServerConfigObject *obj) {
380 sstr_t name = cfg_directivelist_get_str(obj->directives, sstr("Name")); 405 sstr_t name = cfg_directivelist_get_str(obj->directives, sstr("Name"));
381 sstr_t type = cfg_directivelist_get_str(obj->directives, sstr("Type")); 406 sstr_t type = cfg_directivelist_get_str(obj->directives, sstr("Type"));
491 f->reload(f, cfg); 516 f->reload(f, cfg);
492 cfgmgr_attach_file(f); 517 cfgmgr_attach_file(f);
493 } 518 }
494 vs->objectfile = sstrdup(file); // TODO: pool 519 vs->objectfile = sstrdup(file); // TODO: pool
495 vs->objects = (HTTPObjectConfig*)f->data; // TODO: ref 520 vs->objects = (HTTPObjectConfig*)f->data; // TODO: ref
521
522 // set the access log for the virtual server
523 // TODO: don't use always the default
524 vs->log = get_default_access_log();
496 525
497 ucx_map_sstr_put(cfg->host_vs, vs->host, vs); 526 ucx_map_sstr_put(cfg->host_vs, vs->host, vs);
498 527
499 return 0; 528 return 0;
500 } 529 }

mercurial