X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fpazpar2_config.c;h=2f60eb4349c90f8df1b2ed9d7ce2145475e773b3;hb=c61904671e969a32a7f9d38a523f7abaa2b371fd;hp=785293e7a754b98b7260912b9c93d3318e7acfd2;hpb=73660474fdfdd99e74463a0c47a6e3b89b0b2f96;p=pazpar2-moved-to-github.git diff --git a/src/pazpar2_config.c b/src/pazpar2_config.c index 785293e..2f60eb4 100644 --- a/src/pazpar2_config.c +++ b/src/pazpar2_config.c @@ -56,7 +56,6 @@ struct conf_config WRBUF confdir; char *path; iochan_man_t iochan_man; - database_hosts_t database_hosts; }; struct service_xslt @@ -170,7 +169,8 @@ static struct conf_metadata* conf_service_add_metadata( enum conf_metadata_mergekey mt, const char *facetrule, const char *limitmap, - const char *limitcluster + const char *limitcluster, + const char *icurule ) { struct conf_metadata * md = 0; @@ -202,6 +202,7 @@ static struct conf_metadata* conf_service_add_metadata( md->facetrule = nmem_strdup_null(nmem, facetrule); md->limitmap = nmem_strdup_null(nmem, limitmap); md->limitcluster = nmem_strdup_null(nmem, limitcluster); + md->icurule = nmem_strdup_null(nmem, icurule); return md; } @@ -315,6 +316,7 @@ static int parse_metadata(struct conf_service *service, xmlNode *n, xmlChar *xml_limitmap = 0; xmlChar *xml_limitcluster = 0; xmlChar *xml_icu_chain = 0; + xmlChar *xml_icurule = 0; struct _xmlAttr *attr; @@ -358,6 +360,9 @@ static int parse_metadata(struct conf_service *service, xmlNode *n, else if (!xmlStrcmp(attr->name, BAD_CAST "limitcluster") && attr->children && attr->children->type == XML_TEXT_NODE) xml_limitcluster = attr->children->content; + else if (!xmlStrcmp(attr->name, BAD_CAST "icurule") && + attr->children && attr->children->type == XML_TEXT_NODE) + xml_icurule = attr->children->content; else { yaz_log(YLOG_FATAL, "Unknown metadata attribute '%s'", attr->name); @@ -515,7 +520,9 @@ static int parse_metadata(struct conf_service *service, xmlNode *n, mergekey_type, (const char *) xml_icu_chain, (const char *) xml_limitmap, - (const char *) xml_limitcluster); + (const char *) xml_limitcluster, + (const char *) xml_icurule + ); (*md_node)++; return 0; } @@ -872,7 +879,6 @@ static struct conf_server *server_create(struct conf_config *config, server->charsets = 0; server->http_server = 0; server->iochan_man = 0; - server->database_hosts = config->database_hosts; server->settings_fname = 0; if (server_id) @@ -1075,6 +1081,9 @@ static void info_service_metadata(struct conf_service *service, WRBUF w) case Metadata_type_position: wrbuf_puts(w, "position"); break; + case Metadata_type_retrieval: + wrbuf_puts(w, "retrieval"); + break; default: wrbuf_puts(w, "yes"); break; @@ -1095,8 +1104,7 @@ static void info_service_metadata(struct conf_service *service, WRBUF w) case Metadata_type_float: wrbuf_puts(w, " type=\"float\""); break; - case Metadata_type_relevance: - case Metadata_type_position: + default: break; } switch (md->merge) @@ -1137,15 +1145,14 @@ static void info_service_metadata(struct conf_service *service, WRBUF w) static void info_service_databases(struct conf_service *service, WRBUF w) { - struct database *db; - struct setting *s; - int i; if (service->databases) { + struct database *db; wrbuf_puts(w, " \n"); - for(db = service->databases; db; db = db->next) + for (db = service->databases; db; db = db->next) { + int i; wrbuf_puts(w, " id) { @@ -1156,18 +1163,16 @@ static void info_service_databases(struct conf_service *service, WRBUF w) wrbuf_puts(w, ">\n"); for (i = 0; i < db->num_settings; i++) { - s = db->settings[i]; - while (s != NULL) + struct setting *s = db->settings[i]; + for (; s; s = s->next) { - wrbuf_puts(w, " name); wrbuf_puts(w, "\""); wrbuf_puts(w, " value=\""); wrbuf_xmlputs(w, s->value); wrbuf_puts(w, "\""); wrbuf_puts(w, " />\n"); - s = s->next; } } wrbuf_puts(w, " \n"); @@ -1180,7 +1185,6 @@ void info_services(struct conf_server *server, WRBUF w) { struct conf_service *s = server->service; int i; - struct setting *S; wrbuf_puts(w, " \n"); for (; s; s = s->next) @@ -1195,34 +1199,30 @@ void info_services(struct conf_server *server, WRBUF w) wrbuf_puts(w, ">\n"); if (s->settings) { - for (i=0; isettings->num_settings; i++) + for (i = 0; i < s->settings->num_settings; i++) { - S = s->settings->settings[i]; - while (S != NULL) { - wrbuf_puts(w, " settings->settings[i]; + for (; S; S = S->next) + { + wrbuf_puts(w, " name); wrbuf_puts(w, "\""); wrbuf_puts(w, " value=\""); wrbuf_xmlputs(w, S->value); wrbuf_puts(w, "\""); - if (S->target) { + if (S->target) + { wrbuf_puts(w, " target=\""); wrbuf_xmlputs(w, S->target); wrbuf_puts(w, "\""); } - wrbuf_puts(w, " />\n"); - - S = S->next; } } } info_service_metadata(s, w); info_service_databases(s, w); - wrbuf_puts(w, " "); - - wrbuf_puts(w, "\n"); + wrbuf_puts(w, " \n"); } wrbuf_puts(w, " \n"); } @@ -1276,7 +1276,7 @@ static int parse_config(struct conf_config *config, xmlNode *root) return 0; } -struct conf_config *config_create(const char *fname, int verbose) +struct conf_config *config_create(const char *fname) { xmlDoc *doc = xmlReadFile(fname, NULL, @@ -1310,7 +1310,6 @@ struct conf_config *config_create(const char *fname, int verbose) config->path = nmem_strdup(nmem, "."); config->no_threads = 0; config->iochan_man = 0; - config->database_hosts = database_hosts_create(); config->confdir = wrbuf_alloc(); if ((p = strrchr(fname, @@ -1330,16 +1329,15 @@ struct conf_config *config_create(const char *fname, int verbose) r = yaz_xml_include_simple(n, wrbuf_cstr(config->confdir)); if (r == 0) /* OK */ { - if (verbose) - { - yaz_log(YLOG_LOG, "Configuration %s after include processing", - fname); +#ifndef WIN32 + yaz_log(YLOG_LOG, "Configuration %s after include processing", + fname); #if LIBXML_VERSION >= 20600 - xmlDocFormatDump(yaz_log_file(), doc, 0); + xmlDocFormatDump(yaz_log_file(), doc, 0); #else - xmlDocDump(yaz_log_file(), doc); + xmlDocDump(yaz_log_file(), doc); +#endif #endif - } r = parse_config(config, n); } xmlFreeDoc(doc); @@ -1376,7 +1374,6 @@ void config_destroy(struct conf_config *config) struct conf_server *s_next = server->next; server_destroy(server); server = s_next; - database_hosts_destroy(&config->database_hosts); } wrbuf_destroy(config->confdir); nmem_destroy(config->nmem);