X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Ffilter_sru_to_z3950.cpp;h=a4f7ebedfd2eb8daeb0e059a1424c1c56f229751;hb=6ca602c58dd24a3e0088e5ea91c2d4e03ab74918;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..a4f7ebe 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;