X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Ffilter_multi.cpp;h=9a19cc356ce858aefb232f0e742cb0e1ed367533;hb=f0229461b797e40bf949c8a404e4c3ee2e3ac753;hp=87ab4813bcb5dd76a0eb263b20e6d6dc5e967fcd;hpb=e1c7fdb3e2ff41fb43ea3dd2c540b6d568dee851;p=metaproxy-moved-to-github.git diff --git a/src/filter_multi.cpp b/src/filter_multi.cpp index 87ab481..9a19cc3 100644 --- a/src/filter_multi.cpp +++ b/src/filter_multi.cpp @@ -1,7 +1,22 @@ -/* $Id: filter_multi.cpp,v 1.24 2006-08-30 12:27:34 adam Exp $ - Copyright (c) 2005-2006, Index Data. +/* $Id: filter_multi.cpp,v 1.27 2007-05-09 21:23:09 adam Exp $ + Copyright (c) 2005-2007, Index Data. - See the LICENSE file for details +This file is part of Metaproxy. + +Metaproxy is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Metaproxy is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with Metaproxy; see the file LICENSE. If not, write to the +Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. */ #include "config.hpp" @@ -721,11 +736,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; }