Log statement about facets.
[pazpar2-moved-to-github.git] / src / settings.c
index 5b23e7a..7ce16f0 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of Pazpar2.
-   Copyright (C) 2006-2009 Index Data
+   Copyright (C) 2006-2010 Index Data
 
 Pazpar2 is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
@@ -31,7 +31,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #include <assert.h>
 #include <stdio.h>
 #include <sys/types.h>
-#include "direntz.h"
+#include <yaz/dirent.h>
 #include <stdlib.h>
 #include <sys/stat.h>
 
@@ -41,7 +41,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #include <yaz/nmem.h>
 #include <yaz/log.h>
 
-#include "pazpar2.h"
+#include "session.h"
 #include "database.h"
 #include "settings.h"
 
@@ -67,6 +67,12 @@ static char *hard_settings[] = {
     "pz:pqf_prefix",
     "pz:sort",
     "pz:recordfilter",
+    "pz:pqf_strftime",
+    "pz:negotiation_charset",
+    "pz:max_connections",
+    "pz:reuse_connections",     // PZ_REUSE_CONNECTION
+    "pz:termlist_term_sort",    // PZ_TERMLIST_TERM_SORT
+    "pz:termlist_term_count",   // PZ_TERMLIST_TERM_COUNT
     0
 };
 
@@ -362,7 +368,7 @@ static void update_database(void *context, struct database *db)
                 // target-specific value trumps wildcard. Delete.
                 *sp = (*sp)->next; // unlink.....
             }
-            else if (!zurl_wildcard((*sp)->target))
+            else if (zurl_wildcard((*sp)->target) < zurl_wildcard(set->target))
                 // Db already contains higher-priority setting. Abort search
                 break;
             else
@@ -392,7 +398,7 @@ static void update_databases(void *client_data, struct setting *set)
     struct update_database_context context;
     context.set = set;
     context.service = service;
-    predef_grep_databases(&context, service, 0, update_database);
+    predef_grep_databases(&context, service, update_database);
 }
 
 // This simply copies the 'hard' (application-specific) settings
@@ -433,7 +439,7 @@ static void prepare_target_dictionary(void *client_data, struct setting *set)
 
     // If target address is not wildcard, add the database
     if (*set->target && !zurl_wildcard(set->target))
-        find_database(set->target, 0, service);
+        find_database(set->target, service);
 
     // Determine if we already have a dictionary entry
     if (!strncmp(set->name, "pz:", 3) && (p = strchr(set->name + 3, ':')))