--- a/src/server/daemon/config.c Tue Jan 01 19:22:56 2013 +0100 +++ b/src/server/daemon/config.c Wed Jan 02 16:03:50 2013 +0100 @@ -180,6 +180,12 @@ return NULL; } + list = ucx_map_sstr_get(serverconf->objects, sstrn("AccessLog", 9)); + UCX_FOREACH(UcxList*, list, elm) { + ServerConfigObject *scfgobj = elm->data; + cfg_handle_accesslog(serverconfig, scfgobj); + } + list = ucx_map_sstr_get(serverconf->objects, sstrn("AuthDB", 6)); UCX_FOREACH(UcxList*, list, elm) { ServerConfigObject *scfgobj = elm->data; @@ -376,6 +382,25 @@ return ret; } +int cfg_handle_accesslog(ServerConfiguration *cfg, ServerConfigObject *obj) { + // TODO: use a name to identify the log file + + sstr_t file = cfg_directivelist_get_str(obj->directives, sstr("File")); + if(file.ptr == NULL) { + return 0; + } + sstr_t format; + format.ptr = NULL; + + AccessLog *log = get_access_log(file, format); + if(log) { + // access logs are only stored in the server config to free them + cfg->logfiles = ucx_list_append(cfg->logfiles, log); + } + + return 0; +} + int cfg_handle_authdb(ServerConfiguration *cfg, ServerConfigObject *obj) { sstr_t name = cfg_directivelist_get_str(obj->directives, sstr("Name")); sstr_t type = cfg_directivelist_get_str(obj->directives, sstr("Type")); @@ -493,6 +518,10 @@ } vs->objectfile = sstrdup(file); // TODO: pool vs->objects = (HTTPObjectConfig*)f->data; // TODO: ref + + // set the access log for the virtual server + // TODO: don't use always the default + vs->log = get_default_access_log(); ucx_map_sstr_put(cfg->host_vs, vs->host, vs);