X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;ds=sidebyside;f=src%2Ffilter_virt_db.cpp;h=56ba9465f0772baabec8231dc2674bed2001d17a;hb=e6d572ef110d14fa55115021505b808620457bd3;hp=aca263461567f9c06e5ae101204fd1723a3d7ac1;hpb=66ed48c630abf19ec779a29c5d2b67a9938685a5;p=metaproxy-moved-to-github.git diff --git a/src/filter_virt_db.cpp b/src/filter_virt_db.cpp index aca2634..56ba946 100644 --- a/src/filter_virt_db.cpp +++ b/src/filter_virt_db.cpp @@ -1,5 +1,5 @@ /* This file is part of Metaproxy. - Copyright (C) 2005-2009 Index Data + Copyright (C) 2005-2010 Index Data 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 @@ -18,15 +18,14 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "config.hpp" -#include "filter.hpp" -#include "package.hpp" +#include "filter_virt_db.hpp" +#include #include #include #include -#include "util.hpp" -#include "filter_virt_db.hpp" +#include #include #include @@ -236,31 +235,24 @@ yf::VirtualDB::BackendPtr yf::VirtualDB::Frontend::init_backend( { b->m_named_result_sets = true; } - if (!*res->result) + if (*res->result) { - error_code = YAZ_BIB1_DATABASE_UNAVAILABLE; - mp::util::get_init_diagnostics(res, error_code, addinfo); - BackendPtr null; - return null; + m_backend_list.push_back(b); + return b; + } - } - else - { error_code = YAZ_BIB1_DATABASE_UNAVAILABLE; - // addinfo = database; - BackendPtr null; - return null; - } - if (init_package.session().is_closed()) + mp::util::get_init_diagnostics(res, error_code, addinfo); + } + if (!init_package.session().is_closed()) { - error_code = YAZ_BIB1_DATABASE_UNAVAILABLE; - // addinfo = database; - BackendPtr null; - return null; + Package close_package(b->m_backend_session, package.origin()); + close_package.copy_filter(package); + close_package.session().close(); + close_package.move(b->m_route); // closing it } - - m_backend_list.push_back(b); - return b; + BackendPtr null; + return null; } void yf::VirtualDB::Frontend::search(mp::Package &package, Z_APDU *apdu_req)