#endif
#if YAZ_HAVE_XML2
-static struct gfs_server * gfs_server_new(void)
+static struct gfs_server * gfs_server_new(const char *id)
{
struct gfs_server *n = (struct gfs_server *)
nmem_malloc(gfs_nmem, sizeof(*n));
n->directory = 0;
n->docpath = 0;
n->stylesheet = 0;
+ n->id = nmem_strdup_null(gfs_nmem, id);
n->retrieval = yaz_retrieval_create();
return n;
}
else
yaz_log(YLOG_WARN, "Unknown attribute '%s' for server",
attr->name);
- gfs = *gfsp = gfs_server_new();
+ gfs = *gfsp = gfs_server_new(id);
gfs->server_node_ptr = ptr_server;
if (listenref)
{
}
else if (!strcmp((const char *) ptr->name, "cql2rpn"))
{
- gfs->cql_transform = cql_transform_open_fname(
- nmem_dup_xml_content(gfs_nmem, ptr->children)
- );
+ char *name = nmem_dup_xml_content(gfs_nmem, ptr->children);
+ gfs->cql_transform = cql_transform_open_fname(name);
+ if (!gfs->cql_transform)
+ {
+ yaz_log(YLOG_FATAL|YLOG_ERRNO,
+ "open CQL transform file '%s'", name);
+ exit(1);
+ }
}
else if (!strcmp((const char *) ptr->name, "ccl2rpn"))
{