Avoid warning about non-handled switch stmt case
[pazpar2-moved-to-github.git] / src / pazpar2_config.c
index dbfd850..a122f8d 100644 (file)
@@ -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)
@@ -1310,7 +1318,6 @@ struct conf_config *config_create(const char *fname)
     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,6 +1337,7 @@ struct conf_config *config_create(const char *fname)
     r = yaz_xml_include_simple(n, wrbuf_cstr(config->confdir));
     if (r == 0) /* OK */
     {
+#ifndef WIN32
         yaz_log(YLOG_LOG, "Configuration %s after include processing",
                 fname);
 #if LIBXML_VERSION >= 20600
@@ -1337,6 +1345,7 @@ struct conf_config *config_create(const char *fname)
 #else
         xmlDocDump(yaz_log_file(), doc);
 #endif
+#endif
         r = parse_config(config, n);
     }
     xmlFreeDoc(doc);
@@ -1373,7 +1382,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);