X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=asn%2Fproto.c;h=18c4bf7d9156417eaf0b900948dc79032bc6728a;hb=546c28ba38f70ca66b6ce522df97645d9d5cefb9;hp=3054cc281ab727e8d91e71ba16c98f3af4162082;hpb=044d170f0a963555486df54653cd2fdc5815928b;p=yaz-moved-to-github.git diff --git a/asn/proto.c b/asn/proto.c index 3054cc2..18c4bf7 100644 --- a/asn/proto.c +++ b/asn/proto.c @@ -1,10 +1,16 @@ /* - * Copyright (c) 1995, Index Data + * Copyright (c) 1995-1998, Index Data * See the file LICENSE for details. * Sebastian Hammer, Adam Dickmeiss * * $Log: proto.c,v $ - * Revision 1.55 1998-02-11 11:53:32 adam + * Revision 1.57 1998-10-20 13:55:37 quinn + * Fixed Scan bug in asn and client + * + * Revision 1.56 1998/08/19 16:10:04 adam + * Changed som member names of DeleteResultSetRequest/Response. + * + * Revision 1.55 1998/02/11 11:53:32 adam * Changed code so that it compiles as C++. * * Revision 1.54 1996/11/11 13:14:46 adam @@ -1199,6 +1205,8 @@ int z_Entry(ODR o, Z_Entry **p, int opt) return opt && odr_ok(o); } +#ifdef BUGGY_LISTENTRIES + int z_Entries(ODR o, Z_Entries **p, int opt) { if (o->direction == ODR_DECODE) @@ -1234,6 +1242,22 @@ int z_ListEntries(ODR o, Z_ListEntries **p, int opt) return opt && odr_ok(o); } +#endif + +int z_ListEntries (ODR o, Z_ListEntries **p, int opt) +{ + if (!odr_sequence_begin (o, p, sizeof(**p))) + return opt && odr_ok (o); + return + odr_implicit_settag (o, ODR_CONTEXT, 1) && + (odr_sequence_of(o, (Odr_fun) z_Entry, &(*p)->entries, + &(*p)->num_entries) || odr_ok(o)) && + odr_implicit_settag (o, ODR_CONTEXT, 2) && + (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->nonsurrogateDiagnostics, + &(*p)->num_nonsurrogateDiagnostics) || odr_ok(o)) && + odr_sequence_end (o); +} + int z_ScanRequest(ODR o, Z_ScanRequest **p, int opt) { if (!odr_sequence_begin(o, p, sizeof(**p))) @@ -1267,7 +1291,7 @@ int z_ScanResponse(ODR o, Z_ScanResponse **p, int opt) odr_implicit(o, odr_integer, &(*p)->numberOfEntriesReturned, ODR_CONTEXT, 5, 0) && odr_implicit(o, odr_integer, &(*p)->positionOfTerm, ODR_CONTEXT, 6, 1)&& - odr_explicit(o, z_ListEntries, &(*p)->entries, ODR_CONTEXT, 7, 1) && + odr_implicit(o, z_ListEntries, &(*p)->entries, ODR_CONTEXT, 7, 1) && odr_implicit(o, odr_oid, &(*p)->attributeSet, ODR_CONTEXT, 8, 1) && z_OtherInformation(o, &(*p)->otherInfo, 1) && odr_sequence_end(o); @@ -1493,13 +1517,24 @@ int z_DeleteResultSetRequest(ODR o, Z_DeleteResultSetRequest **p, int opt) odr_implicit(o, odr_integer, &(*p)->deleteFunction, ODR_CONTEXT, 32, 0) && (odr_sequence_of(o, z_ResultSetId, &(*p)->resultSetList, - &(*p)->num_ids) || odr_ok(o)) && + &(*p)->num_resultSetList) || odr_ok(o)) && #ifdef Z_95 z_OtherInformation(o, &(*p)->otherInfo, 1) && #endif odr_sequence_end(o); } +int z_ListStatuses (ODR o, Z_ListStatuses **p, int opt) +{ + if (!odr_initmember (o, p, sizeof(**p))) + return opt && odr_ok(o); + if (odr_sequence_of (o, (Odr_fun) z_ListStatus, &(*p)->elements, + &(*p)->num)) + return 1; + *p = 0; + return opt && odr_ok(o); +} + int z_DeleteResultSetResponse(ODR o, Z_DeleteResultSetResponse **p, int opt) { if (!odr_sequence_begin(o, p, sizeof(**p))) @@ -1507,15 +1542,13 @@ int z_DeleteResultSetResponse(ODR o, Z_DeleteResultSetResponse **p, int opt) return z_ReferenceId(o, &(*p)->referenceId, 1) && odr_implicit(o, z_DeleteSetStatus, &(*p)->deleteOperationStatus, - ODR_CONTEXT, 0, 1) && - odr_implicit_settag(o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, (Odr_fun)z_ListStatus, &(*p)->deleteListStatuses, - &(*p)->num_statuses) || odr_ok(o)) && + ODR_CONTEXT, 0, 0) && + odr_implicit (o, z_ListStatuses, + &(*p)->deleteListStatuses, ODR_CONTEXT, 1, 1) && odr_implicit(o, odr_integer, &(*p)->numberNotDeleted, ODR_CONTEXT, 34, 1) && - odr_implicit_settag(o, ODR_CONTEXT, 35) && - (odr_sequence_of(o, (Odr_fun)z_ListStatus, &(*p)->bulkStatuses, - &(*p)->num_bulkStatuses) || odr_ok(o)) && + odr_implicit (o, z_ListStatuses, + &(*p)->bulkStatuses, ODR_CONTEXT, 35, 1) && odr_implicit(o, odr_visiblestring, &(*p)->deleteMessage, ODR_CONTEXT, 36, 1) && #ifdef Z_95