pz:cclmap:* settings were not recognized by settings/init command
[pazpar2-moved-to-github.git] / src / settings.c
index 6212162..e0ef312 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: settings.c,v 1.16 2007-04-13 01:48:22 quinn Exp $
+/* $Id: settings.c,v 1.21 2007-05-16 17:16:21 quinn Exp $
    Copyright (c) 2006-2007, Index Data.
 
 This file is part of Pazpar2.
@@ -50,7 +50,6 @@ static char *hard_settings[] = {
     "pz:elements",
     "pz:requestsyntax",
     "pz:cclmap:",
-    "pz:encoding",
     "pz:xslt",
     "pz:nativesyntax",
     "pz:authentication",
@@ -59,6 +58,7 @@ static char *hard_settings[] = {
     "pz:id",
     "pz:name",
     "pz:queryencoding",
+    "pz:ip",
     0
 };
 
@@ -91,7 +91,7 @@ int settings_offset(const char *name)
 
 // Ignores everything after second colon, if present
 // A bit of a hack to support the pz:cclmap: scheme (and more to come?)
-static int settings_offset_cprefix(const char *name)
+int settings_offset_cprefix(const char *name)
 {
     const char *p;
     int maxlen = 100;
@@ -263,11 +263,12 @@ static void prepare_dictionary(struct setting *set)
         if (!strcmp(dictionary->dict[i], set->name))
             return;
 
-    if (!strncmp(set->name, "pz:", 3)) // Probably a typo in config fle
-    {
-        yaz_log(YLOG_FATAL, "Unknown pz: setting '%s'", set->name);
-        exit(1);
-    }
+    if (!strncmp(set->name, "pz:", 3)) // Probably a typo in config file
+        {
+            yaz_log(YLOG_FATAL, "Unknown pz: setting '%s'", set->name);
+            exit(1);
+        }
+
     // Create a new dictionary entry
     // Grow dictionary if necessary
     if (!dictionary->size)
@@ -366,6 +367,12 @@ static void initialize_hard_settings(struct setting_dictionary *dict)
 // for the contents of every directory before the databases are updated.
 void settings_read(const char *path)
 {
+    read_settings(path, prepare_dictionary);
+    read_settings(path, update_databases);
+}
+
+void init_settings(void)
+{
     struct setting_dictionary *new;
     if (!nmem)
         nmem = nmem_create();
@@ -375,8 +382,6 @@ void settings_read(const char *path)
     memset(new, 0, sizeof(*new));
     initialize_hard_settings(new);
     dictionary = new;
-    read_settings(path, prepare_dictionary);
-    read_settings(path, update_databases);
 }
 
 /*