X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;ds=sidebyside;f=src%2Ffilter_record_transform.cpp;h=4cdfaf0d1fa8921c327eb0909bd2e1a2bea4de37;hb=219ffa015c0e35b03fae0788b0e8e6abcfde1a81;hp=47467e5392054454c5383e924a2731bb09740130;hpb=a911db8ff225da3d204c6e9371353895225ae231;p=metaproxy-moved-to-github.git diff --git a/src/filter_record_transform.cpp b/src/filter_record_transform.cpp index 47467e5..4cdfaf0 100644 --- a/src/filter_record_transform.cpp +++ b/src/filter_record_transform.cpp @@ -1,5 +1,5 @@ -/* $Id: filter_record_transform.cpp,v 1.7 2006-12-12 11:01:40 marc Exp $ - Copyright (c) 2005-2006, Index Data. +/* $Id: filter_record_transform.cpp,v 1.10 2007-04-13 09:57:51 adam Exp $ + Copyright (c) 2005-2007, Index Data. See the LICENSE file for details */ @@ -178,7 +178,7 @@ void yf::RecordTransform::Impl::process(mp::Package &package) const else if (ret_code == 2) { char oidbuf[OID_STR_MAX]; - oid_to_dotstring(input_syntax, oidbuf); + oid_oid_to_dotstring(input_syntax, oidbuf); details = odr_strdup(odr_en, oidbuf); apdu = odr_en.create_presentResponse( @@ -189,16 +189,12 @@ void yf::RecordTransform::Impl::process(mp::Package &package) const return; } - - // now re-coding the z3950 backend present request - // z3950'fy record syntax - if (backend_syntax) // TODO: this seems not to work - why ?? - pr_req->preferredRecordSyntax = backend_syntax; + if (backend_syntax) + pr_req->preferredRecordSyntax = odr_oiddup(odr_en, backend_syntax); else - pr_req->preferredRecordSyntax - = yaz_oidval_to_z3950oid(odr_en, CLASS_RECSYN, VAL_NONE); + pr_req->preferredRecordSyntax = 0; // z3950'fy record schema @@ -284,9 +280,8 @@ void yf::RecordTransform::Impl::process(mp::Package &package) const output_record); if (ret_trans == 0) { - struct oident *ident = oid_getentbyoid(match_syntax); npr->u.databaseRecord = - z_ext_record(odr_en, ident->value, + z_ext_record_oid(odr_en, match_syntax, wrbuf_buf(output_record), wrbuf_len(output_record)); } @@ -299,7 +294,7 @@ void yf::RecordTransform::Impl::process(mp::Package &package) const YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS, yaz_record_conv_get_error(rc)); } - wrbuf_free(output_record, 1); + wrbuf_destroy(output_record); } } }