X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Ffilter_sru_to_z3950.cpp;h=a19bcc46b24a7cabbe3e8f94251d134cb6f831ea;hb=637a685d61a9ff0e3f398a59da426979815c4d68;hp=8cccea3edb198c2bdcc4b5a0a0c3deffec83ec9f;hpb=a374b385cce205501c1ef752839aaf4aa3eaeffd;p=metaproxy-moved-to-github.git diff --git a/src/filter_sru_to_z3950.cpp b/src/filter_sru_to_z3950.cpp index 8cccea3..a19bcc4 100644 --- a/src/filter_sru_to_z3950.cpp +++ b/src/filter_sru_to_z3950.cpp @@ -1,8 +1,23 @@ -/* $Id: filter_sru_to_z3950.cpp,v 1.32 2007-03-20 07:20:16 adam Exp $ +/* $Id: filter_sru_to_z3950.cpp,v 1.35 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" #include "filter.hpp" @@ -16,6 +31,7 @@ #include #include #include +#include #include @@ -566,8 +582,8 @@ yf::SRUtoZ3950::Impl::z3950_present_request(mp::Package &package, record_packing = Z_SRW_recordPacking_string; // RecordSyntax will always be XML - (apdu->u.presentRequest->preferredRecordSyntax) - = yaz_oidval_to_z3950oid (odr_en, CLASS_RECSYN, VAL_TEXT_XML); + apdu->u.presentRequest->preferredRecordSyntax + = odr_oiddup(odr_en, yaz_oid_recsyn_xml); // z3950'fy record schema if (sr_req->recordSchema) @@ -662,9 +678,8 @@ yf::SRUtoZ3950::Impl::z3950_present_request(mp::Package &package, else { Z_External *r = npr->u.databaseRecord; - oident *ent = oid_getentbyoid(r->direct_reference); - if (r->which == Z_External_octet - && ent->value == VAL_TEXT_XML) + if (r->direct_reference + && !oid_oidcmp(r->direct_reference, yaz_oid_recsyn_xml)) { sru_res->records[i].recordSchema = "dc"; sru_res->records[i].recordData_buf