Server produces diagnostic "Unsupported Attribute Set" when appropriate.
authorAdam Dickmeiss <adam@indexdata.dk>
Wed, 29 Oct 1997 12:05:01 +0000 (12:05 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Wed, 29 Oct 1997 12:05:01 +0000 (12:05 +0000)
index/attribute.c
index/zrpn.c

index 7595591..fb15f20 100644 (file)
@@ -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;
 }
index 415200f..9da23d1 100644 (file)
@@ -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]))
         {