}
-static struct conf_service *service_init(struct conf_config *config,
+static struct conf_service *service_init(struct conf_server *server,
int num_metadata, int num_sortkeys,
const char *service_id)
{
service->settings = 0;
service->databases = 0;
service->targetprofiles = 0;
- service->config = config;
+ service->server = server;
service->session_timeout = 60; /* default session timeout */
service->z3950_session_timeout = 180;
service->z3950_connect_timeout = 15;
return 0;
}
-static struct conf_service *service_create(struct conf_config *config,
+static struct conf_service *service_create(struct conf_server *server,
xmlNode *node,
const char *service_id)
{
xmlFree(sortkey);
}
- service = service_init(config, num_metadata, num_sortkeys, service_id);
+ service = service_init(server, num_metadata, num_sortkeys, service_id);
for (n = node->children; n; n = n->next)
{
if (src)
{
WRBUF w = wrbuf_alloc();
- conf_dir_path(config, w, (const char *) src);
+ conf_dir_path(server->config, w, (const char *) src);
settings_read_file(service, wrbuf_cstr(w), pass);
wrbuf_destroy(w);
xmlFree(src);
server->myurl = 0;
server->proxy_addr = 0;
server->service = 0;
+ server->config = config;
server->next = 0;
server->relevance_pct = 0;
server->sort_pct = 0;
}
else
{
- struct conf_service *s = service_create(config, n,
+ struct conf_service *s = service_create(server, n,
service_id);
xmlFree(service_id);
if (!s)
return server;
}
-xsltStylesheet *conf_load_stylesheet(struct conf_config *config,
+xsltStylesheet *conf_load_stylesheet(struct conf_service *service,
const char *fname)
{
+ struct conf_config *config = service->server->config;
WRBUF w = wrbuf_alloc();
xsltStylesheet *s;