X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsettings.c;h=1f9246cbef7d40da11486d92e6f5a13908da6943;hb=505487e674e220ab84e8aa11982ca065e91259c7;hp=2cfd2a3b976ba1bb57d2d9085b225cd33b6a8a43;hpb=de07406b2db1fb0643bf9ba22852384a51481efd;p=pazpar2-moved-to-github.git diff --git a/src/settings.c b/src/settings.c index 2cfd2a3..1f9246c 100644 --- a/src/settings.c +++ b/src/settings.c @@ -1,5 +1,5 @@ /* This file is part of Pazpar2. - Copyright (C) 2006-2011 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 @@ -69,13 +69,15 @@ static char *hard_settings[] = { "pz:pqf_strftime", "pz:negotiation_charset", "pz:max_connections", - "pz:reuse_connections", /* PZ_REUSE_CONNECTION */ - "pz:termlist_term_factor", /* PZ_TERMLIST_TERM_FACTOR*/ - "pz:preferred", /* PZ_PREFERRED */ - "pz:extra_args", /* PZ_EXTRA_ARGS */ - "pz:query_syntax", /* PZ_QUERY_SYNTAX */ - "pz:facetmap:", /* PZ_FACETMAP */ - "pz:limitmap:", /* PZ_LIMITMAP */ + "pz:reuse_connections", + "pz:termlist_term_factor", + "pz:preferred", + "pz:extra_args", + "pz:query_syntax", + "pz:facetmap:", + "pz:limitmap:", + "pz:url", + "pz:sortmap:", 0 }; @@ -333,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; @@ -343,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); @@ -401,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 @@ -435,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)