X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Ffilter_multi.cpp;h=ff69a5b99fb1659230f9902d3ff2144a751950f9;hb=f0fb2a160e8c8cbb1147d476ae206ebcedbf8ecf;hp=30d6d187b4995c44bc6c62a7c687df29a45bcb0d;hpb=f4ac591402d2d5e6507022234aa9e36bb23f3a4d;p=metaproxy-moved-to-github.git diff --git a/src/filter_multi.cpp b/src/filter_multi.cpp index 30d6d18..ff69a5b 100644 --- a/src/filter_multi.cpp +++ b/src/filter_multi.cpp @@ -1,5 +1,5 @@ -/* $Id: filter_multi.cpp,v 1.23 2006-08-09 12:27:18 adam Exp $ - Copyright (c) 2005-2006, Index Data. +/* $Id: filter_multi.cpp,v 1.26 2007-03-07 22:50:12 adam Exp $ + Copyright (c) 2005-2007, Index Data. See the LICENSE file for details */ @@ -336,7 +336,7 @@ void yf::Multi::Frontend::init(mp::Package &package, Z_GDU *gdu) std::list targets; - mp::util::get_vhost_otherinfo(&req->otherInfo, false, targets); + mp::util::get_vhost_otherinfo(req->otherInfo, targets); if (targets.size() < 1) { @@ -721,11 +721,16 @@ void yf::Multi::Frontend::present(mp::Package &package, Z_APDU *apdu_req) nprl->records[i] = (Z_NamePlusRecord*) odr_malloc(odr, sizeof(Z_NamePlusRecord)); + int inside_pos = jit->m_inside_pos; + if (inside_pos >= b_resp->records-> + u.databaseOrSurDiagnostics->num_records) + break; *nprl->records[i] = *b_resp->records-> - u.databaseOrSurDiagnostics->records[jit->m_inside_pos]; + u.databaseOrSurDiagnostics->records[inside_pos]; nprl->records[i]->databaseName = odr_strdup(odr, jit->m_backend->m_vhost.c_str()); } + nprl->num_records = i; // usually same as jobs.size(); *f_resp->nextResultSetPosition = start + i; *f_resp->numberOfRecordsReturned = i; }