X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Ffilter_multi.cpp;h=03916ba60099ab7f0ea175d1c86e135e2b594bf4;hb=d6af36a9a92973976dfcfd906529567265c4fe80;hp=a339959e920023138dff6146983cdc24f4f0cdc2;hpb=6e22885ae68f295a0f8a116d688885a8575e8d4f;p=metaproxy-moved-to-github.git diff --git a/src/filter_multi.cpp b/src/filter_multi.cpp index a339959..03916ba 100644 --- a/src/filter_multi.cpp +++ b/src/filter_multi.cpp @@ -1,4 +1,4 @@ -/* $Id: filter_multi.cpp,v 1.9 2006-01-18 14:10:47 adam Exp $ +/* $Id: filter_multi.cpp,v 1.10 2006-01-18 14:36:15 adam Exp $ Copyright (c) 2005, Index Data. %LICENSE% @@ -807,6 +807,23 @@ void yf::Multi::Frontend::scan2(Package &package, Z_APDU *apdu_req) Z_APDU_scanResponse) { Z_ScanResponse *res = gdu->u.z3950->u.scanResponse; + + if (res->entries && res->entries->nonsurrogateDiagnostics) + { + // failure + yp2::odr odr; + Z_APDU *f_apdu = odr.create_scanResponse(apdu_req, 1, 0); + Z_ScanResponse *f_res = f_apdu->u.scanResponse; + + f_res->entries->nonsurrogateDiagnostics = + res->entries->nonsurrogateDiagnostics; + f_res->entries->num_nonsurrogateDiagnostics = + res->entries->num_nonsurrogateDiagnostics; + + package.response() = f_apdu; + return; + } + if (res->entries && res->entries->entries) { Z_Entry **entries = res->entries->entries;