Ensure Pazpar2 stops if ICU is used while insupported.
authorAdam Dickmeiss <adam@indexdata.dk>
Thu, 25 Dec 2008 13:23:58 +0000 (14:23 +0100)
committerAdam Dickmeiss <adam@indexdata.dk>
Thu, 25 Dec 2008 13:23:58 +0000 (14:23 +0100)
src/charsets.c
src/pazpar2_config.c

index b2470bd..eedf1db 100644 (file)
@@ -71,6 +71,8 @@ pp2_charset_t pp2_charset_create_xml(xmlNode *xml_node)
 #ifdef HAVE_ICU
     UErrorCode status = U_ZERO_ERROR;
     struct icu_chain *chain = 0;
+    if (xml_node)
+        xml_node = xml_node->children;
     while (xml_node && xml_node->type != XML_ELEMENT_NODE)
         xml_node = xml_node->next;
     chain = icu_chain_xml_config(xml_node, &status);
index f6baa27..06cfa66 100644 (file)
@@ -470,15 +470,21 @@ static struct conf_server *parse_server(xmlNode *node)
         }
         else if (!strcmp((const char *) n->name, "relevance"))
         {
-            server->relevance_pct = pp2_charset_create_xml(n->children);
+            server->relevance_pct = pp2_charset_create_xml(n);
+            if (!server->relevance_pct)
+                return 0;
         }
         else if (!strcmp((const char *) n->name, "sort"))
         {
-            server->sort_pct = pp2_charset_create_xml(n->children);
+            server->sort_pct = pp2_charset_create_xml(n);
+            if (!server->sort_pct)
+                return 0;
         }
         else if (!strcmp((const char *) n->name, "mergekey"))
         {
-            server->mergekey_pct = pp2_charset_create_xml(n->children);
+            server->mergekey_pct = pp2_charset_create_xml(n);
+            if (!server->mergekey_pct)
+                return 0;
         }
         else if (!strcmp((const char *) n->name, "service"))
         {