X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Ffilter_multi.cpp;h=87ab4813bcb5dd76a0eb263b20e6d6dc5e967fcd;hb=9f255f52501e9429f643772a186cc7a72a5e8893;hp=af9aee963111e5f8e17a85fd29202819c74636a5;hpb=f7cf9c4139ed621ba8027a384df7cd58dbee4a50;p=metaproxy-moved-to-github.git diff --git a/src/filter_multi.cpp b/src/filter_multi.cpp index af9aee9..87ab481 100644 --- a/src/filter_multi.cpp +++ b/src/filter_multi.cpp @@ -1,7 +1,7 @@ -/* $Id: filter_multi.cpp,v 1.20 2006-05-16 11:53:53 adam Exp $ +/* $Id: filter_multi.cpp,v 1.24 2006-08-30 12:27:34 adam Exp $ Copyright (c) 2005-2006, Index Data. -%LICENSE% + See the LICENSE file for details */ #include "config.hpp" @@ -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) { @@ -711,7 +711,7 @@ void yf::Multi::Frontend::present(mp::Package &package, Z_APDU *apdu_req) odr_malloc(odr, sizeof(Z_NamePlusRecord *) * nprl->num_records); int i = 0; std::list::const_iterator jit; - for (jit = jobs.begin(); jit != jobs.end(); jit++) + for (jit = jobs.begin(); jit != jobs.end(); jit++, i++) { PackagePtr p = jit->m_backend->m_package; @@ -719,9 +719,12 @@ void yf::Multi::Frontend::present(mp::Package &package, Z_APDU *apdu_req) Z_APDU *b_apdu = gdu->u.z3950; Z_PresentResponse *b_resp = b_apdu->u.presentResponse; - nprl->records[i++] = - b_resp->records->u.databaseOrSurDiagnostics-> - records[jit->m_inside_pos]; + nprl->records[i] = (Z_NamePlusRecord*) + odr_malloc(odr, sizeof(Z_NamePlusRecord)); + *nprl->records[i] = *b_resp->records-> + u.databaseOrSurDiagnostics->records[jit->m_inside_pos]; + nprl->records[i]->databaseName = + odr_strdup(odr, jit->m_backend->m_vhost.c_str()); } *f_resp->nextResultSetPosition = start + i; *f_resp->numberOfRecordsReturned = i;