X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Ffilter_sru_to_z3950.cpp;h=fa375d9d3489915e5524108809d8b0a1eb68e0a8;hb=c346e86f9e0b0414757f89aba11f7b37e3b12ac2;hp=26a6ad2d009cafa99648fbf7b6f59a7f1709436a;hpb=f3e215cc00b02e3d92016f095295af2ba4649e2f;p=metaproxy-moved-to-github.git diff --git a/src/filter_sru_to_z3950.cpp b/src/filter_sru_to_z3950.cpp index 26a6ad2..fa375d9 100644 --- a/src/filter_sru_to_z3950.cpp +++ b/src/filter_sru_to_z3950.cpp @@ -95,6 +95,7 @@ namespace metaproxy_1 { bool z3950_search_request( mp::Package &package, + mp::Package &z3950_package, mp::odr &odr_en, Z_SRW_PDU *sru_pdu_res, Z_SRW_searchRetrieveRequest const *sr_req, @@ -278,6 +279,9 @@ void yf::SRUtoZ3950::Impl::sru(mp::Package &package, Z_GDU *zgdu_req) assert(sru_pdu_req); + Package z3950_package(package.session(), package.origin()); + z3950_package.copy_filter(package); + // filter acts as sink for SRU explain requests if (sru_pdu_req->which == Z_SRW_explain_request) { @@ -303,7 +307,7 @@ void yf::SRUtoZ3950::Impl::sru(mp::Package &package, Z_GDU *zgdu_req) if (ok && z3950_init_request(package, odr_en, zurl, sru_pdu_res, sru_pdu_req)) { - ok = z3950_search_request(package, odr_en, + ok = z3950_search_request(package, z3950_package, odr_en, sru_pdu_res, sr_req, zurl, dbargs); if (ok @@ -593,6 +597,7 @@ bool yf::SRUtoZ3950::Impl::z3950_close_request(mp::Package &package) const } bool yf::SRUtoZ3950::Impl::z3950_search_request(mp::Package &package, + mp::Package &z3950_package, mp::odr &odr_en, Z_SRW_PDU *sru_pdu_res, Z_SRW_searchRetrieveRequest @@ -603,9 +608,6 @@ bool yf::SRUtoZ3950::Impl::z3950_search_request(mp::Package &package, assert(sru_pdu_res->u.response); - Package z3950_package(package.session(), package.origin()); - z3950_package.copy_filter(package); - Z_APDU *apdu = zget_APDU(odr_en, Z_APDU_searchRequest); Z_SearchRequest *z_searchRequest = apdu->u.searchRequest; @@ -638,7 +640,7 @@ bool yf::SRUtoZ3950::Impl::z3950_search_request(mp::Package &package, // yaz_oi_set_facetlist not public in YAZ 4.2.66 if (sr_req->facetList) { - Z_OtherInformation **oi = &z_searchRequest->otherInfo; + Z_OtherInformation **oi = &z_searchRequest->additionalSearchInfo; yaz_oi_set_facetlist(oi, odr_en, sr_req->facetList); } #endif