Smallish fixes to suppport new formats.
authorSebastian Hammer <quinn@indexdata.com>
Mon, 21 Aug 1995 09:10:10 +0000 (09:10 +0000)
committerSebastian Hammer <quinn@indexdata.com>
Mon, 21 Aug 1995 09:10:10 +0000 (09:10 +0000)
CHANGELOG
asn/Makefile
asn/proto.c
asn/prt-ext.c
include/proto.h
include/prt-ext.h
include/prt.h
odr/odr_mem.c
server/seshigh.c
util/oid.c

index 6c4f9de..8b02996 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -9,8 +9,12 @@ will only affect you if you use the frontend-server.
 Added Explain encoders/decoders to the service-level API. Untested.
 
 Added GRS-1 encoders/decoders to the service-level API. Lightly tested.
 Added Explain encoders/decoders to the service-level API. Untested.
 
 Added GRS-1 encoders/decoders to the service-level API. Lightly tested.
-Test-client will ask for and ODR pretty-print GRS1. Ztest will return
-dummy records.
+Test-client will ask for and print GRS1. Ztest will return dummy records
+on request.
+
+Added Extended Services: Item Order encoders and decoders to the Service-
+level API. Untested. Would anyone be willing to fax or mail the pertinent
+bits of the ILL protocol to us?
 
 Moved pretty-printing of structure-wrappers ({..}) from odr_seq.c to
 odr_cons.c, which causes a more correct output.
 
 Moved pretty-printing of structure-wrappers ({..}) from odr_seq.c to
 odr_cons.c, which causes a more correct output.
@@ -19,11 +23,14 @@ Fixed handling of searchRequest in frontend server. NextResultSetPosition
 was always set to 0 when no records were requested in the searchRequest.
 
 * Added better external-handling. This shouldn't harm old code that *encodes*
 was always set to 0 when no records were requested in the searchRequest.
 
 * Added better external-handling. This shouldn't harm old code that *encodes*
-externals. It will break code that looks for a 'single-ASN1-type'
+externals. It can break code that looks for a 'single-ASN1-type'
 representation, since those types that are known are now decoded
 immediately. Look at the SUTRS sample code in seshigh.c and client.c.
 Documentation updated.
 
 representation, since those types that are known are now decoded
 immediately. Look at the SUTRS sample code in seshigh.c and client.c.
 Documentation updated.
 
+Better, but backwards-compatible handling of records in bend_fetchresponse.
+Length -1 marks structured record, type is deduced from format field.
+
 --- 1.0b2 1995/06/27
 Fairly quick maintenance release to add SUTRS support.
 
 --- 1.0b2 1995/06/27
 Fairly quick maintenance release to add SUTRS support.
 
index 0ef61da..a1bc5d8 100644 (file)
@@ -1,7 +1,7 @@
 # Copyright (C) 1994, Index Data I/S 
 # All rights reserved.
 # Sebastian Hammer, Adam Dickmeiss
 # Copyright (C) 1994, Index Data I/S 
 # All rights reserved.
 # Sebastian Hammer, Adam Dickmeiss
-# $Id: Makefile,v 1.18 1995-08-17 12:44:59 quinn Exp $
+# $Id: Makefile,v 1.19 1995-08-21 09:10:13 quinn Exp $
 
 SHELL=/bin/sh
 INCLUDE=-I../include -I.
 
 SHELL=/bin/sh
 INCLUDE=-I../include -I.
@@ -11,7 +11,8 @@ LIBINCLUDE=-L$(LIBDIR)
 DEFS=$(INCLUDE)
 LIB=$(LIBDIR)/libasn.a
 LIBS=-lodr -lasn
 DEFS=$(INCLUDE)
 LIB=$(LIBDIR)/libasn.a
 LIBS=-lodr -lasn
-PO = proto.o diagbib1.o zget.o prt-rsc.o prt-acc.o prt-exp.o prt-ext.o prt-grs.o
+PO = proto.o diagbib1.o zget.o prt-rsc.o prt-acc.o prt-exp.o prt-ext.o \
+       prt-grs.o prt-exd.o
 CPP=$(CC) -E
 RANLIB=ranlib
 
 CPP=$(CC) -E
 RANLIB=ranlib
 
index 913644a..b50e132 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: proto.c,v $
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: proto.c,v $
- * Revision 1.36  1995-08-15 11:59:39  quinn
+ * Revision 1.37  1995-08-21 09:10:15  quinn
+ * Smallish fixes to suppport new formats.
+ *
+ * Revision 1.36  1995/08/15  11:59:39  quinn
  * Updated External
  *
  * Revision 1.35  1995/08/10  08:53:59  quinn
  * Updated External
  *
  * Revision 1.35  1995/08/10  08:53:59  quinn
@@ -1417,6 +1420,56 @@ int z_Close(ODR o, Z_Close **p, int opt)
 
 /* ------------------------ APDU ------------------------- */
 
 
 /* ------------------------ APDU ------------------------- */
 
+int z_Permissions(ODR o, Z_Permissions **p, int opt)
+{
+    if (!odr_sequence_begin(o, p, sizeof(**p)))
+        return opt && odr_ok(o);
+    return
+        odr_implicit(o, z_InternationalString, &(*p)->userId, ODR_CONTEXT,
+           1, 0) &&
+       odr_implicit_settag(o, ODR_CONTEXT, 2) &&
+       odr_sequence_of(o, odr_integer, &(*p)->allowableFunctions,
+           &(*p)->num_allowableFunctions) &&
+       odr_sequence_end(o);
+}
+
+int z_ExtendedServicesRequest(ODR o, Z_ExtendedServicesRequest **p, int opt)
+{
+    if (!odr_sequence_begin(o, p, sizeof(**p)))
+        return opt && odr_ok(o);
+    return
+        z_ReferenceId(o, &(*p)->referenceId, 1) &&
+        odr_implicit(o, odr_integer, &(*p)->function, ODR_CONTEXT, 3, 0) &&
+        odr_implicit(o, odr_oid, &(*p)->packageType, ODR_CONTEXT, 4, 0) &&
+        odr_implicit(o, z_InternationalString, &(*p)->packageName, ODR_CONTEXT, 5, 1) &&
+        odr_implicit(o, z_InternationalString, &(*p)->userId, ODR_CONTEXT, 6, 1) &&
+        odr_implicit(o, z_IntUnit, &(*p)->retentionTime, ODR_CONTEXT, 7, 1) &&
+        odr_implicit(o, z_Permissions, &(*p)->permissions, ODR_CONTEXT, 8, 1) &&
+        odr_implicit(o, z_InternationalString, &(*p)->description, ODR_CONTEXT, 9, 1) &&
+        odr_implicit(o, z_External, &(*p)->taskSpecificParameters, ODR_CONTEXT, 10, 1) &&
+        odr_implicit(o, odr_integer, &(*p)->waitAction, ODR_CONTEXT, 11, 0) &&
+        z_ElementSetName(o, &(*p)->elements, 1) &&
+        z_OtherInformation(o, &(*p)->otherInfo, 1) &&
+        odr_sequence_end(o);
+}
+
+int z_ExtendedServicesResponse(ODR o, Z_ExtendedServicesResponse **p, int opt)
+{
+    if (!odr_sequence_begin(o, p, sizeof(**p)))
+        return opt && odr_ok(o);
+    return
+        z_ReferenceId(o, &(*p)->referenceId, 1) &&
+        odr_implicit(o, odr_integer, &(*p)->operationStatus, ODR_CONTEXT, 3, 0) &&
+       odr_implicit_settag(o, ODR_CONTEXT, 4) &&
+       (odr_sequence_of(o, z_DiagRec, &(*p)->diagnostics,
+           &(*p)->num_diagnostics) || odr_ok(o)) &&
+        odr_implicit(o, z_External, &(*p)->taskPackage, ODR_CONTEXT, 5, 1) &&
+        z_OtherInformation(o, &(*p)->otherInfo, 1) &&
+        odr_sequence_end(o);
+}
+
+/* ------------------------ APDU ------------------------- */
+
 int z_APDU(ODR o, Z_APDU **p, int opt)
 {
     static Odr_arm arm[] =
 int z_APDU(ODR o, Z_APDU **p, int opt)
 {
     static Odr_arm arm[] =
@@ -1443,6 +1496,10 @@ int z_APDU(ODR o, Z_APDU **p, int opt)
        {ODR_IMPLICIT, ODR_CONTEXT, 35, Z_APDU_scanRequest, z_ScanRequest},
        {ODR_IMPLICIT, ODR_CONTEXT, 36, Z_APDU_scanResponse, z_ScanResponse},
        {ODR_IMPLICIT, ODR_CONTEXT, 45, Z_APDU_segmentRequest, z_Segment},
        {ODR_IMPLICIT, ODR_CONTEXT, 35, Z_APDU_scanRequest, z_ScanRequest},
        {ODR_IMPLICIT, ODR_CONTEXT, 36, Z_APDU_scanResponse, z_ScanResponse},
        {ODR_IMPLICIT, ODR_CONTEXT, 45, Z_APDU_segmentRequest, z_Segment},
+       {ODR_IMPLICIT, ODR_CONTEXT, 46, Z_APDU_extendedServicesRequest,
+           z_ExtendedServicesRequest},
+       {ODR_IMPLICIT, ODR_CONTEXT, 47, Z_APDU_extendedServicesResponse,
+           z_ExtendedServicesResponse},
        {ODR_IMPLICIT, ODR_CONTEXT, 48, Z_APDU_close, z_Close},
 
        {-1, -1, -1, -1, 0}
        {ODR_IMPLICIT, ODR_CONTEXT, 48, Z_APDU_close, z_Close},
 
        {-1, -1, -1, -1, 0}
index 3b5b49f..f075073 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: prt-ext.c,v $
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: prt-ext.c,v $
- * Revision 1.2  1995-08-17 12:45:00  quinn
+ * Revision 1.3  1995-08-21 09:10:18  quinn
+ * Smallish fixes to suppport new formats.
+ *
+ * Revision 1.2  1995/08/17  12:45:00  quinn
  * Fixed minor problems with GRS-1. Added support in c&s.
  *
  * Revision 1.1  1995/08/15  13:37:41  quinn
  * Fixed minor problems with GRS-1. Added support in c&s.
  *
  * Revision 1.1  1995/08/15  13:37:41  quinn
@@ -35,6 +38,9 @@ int z_External(ODR o, Z_External **p, int opt)
        {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_promptObject1,
            z_PromptObject1},
        {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_grs1, z_GenericRecord},
        {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_promptObject1,
            z_PromptObject1},
        {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_grs1, z_GenericRecord},
+       {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_extendedService,
+           z_TaskPackage},
+       {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_itemOrder, z_ItemOrder},
        {-1, -1, -1, -1, 0}
     };
     /*
        {-1, -1, -1, -1, 0}
     };
     /*
index 4d6b8e5..19ef1d0 100644 (file)
  * OF THIS SOFTWARE.
  *
  * $Log: proto.h,v $
  * OF THIS SOFTWARE.
  *
  * $Log: proto.h,v $
- * Revision 1.22  1995-08-17 12:45:14  quinn
+ * Revision 1.23  1995-08-21 09:10:36  quinn
+ * Smallish fixes to suppport new formats.
+ *
+ * Revision 1.22  1995/08/17  12:45:14  quinn
  * Fixed minor problems with GRS-1. Added support in c&s.
  *
  * Revision 1.21  1995/08/15  12:00:11  quinn
  * Fixed minor problems with GRS-1. Added support in c&s.
  *
  * Revision 1.21  1995/08/15  12:00:11  quinn
@@ -1020,6 +1023,55 @@ typedef struct Z_Segment
     Z_OtherInformation *otherInfo;  /* OPTIONAL */
 } Z_Segment;
 
     Z_OtherInformation *otherInfo;  /* OPTIONAL */
 } Z_Segment;
 
+/* ----------------------- Extended Services ---------------- */
+
+typedef struct Z_Permissions
+{
+    char *userId;                         
+    int num_allowableFunctions;
+    int **allowableFunctions;             
+#define Z_Permissions_delete              1
+#define Z_Permissions_modifyContents      2
+#define Z_Permissions_modifyPermissions   3
+#define Z_Permissions_present             4
+#define Z_Permissions_invoke              5
+} Z_Permissions;
+
+typedef struct Z_ExtendedServicesRequest
+{
+    Z_ReferenceId *referenceId;             /* OPTIONAL */
+    int *function;                        
+#define Z_ExtendedServicesRequest_create              1
+#define Z_ExtendedServicesRequest_delete              2
+#define Z_ExtendedServicesRequest_modify              3
+    Odr_oid *packageType;                 
+    char *packageName;                      /* OPTIONAL */
+    char *userId;                           /* OPTIONAL */
+    Z_IntUnit *retentionTime;               /* OPTIONAL */
+    Z_Permissions *permissions;             /* OPTIONAL */
+    char *description;                      /* OPTIONAL */
+    Z_External *taskSpecificParameters;     /* OPTIONAL */
+    int *waitAction;                      
+#define Z_ExtendedServicesRequest_wait                1
+#define Z_ExtendedServicesRequest_waitIfPossible      2
+#define Z_ExtendedServicesRequest_dontWait            3
+#define Z_ExtendedServicesRequest_dontReturnPackage   4
+    char *elements;             /* OPTIONAL */
+    Z_OtherInformation *otherInfo;          /* OPTIONAL */
+} Z_ExtendedServicesRequest;
+
+typedef struct Z_ExtendedServicesResponse
+{
+    Z_ReferenceId *referenceId;             /* OPTIONAL */
+    int *operationStatus;                 
+#define Z_ExtendedServicesResponse_done                1
+#define Z_ExtendedServicesResponse_accepted            2
+#define Z_ExtendedServicesResponse_failure             3
+    int num_diagnostics;
+    Z_DiagRec **diagnostics;                /* OPTIONAL */
+    Z_External *taskPackage;                /* OPTIONAL */
+    Z_OtherInformation *otherInfo;          /* OPTIONAL */
+} Z_ExtendedServicesResponse;
 
 /* ------------------------ APDU ---------------------------- */
 
 
 /* ------------------------ APDU ---------------------------- */
 
@@ -1041,6 +1093,8 @@ typedef struct Z_APDU
        Z_APDU_scanRequest,
        Z_APDU_scanResponse,
        Z_APDU_segmentRequest,
        Z_APDU_scanRequest,
        Z_APDU_scanResponse,
        Z_APDU_segmentRequest,
+       Z_APDU_extendedServicesRequest,
+       Z_APDU_extendedServicesResponse,
        Z_APDU_close
     } which;
     union
        Z_APDU_close
     } which;
     union
@@ -1059,6 +1113,8 @@ typedef struct Z_APDU
        Z_ScanRequest *scanRequest;
        Z_ScanResponse *scanResponse;
        Z_Segment *segmentRequest;
        Z_ScanRequest *scanRequest;
        Z_ScanResponse *scanResponse;
        Z_Segment *segmentRequest;
+       Z_ExtendedServicesRequest *extendedServicesRequest;
+       Z_ExtendedServicesResponse *extendedServicesResponse;
        Z_Close *close;
     } u;
 } Z_APDU;
        Z_Close *close;
     } u;
 } Z_APDU;
@@ -1090,12 +1146,15 @@ int z_StringOrNumeric(ODR o, Z_StringOrNumeric **p, int opt);
 int z_OtherInformationUnit(ODR o, Z_OtherInformationUnit **p, int opt);
 int z_Term(ODR o, Z_Term **p, int opt);
 int z_Specification(ODR o, Z_Specification **p, int opt);
 int z_OtherInformationUnit(ODR o, Z_OtherInformationUnit **p, int opt);
 int z_Term(ODR o, Z_Term **p, int opt);
 int z_Specification(ODR o, Z_Specification **p, int opt);
+int z_Permissions(ODR o, Z_Permissions **p, int opt);
+int z_DiagRec(ODR o, Z_DiagRec **p, int opt);
 Z_APDU *zget_APDU(ODR o, enum Z_APDU_which which);
 
 #include <prt-rsc.h>
 #include <prt-acc.h>
 #include <prt-exp.h>
 #include <prt-grs.h>
 Z_APDU *zget_APDU(ODR o, enum Z_APDU_which which);
 
 #include <prt-rsc.h>
 #include <prt-acc.h>
 #include <prt-exp.h>
 #include <prt-grs.h>
+#include <prt-exd.h>
 
 #include <prt-ext.h>
 
 
 #include <prt-ext.h>
 
index 7c5a06f..a714403 100644 (file)
@@ -47,7 +47,9 @@ struct Z_External
        Z_External_resourceReport1,
        Z_External_resourceReport2,
        Z_External_promptObject1,
        Z_External_resourceReport1,
        Z_External_resourceReport2,
        Z_External_promptObject1,
-       Z_External_grs1
+       Z_External_grs1,
+       Z_External_extendedService,
+       Z_External_itemOrder
     } which;
     union
     {
     } which;
     union
     {
@@ -63,6 +65,8 @@ struct Z_External
        Z_ResourceReport2 *resourceReport2;
        Z_PromptObject1 *promptObject1;
        Z_GenericRecord *grs1;
        Z_ResourceReport2 *resourceReport2;
        Z_PromptObject1 *promptObject1;
        Z_GenericRecord *grs1;
+       Z_TaskPackage *extendedService;
+       Z_ItemOrder *itemOrder;
     } u;
 };
 
     } u;
 };
 
index 977bec9..0b45d2b 100644 (file)
@@ -43,3 +43,4 @@ int odr_write(ODR o, unsigned char *buf, int bytes);
 int odr_seek(ODR o, int whence, int offset);
 int odr_dumpBER(FILE *f, char *buf, int len);
 void odr_choice_bias(ODR o, int what);
 int odr_seek(ODR o, int whence, int offset);
 int odr_dumpBER(FILE *f, char *buf, int len);
 void odr_choice_bias(ODR o, int what);
+int odr_total(ODR o);
index bc48fcd..044b306 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: odr_mem.c,v $
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: odr_mem.c,v $
- * Revision 1.5  1995-05-16 08:50:55  quinn
+ * Revision 1.6  1995-08-21 09:10:41  quinn
+ * Smallish fixes to suppport new formats.
+ *
+ * Revision 1.5  1995/05/16  08:50:55  quinn
  * License, documentation, and memory fixes
  *
  * Revision 1.4  1995/05/15  11:56:09  quinn
  * License, documentation, and memory fixes
  *
  * Revision 1.4  1995/05/15  11:56:09  quinn
@@ -36,6 +39,7 @@ typedef struct odr_memblock
     char *buf;
     int size;
     int top;
     char *buf;
     int size;
     int top;
+    int total;
     struct odr_memblock *next;
 } odr_memblock;
 
     struct odr_memblock *next;
 } odr_memblock;
 
@@ -74,6 +78,7 @@ static odr_memblock *get_block(int size)
            abort();
     }
     r->top = 0;
            abort();
     }
     r->top = 0;
+    r->total = 0;
     return r;
 }
 
     return r;
 }
 
@@ -113,15 +118,23 @@ void *odr_malloc(ODR o, int size)
            abort();
        else
        {
            abort();
        else
        {
+           if (o->mem)
+               p->total = o->mem->total;
            p->next = o->mem;
            o->mem = p;
        }
     r = p->buf + p->top;
     /* align size */
     p->top += (size + (sizeof(long) - 1)) & ~(sizeof(long) - 1);
            p->next = o->mem;
            o->mem = p;
        }
     r = p->buf + p->top;
     /* align size */
     p->top += (size + (sizeof(long) - 1)) & ~(sizeof(long) - 1);
+    p->total += size;
     return r;
 }
 
     return r;
 }
 
+int odr_total(ODR o)
+{
+    return o->mem ? o->mem->total : 0;
+}
+
 /* ---------- memory management for data encoding ----------*/
 
 
 /* ---------- memory management for data encoding ----------*/
 
 
index a9dfd99..0fd64e9 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: seshigh.c,v $
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: seshigh.c,v $
- * Revision 1.44  1995-08-17 12:45:25  quinn
+ * Revision 1.45  1995-08-21 09:11:00  quinn
+ * Smallish fixes to suppport new formats.
+ *
+ * Revision 1.44  1995/08/17  12:45:25  quinn
  * Fixed minor problems with GRS-1. Added support in c&s.
  *
  * Revision 1.43  1995/08/15  12:00:31  quinn
  * Fixed minor problems with GRS-1. Added support in c&s.
  *
  * Revision 1.43  1995/08/15  12:00:31  quinn
@@ -756,7 +759,14 @@ static Z_Records *pack_records(association *a, char *setname, int start,
        bend_fetchresult *fres;
        Z_NamePlusRecord *thisrec;
        Z_DatabaseRecord *thisext;
        bend_fetchresult *fres;
        Z_NamePlusRecord *thisrec;
        Z_DatabaseRecord *thisext;
-
+       int this_length;
+
+       /*
+        * we get the number of bytes allocated on the stream before any
+        * allocation done by the backend - this should give us a reasonable
+        * idea of the total size of the data so far.
+        */
+       total_length = odr_total(a->encode);
        if (reclist.num_records == MAX_RECORDS - 1)
        {
            *pres = Z_PRES_PARTIAL_2;
        if (reclist.num_records == MAX_RECORDS - 1)
        {
            *pres = Z_PRES_PARTIAL_2;
@@ -778,19 +788,23 @@ static Z_Records *pack_records(association *a, char *setname, int start,
            *pres = Z_PRES_FAILURE;
            return diagrec(a->proto, fres->errcode, fres->errstring);
        }
            *pres = Z_PRES_FAILURE;
            return diagrec(a->proto, fres->errcode, fres->errstring);
        }
+       if (fres->len >= 0)
+           this_length = fres->len;
+       else
+           this_length = odr_total(a->encode) - total_length;
        logf(LOG_DEBUG, "  fetched record, len=%d, total=%d",
        logf(LOG_DEBUG, "  fetched record, len=%d, total=%d",
-           fres->len, total_length);
-       if (fres->len + total_length > a->preferredMessageSize)
+           this_length, total_length);
+       if (this_length + total_length > a->preferredMessageSize)
        {
            /* record is small enough, really */
        {
            /* record is small enough, really */
-           if (fres->len <= a->preferredMessageSize)
+           if (this_length <= a->preferredMessageSize)
            {
                logf(LOG_DEBUG, "  Dropped last normal-sized record");
                *pres = Z_PRES_PARTIAL_2;
                break;
            }
            /* record can only be fetched by itself */
            {
                logf(LOG_DEBUG, "  Dropped last normal-sized record");
                *pres = Z_PRES_PARTIAL_2;
                break;
            }
            /* record can only be fetched by itself */
-           if (fres->len < a->maximumRecordSize)
+           if (this_length < a->maximumRecordSize)
            {
                logf(LOG_DEBUG, "  Record > prefmsgsz");
                if (toget > 1)
            {
                logf(LOG_DEBUG, "  Record > prefmsgsz");
                if (toget > 1)
@@ -799,7 +813,6 @@ static Z_Records *pack_records(association *a, char *setname, int start,
                    reclist.records[reclist.num_records] =
                         surrogatediagrec(a->proto, fres->basename, 16, 0);
                    reclist.num_records++;
                    reclist.records[reclist.num_records] =
                         surrogatediagrec(a->proto, fres->basename, 16, 0);
                    reclist.num_records++;
-                   total_length += 10; /* totally arbitrary */
                    continue;
                }
            }
                    continue;
                }
            }
@@ -809,7 +822,6 @@ static Z_Records *pack_records(association *a, char *setname, int start,
                reclist.records[reclist.num_records] =
                    surrogatediagrec(a->proto, fres->basename, 17, 0);
                reclist.num_records++;
                reclist.records[reclist.num_records] =
                    surrogatediagrec(a->proto, fres->basename, 17, 0);
                reclist.num_records++;
-               total_length += 10; /* totally arbitrary */
                continue;
            }
        }
                continue;
            }
        }
@@ -877,7 +889,6 @@ static Z_Records *pack_records(association *a, char *setname, int start,
        }
        reclist.records[reclist.num_records] = thisrec;
        reclist.num_records++;
        }
        reclist.records[reclist.num_records] = thisrec;
        reclist.num_records++;
-       total_length += fres->len;
        *next = fres->last_in_set ? 0 : recno + 1;
     }
     *num = reclist.num_records;
        *next = fres->last_in_set ? 0 : recno + 1;
     }
     *num = reclist.num_records;
index 44b91b6..bc36e70 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: oid.c,v $
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: oid.c,v $
- * Revision 1.1  1995-05-29 08:17:13  quinn
+ * Revision 1.2  1995-08-21 09:11:16  quinn
+ * Smallish fixes to suppport new formats.
+ *
+ * Revision 1.1  1995/05/29  08:17:13  quinn
  * iMoved oid to util to support comstack.
  *
  * Revision 1.5  1995/05/22  11:30:16  quinn
  * iMoved oid to util to support comstack.
  *
  * Revision 1.5  1995/05/22  11:30:16  quinn
@@ -118,6 +121,27 @@ static oident oids[] =
     {PROTO_SR,      CLASS_RECSYN,  VAL_CANMARC,   {5,17,-1},   "Canmarc"     },
     {PROTO_SR,      CLASS_RECSYN,  VAL_SBN,       {5,18,-1},   "SBN"         },
     {PROTO_SR,      CLASS_RECSYN,  VAL_PICAMARC,  {5,19,-1},   "Picamarc"    },
     {PROTO_SR,      CLASS_RECSYN,  VAL_CANMARC,   {5,17,-1},   "Canmarc"     },
     {PROTO_SR,      CLASS_RECSYN,  VAL_SBN,       {5,18,-1},   "SBN"         },
     {PROTO_SR,      CLASS_RECSYN,  VAL_PICAMARC,  {5,19,-1},   "Picamarc"    },
+    {PROTO_SR,      CLASS_RECSYN,  VAL_AUSMARC,   {5,20,-1},   "Ausmarc"     },
+    {PROTO_SR,      CLASS_RECSYN,  VAL_IBERMARC,  {5,21,-1},   "Ibermarc"    },
+    {PROTO_SR,      CLASS_RECSYN,  VAL_EXPLAIN,   {5,100,-1},  "Explain"     },
+    {PROTO_SR,      CLASS_RECSYN,  VAL_SUTRS,     {5,101,-1},  "SUTRS"       },
+    {PROTO_SR,      CLASS_RECSYN,  VAL_OPAC,      {5,102,-1},  "OPAC"        },
+    {PROTO_SR,      CLASS_RECSYN,  VAL_SUMMARY,   {5,103,-1},  "Summary"     },
+    {PROTO_SR,      CLASS_RECSYN,  VAL_GRS0,      {5,104,-1},  "GRS-0"       },
+    {PROTO_SR,      CLASS_RECSYN,  VAL_GRS1,      {5,105,-1},  "GRS-1"       },
+    {PROTO_SR,      CLASS_RECSYN,  VAL_EXTENDED,  {5,106,-1},  "Extended"    },
+    {PROTO_SR,      CLASS_RESFORM, VAL_RESOURCE1, {7,1,-1},    "Resource-1"  },
+    {PROTO_SR,      CLASS_RESFORM, VAL_RESOURCE2, {7,2,-1},    "Resource-2"  },
+    {PROTO_SR,      CLASS_ACCFORM, VAL_PROMPT1,   {8,1,-1},    "Prompt-1"    },
+    {PROTO_SR,      CLASS_ACCFORM, VAL_DES1,      {8,2,-1},    "Des-1"       },
+    {PROTO_SR,      CLASS_ACCFORM, VAL_KRB1,      {8,3,-1},    "Krb-1"       },
+    {PROTO_SR,      CLASS_EXTSERV, VAL_PRESSET,   {9,1,-1},    "Pers. set"   },
+    {PROTO_SR,      CLASS_EXTSERV, VAL_PQUERY,    {9,2,-1},    "Pers. query" },
+    {PROTO_SR,      CLASS_EXTSERV, VAL_PCQUERY,   {9,3,-1},    "Per'd query" },
+    {PROTO_SR,      CLASS_EXTSERV, VAL_ITEMORDER, {9,4,-1},    "Item order"  },
+    {PROTO_SR,      CLASS_EXTSERV, VAL_DBUPDATE,  {9,5,-1},    "DB. Update"  },
+    {PROTO_SR,      CLASS_EXTSERV, VAL_EXPORTSPEC,{9,6,-1},    "exp. spec."  },
+    {PROTO_SR,      CLASS_EXTSERV, VAL_EXPORTINV, {9,7,-1},    "exp. inv."   },
     {0,             0,             0,             {-1},        0          }
 };
 
     {0,             0,             0,             {-1},        0          }
 };