X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fsettings.c;h=3b7a923464a71e71a7a07ae9ddb5de5fea62bf8f;hb=ab37b48849c1106004bba8aa2b289e08adb87178;hp=5486c7c54d09507cc2d7e736c9c68432c87eb513;hpb=5dc0e29d39f93d609bac1533a78a3cf1e2110347;p=pazpar2-moved-to-github.git diff --git a/src/settings.c b/src/settings.c index 5486c7c..3b7a923 100644 --- a/src/settings.c +++ b/src/settings.c @@ -65,6 +65,7 @@ static char *hard_settings[] = { "pz:sru", "pz:sru_version", "pz:pqf_prefix", + "pz:sort", 0 }; @@ -291,10 +292,6 @@ static void prepare_dictionary(struct conf_service *service, int i; char *p; - // If target address is not wildcard, add the database - if (*set->target && !zurl_wildcard(set->target)) - find_database(set->target, 0, service); - // Determine if we already have a dictionary entry if (!strncmp(set->name, "pz:", 3) && (p = strchr(set->name + 3, ':'))) *(p + 1) = '\0'; @@ -447,21 +444,12 @@ static void prepare_target_dictionary(struct conf_service *service, yaz_log(YLOG_WARN, "Setting '%s' not configured as metadata", set->name); } -// If we ever decide we need to be able to specify multiple settings directories, -// the two calls to read_settings must be split -- so the dictionary is prepared -// for the contents of every directory before the databases are updated. -void settings_read(struct conf_service *service, const char *path) -{ - read_settings(path, service, prepare_target_dictionary); - read_settings(path, service, update_databases); -} - void init_settings(struct conf_service *service) { struct setting_dictionary *new; - + assert(service->nmem); - + new = nmem_malloc(service->nmem, sizeof(*new)); memset(new, 0, sizeof(*new)); service->dictionary = new; @@ -469,6 +457,24 @@ void init_settings(struct conf_service *service) initialize_soft_settings(service); } +void settings_read_file(struct conf_service *service, const char *path, + int pass) +{ + if (pass == 1) + read_settings(path, service, prepare_target_dictionary); + else + read_settings(path, service, update_databases); +} + +void settings_read_node(struct conf_service *service, xmlNode *n, + int pass) +{ + if (pass == 1) + read_settings_node(n, service, prepare_target_dictionary); + else + read_settings_node(n, service, update_databases); +} + /* * Local variables: * c-basic-offset: 4