X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fseshigh.c;h=8c0c3fa210b4a89b31d4d047b9e0904ac1283052;hb=4e3f7be8266559e07dc01ae5d6aba31d30b8bd44;hp=277e56896587056ae1eebcc5994b448b9b3a12bf;hpb=379504a233e3e2cc85bca1e7b6d864f1395aec7c;p=yaz-moved-to-github.git diff --git a/src/seshigh.c b/src/seshigh.c index 277e568..8c0c3fa 100644 --- a/src/seshigh.c +++ b/src/seshigh.c @@ -509,6 +509,7 @@ static void assoc_init_reset(association *assoc) assoc->init->bend_explain = NULL; assoc->init->bend_srw_scan = NULL; assoc->init->bend_srw_update = NULL; + assoc->init->named_result_sets = 0; assoc->init->charneg_request = NULL; assoc->init->charneg_response = NULL; @@ -664,7 +665,6 @@ static int retrieve_fetch(association *assoc, bend_fetch_rr *rr) rr->output_format = match_syntax; if (match_schema) rr->schema = odr_strdup(rr->stream, match_schema); - return 0; #else (*assoc->init->bend_fetch)(assoc->backend, rr); #endif @@ -2198,6 +2198,10 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb) assoc->init->charneg_request = negotiation; } + /* by default named_result_sets is 0 .. Enable it if client asks for it. */ + if (ODR_MASK_GET(req->options, Z_Options_namedResultSets)) + assoc->init->named_result_sets = 1; + assoc->backend = 0; if (cb) { @@ -2264,7 +2268,8 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb) ODR_MASK_SET(resp->options, Z_Options_extendedServices); strcat(options, " extendedServices"); } - if (ODR_MASK_GET(req->options, Z_Options_namedResultSets)) + if (ODR_MASK_GET(req->options, Z_Options_namedResultSets) + && assoc->init->named_result_sets) { ODR_MASK_SET(resp->options, Z_Options_namedResultSets); strcat(options, " namedresults");