From 3679505d0d073f7db6425e597eb559b53e8c4827 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Wed, 29 Oct 1997 12:05:01 +0000 Subject: [PATCH] Server produces diagnostic "Unsupported Attribute Set" when appropriate. --- index/attribute.c | 13 +++++++++---- index/zrpn.c | 24 +++++++++++++++++------- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/index/attribute.c b/index/attribute.c index 7595591..fb15f20 100644 --- a/index/attribute.c +++ b/index/attribute.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: attribute.c,v $ - * Revision 1.6 1997-09-17 12:19:11 adam + * Revision 1.7 1997-10-29 12:05:01 adam + * Server produces diagnostic "Unsupported Attribute Set" when appropriate. + * + * Revision 1.6 1997/09/17 12:19:11 adam * Zebra version corresponds to YAZ version 1.4. * Changed Zebra server so that it doesn't depend on global common_resource. * @@ -77,11 +80,13 @@ int att_getentbyatt(ZServerInfo *zi, attent *res, oid_value set, int att) if (!zi->registered_sets) load_atts(zi); for (p = zi->registered_sets; p; p = p->next) - if (p->reference == set && (r = getatt(p, att))) + if (p->reference == set) break;; if (!p) - return 0; + return -2; + if (!(r = getatt(p, att))) + return -1; res->attset_ordinal = r->parent->ordinal; res->local_attributes = r->locals; - return 1; + return 0; } diff --git a/index/zrpn.c b/index/zrpn.c index 415200f..9da23d1 100644 --- a/index/zrpn.c +++ b/index/zrpn.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: zrpn.c,v $ - * Revision 1.68 1997-10-27 14:33:06 adam + * Revision 1.69 1997-10-29 12:05:02 adam + * Server produces diagnostic "Unsupported Attribute Set" when appropriate. + * + * Revision 1.68 1997/10/27 14:33:06 adam * Moved towards generic character mapping depending on "structure" * field in abstract syntax file. Fixed a few memory leaks. Fixed * bug with negative integers when doing searches with relational @@ -727,11 +730,14 @@ static int field_term (ZServerInfo *zi, Z_AttributesPlusTerm *zapt, int max_pos, prefix_len = 0; termp = *term_sub; - if (!att_getentbyatt (zi, &attp, curAttributeSet, use_value)) + if ((r=att_getentbyatt (zi, &attp, curAttributeSet, use_value))) { - logf (LOG_DEBUG, "att_getentbyatt fail. set=%d use=%d", - curAttributeSet, use_value); - zi->errCode = 114; + logf (LOG_DEBUG, "att_getentbyatt fail. set=%d use=%d r=%d", + curAttributeSet, use_value, r); + if (r == -1) + zi->errCode = 114; + else + zi->errCode = 121; return -1; } if (zebTargetInfo_curDatabase (zi->zti, basenames[base_no])) @@ -1525,14 +1531,18 @@ int rpn_scan (ZServerInfo *zi, Z_AttributesPlusTerm *zapt, use_value = 1016; for (base_no = 0; base_no < num_bases && ord_no < 32; base_no++) { + int r; attent attp; data1_local_attribute *local_attr; - if (!att_getentbyatt (zi, &attp, attributeset, use_value)) + if ((r=att_getentbyatt (zi, &attp, attributeset, use_value))) { logf (LOG_DEBUG, "att_getentbyatt fail. set=%d use=%d", attributeset, use_value); - return zi->errCode = 114; + if (r == -1) + zi->errCode = 114; + else + zi->errCode = 121; } if (zebTargetInfo_curDatabase (zi->zti, basenames[base_no])) { -- 1.7.10.4