From: Adam Dickmeiss Date: Fri, 4 Sep 2009 13:32:38 +0000 (+0200) Subject: Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/pazpar2 X-Git-Tag: v1.2.0~31 X-Git-Url: http://lists.indexdata.com/cgi-bin?a=commitdiff_plain;h=6d4423d0c650bcaedefb3ed31bce492d0567412a;hp=-c;p=pazpar2-moved-to-github.git Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/pazpar2 --- 6d4423d0c650bcaedefb3ed31bce492d0567412a diff --combined src/logic.c index 354fd7f,eab9539..fabf8e6 --- a/src/logic.c +++ b/src/logic.c @@@ -196,7 -196,7 +196,7 @@@ xmlDoc *record_to_xml(struct session_da static void insert_settings_parameters(struct session_database *sdb, struct session *se, char **parms) { - struct conf_service *service = global_parameters.server->service; + struct conf_service *service = se->service; int i; int nparms = 0; int offset = 0; @@@ -207,7 -207,7 +207,7 @@@ int setting; if (md->setting == Metadata_setting_parameter && - (setting = settings_offset(md->name)) > 0) + (setting = settings_offset(service, md->name)) > 0) { const char *val = session_setting_oneval(sdb, setting); if (val && nparms < MAX_XSLT_ARGS) @@@ -229,9 -229,9 +229,9 @@@ } // Add static values from session database settings if applicable -static void insert_settings_values(struct session_database *sdb, xmlDoc *doc) +static void insert_settings_values(struct session_database *sdb, xmlDoc *doc, + struct conf_service *service) { - struct conf_service *service = global_parameters.server->service; int i; for (i = 0; i < service->num_metadata; i++) @@@ -240,7 -240,7 +240,7 @@@ int offset; if (md->setting == Metadata_setting_postproc && - (offset = settings_offset(md->name)) > 0) + (offset = settings_offset(service, md->name)) > 0) { const char *val = session_setting_oneval(sdb, offset); if (val) @@@ -287,7 -287,7 +287,7 @@@ xmlDoc *normalize_record(struct session rdoc = new; } - insert_settings_values(sdb, rdoc); + insert_settings_values(sdb, rdoc, se->service); if (global_parameters.dump_records) { @@@ -532,7 -532,7 +532,7 @@@ enum pazpar2_error_code search(struct s live_channels = select_targets(se, criteria); if (live_channels) { - int maxrecs = live_channels * global_parameters.toget; + int maxrecs = live_channels * global_parameters.toget; // This is buggy!!! se->reclist = reclist_create(se->nmem, maxrecs); se->expected_maxrecs = maxrecs; } @@@ -570,9 -570,8 +570,9 @@@ static void session_init_databases_fun(void *context, struct database *db) { struct session *se = (struct session *) context; + struct conf_service *service = se->service; struct session_database *new = nmem_malloc(se->session_nmem, sizeof(*new)); - int num = settings_num(); + int num = settings_num(service); int i; new->database = db; @@@ -605,7 -604,7 +605,7 @@@ static void session_database_destroy(st void session_init_databases(struct session *se) { se->databases = 0; - predef_grep_databases(se, 0, session_init_databases_fun); + predef_grep_databases(se, se->service, 0, session_init_databases_fun); } // Probably session_init_databases_fun should be refactored instead of @@@ -613,7 -612,7 +613,7 @@@ static struct session_database *load_session_database(struct session *se, char *id) { - struct database *db = find_database(id, 0); + struct database *db = find_database(id, 0, se->service); session_init_databases_fun((void*) se, db); // New sdb is head of se->databases list @@@ -637,9 -636,8 +637,9 @@@ void session_apply_setting(struct sessi char *value) { struct session_database *sdb = find_session_database(se, dbname); + struct conf_service *service = se->service; struct setting *new = nmem_malloc(se->session_nmem, sizeof(*new)); - int offset = settings_offset_cprefix(setting); + int offset = settings_offset_cprefix(service, setting); if (offset < 0) { @@@ -688,14 -686,13 +688,14 @@@ void destroy_session(struct session *s wrbuf_destroy(s->wrbuf); } -struct session *new_session(NMEM nmem) +struct session *new_session(NMEM nmem, struct conf_service *service) { int i; struct session *session = nmem_malloc(nmem, sizeof(*session)); yaz_log(YLOG_DEBUG, "New Pazpar2 session"); - + + session->service = service; session->relevance = 0; session->total_hits = 0; session->total_records = 0; @@@ -1076,7 -1073,7 +1076,7 @@@ struct record *ingest_record(struct cli const char *mergekey_norm; xmlChar *type = 0; xmlChar *value = 0; - struct conf_service *service = global_parameters.server->service; + struct conf_service *service = se->service; if (!xdoc) return 0; @@@ -1095,7 -1092,7 +1095,7 @@@ record_no); cluster = reclist_insert(se->reclist, - global_parameters.server->service, + service, record, (char *) mergekey_norm, &se->total_merged); if (global_parameters.dump_records)