X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsettings.c;h=1f9246cbef7d40da11486d92e6f5a13908da6943;hb=ca42e8d5e3eb51675d75a58d622b9ca4231fd526;hp=7e25f20c0acaf2f8bbe816d1cc8d2ff63e42a2ae;hpb=ba5951a80fdd0da1d28c318852b69a1178cd6bfa;p=pazpar2-moved-to-github.git diff --git a/src/settings.c b/src/settings.c index 7e25f20..1f9246c 100644 --- a/src/settings.c +++ b/src/settings.c @@ -1,5 +1,5 @@ /* This file is part of Pazpar2. - Copyright (C) 2006-2010 Index Data + Copyright (C) 2006-2012 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 #include #include -#include "direntz.h" +#include #include #include @@ -41,7 +41,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #include -#include "pazpar2.h" +#include "session.h" #include "database.h" #include "settings.h" @@ -59,7 +59,6 @@ static char *hard_settings[] = { "pz:id", "pz:name", "pz:queryencoding", - "pz:ip", "pz:zproxy", "pz:apdulog", "pz:sru", @@ -68,6 +67,17 @@ static char *hard_settings[] = { "pz:sort", "pz:recordfilter", "pz:pqf_strftime", + "pz:negotiation_charset", + "pz:max_connections", + "pz:reuse_connections", + "pz:termlist_term_factor", + "pz:preferred", + "pz:extra_args", + "pz:query_syntax", + "pz:facetmap:", + "pz:limitmap:", + "pz:url", + "pz:sortmap:", 0 }; @@ -325,7 +335,7 @@ void expand_settings_array(struct setting ***set_ar, int *num, int offset, // This is called from grep_databases -- adds/overrides setting for a target // This is also where the rules for precedence of settings are implemented -static void update_database(void *context, struct database *db) +static void update_database_fun(void *context, struct database *db) { struct setting *set = ((struct update_database_context *) context)->set; @@ -335,7 +345,7 @@ static void update_database(void *context, struct database *db) int offset; // Is this the right database? - if (!match_zurl(db->url, set->target)) + if (!match_zurl(db->id, set->target)) return; offset = settings_create_offset(service, set->name); @@ -393,7 +403,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, update_database); + predef_grep_databases(&context, service, update_database_fun); } // This simply copies the 'hard' (application-specific) settings @@ -427,22 +437,10 @@ static void initialize_soft_settings(struct conf_service *service) static void prepare_target_dictionary(void *client_data, struct setting *set) { struct conf_service *service = (struct conf_service *) client_data; - struct setting_dictionary *dictionary = service->dictionary; - - int i; - char *p; // If target address is not wildcard, add the database if (*set->target && !zurl_wildcard(set->target)) - find_database(set->target, service); - - // Determine if we already have a dictionary entry - if (!strncmp(set->name, "pz:", 3) && (p = strchr(set->name + 3, ':'))) - *(p + 1) = '\0'; - for (i = 0; i < dictionary->num; i++) - if (!strcmp(dictionary->dict[i], set->name)) - return; - yaz_log(YLOG_WARN, "Setting '%s' not configured as metadata", set->name); + create_database_for_service(set->target, service); } void init_settings(struct conf_service *service)