X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fseshigh.c;h=b0349e7391b69f751a14b4f2e45f4609064b64ea;hp=15535b1bf7c032dfb90198c5a5c5d6aa791ffbfc;hb=6e3d70edfadd110351b71466c51632e288e31773;hpb=5d493e5a4ce6300660debe3e2ad82c21592039ca diff --git a/src/seshigh.c b/src/seshigh.c index 15535b1..b0349e7 100644 --- a/src/seshigh.c +++ b/src/seshigh.c @@ -847,9 +847,10 @@ static int ccl2pqf(ODR odr, const Odr_oct *ccl, CCL_bibset bibset, static void srw_bend_search(association *assoc, request *req, Z_SRW_PDU *sr, - Z_SRW_searchRetrieveResponse *srw_res, + Z_SRW_PDU *res, int *http_code) { + Z_SRW_searchRetrieveResponse *srw_res = res->u.response; int srw_error = 0; Z_External *ext; Z_SRW_searchRetrieveRequest *srw_req = sr->u.request; @@ -872,6 +873,8 @@ static void srw_bend_search(association *assoc, request *req, rr.partial_resultset = 0; rr.query = (Z_Query *) odr_malloc(assoc->decode, sizeof(*rr.query)); rr.query->u.type_1 = 0; + rr.extra_args = sr->extra_args; + rr.extra_response_data = 0; if (srw_req->query_type == Z_SRW_query_type_cql) { @@ -1093,6 +1096,11 @@ static void srw_bend_search(association *assoc, request *req, srw_res->records = 0; } } + if (rr.extra_response_data) + { + res->extraResponseData_buf = rr.extra_response_data; + res->extraResponseData_len = strlen(rr.extra_response_data); + } if (rr.estimated_hit_count || rr.partial_resultset) { yaz_add_srw_diagnostic( @@ -1783,8 +1791,7 @@ static void process_http_request(association *assoc, request *req) } else { - srw_bend_search(assoc, req, sr, res->u.response, - &http_code); + srw_bend_search(assoc, req, sr, res, &http_code); } if (http_code == 200) soap_package->u.generic->p = res; @@ -2628,6 +2635,8 @@ static Z_APDU *process_searchRequest(association *assoc, request *reqb, bsrr->srw_setnameIdleTime = 0; bsrr->estimated_hit_count = 0; bsrr->partial_resultset = 0; + bsrr->extra_args = 0; + bsrr->extra_response_data = 0; yaz_log (log_requestdetail, "ResultSet '%s'", req->resultSetName); if (req->databaseNames)