1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-z3950.c */
4 /* asn2wrs.py -b -p z3950 -c ./z3950.cnf -s ./packet-z3950-template -D . -O ../.. z3950.asn z3950-oclc.asn z3950-externals.asn */
5
6 /* Input file: packet-z3950-template.c */
7
8 #line 1 "./asn1/z3950/packet-z3950-template.c"
9 /* packet-z3950.c
10 * Routines for dissection of the NISO Z39.50 Information Retrieval protocol
11 * Also contains a dissector for the MARC Machine Readable Cataloging file
12 * format. The general format is specified by ISO 2709 and the specific
13 * instance is MARC21.
14 *
15 * Copyright 2018, Craig Jackson <cejackson51@gmail.com>
16 *
17 * Wireshark - Network traffic analyzer
18 * By Gerald Combs <gerald@wireshark.org>
19 * Copyright 1998 Gerald Combs
20 *
21 * SPDX-License-Identifier: GPL-2.0-or-later
22 *
23 * References:
24 * ISO 2709: https://www.iso.org/standard/41319.html
25 * MARC21: http://www.loc.gov/marc/bibliographic/
26 * Z39.50 Maintenance Agency: http://www.loc.gov/z3950/agency/
27 * Z39.50 2003 standard: http://www.loc.gov/z3950/agency/Z39-50-2003.pdf
28 * Z39.50 1995 ASN.1: https://www.loc.gov/z3950/agency/asn1.html
29 * Registered Z39.50 Object Identifiers:
30 * http://www.loc.gov/z3950/agency/defns/oids.html
31 * Bib-1 Attribute Set: https://www.loc.gov/z3950/agency/defns/bib1.html
32 * Bib-1 Diagnostics: https://www.loc.gov/z3950/agency/defns/bib1diag.html
33 * RFC for Z39.50 over TCP/IP: https://tools.ietf.org/html/rfc1729
34 *
35 */
36
37 #include "config.h"
38
39 #include <epan/packet.h>
40 #include <epan/conversation.h>
41 #include <epan/exceptions.h>
42 #include <epan/expert.h>
43 #include <epan/oids.h>
44 #include <epan/proto_data.h>
45 #include <wsutil/str_util.h>
46
47 #include <string.h>
48
49 #include "packet-ber.h"
50 #include "packet-tcp.h"
51
52 typedef struct z3950_atinfo_t {
53 gint atsetidx;
54 gint attype;
55 } z3950_atinfo_t;
56
57 typedef struct z3950_diaginfo_t {
58 gint diagsetidx;
59 gint diagcondition;
60 } z3950_diaginfo_t;
61
62 #define PNAME "Z39.50 Protocol"
63 #define PSNAME "Z39.50"
64 #define PFNAME "z3950"
65 #define Z3950_PORT 210 /* UDP port */
66
67 /* Known attribute set ids */
68 #define Z3950_ATSET_BIB1_OID "1.2.840.10003.3.1"
69
70 /* Known diagnostic set ids */
71 #define Z3950_DIAGSET_BIB1_OID "1.2.840.10003.4.1"
72
73 /* Known record syntax ids */
74 #define Z3950_RECORDSYNTAX_MARC21_OID "1.2.840.10003.5.10"
75
76 /* Indexes of known attribute set ids */
77 #define Z3950_ATSET_UNKNOWN 0
78 #define Z3950_ATSET_BIB1 1
79
80 /* bib-1 Attribute Types */
81 #define Z3950_BIB1_AT_USE 1
82 #define Z3950_BIB1_AT_RELATION 2
83 #define Z3950_BIB1_AT_POSITION 3
84 #define Z3950_BIB1_AT_STRUCTURE 4
85 #define Z3950_BIB1_AT_TRUNCATION 5
86 #define Z3950_BIB1_AT_COMPLETENESS 6
87
88 /* Indexes of known diagnostic set ids */
89 #define Z3950_DIAGSET_UNKNOWN 0
90 #define Z3950_DIAGSET_BIB1 1
91
92 /* Per-packet data keys */
93 #define Z3950_ATINFO_KEY 1
94 #define Z3950_DIAGSET_KEY 2
95
96 /* MARC defines */
97 #define MARC_SUBFIELD_INDICATOR '\x1f'
98 #define MARC_LEADER_LENGTH 24
99 #define MARC_CHAR_UNINITIALIZED 256
100
101 #define marc_isdigit(x) (((x) >='0') && ((x) <= '9'))
102 #define marc_char_to_int(x) ((x) - '0')
103
104 typedef struct marc_directory_entry {
105 guint32 tag;
106 guint32 length;
107 guint32 starting_character;
108 } marc_directory_entry;
109
110 static dissector_handle_t z3950_handle=NULL;
111
112 void proto_reg_handoff_z3950(void);
113 void proto_register_z3950(void);
114
115 /* Initialize the protocol and registered fields */
116 static int proto_z3950 = -1;
117 static int global_z3950_port = Z3950_PORT;
118 static gboolean z3950_desegment = TRUE;
119
120 static const value_string z3950_bib1_att_types[] = {
121 { Z3950_BIB1_AT_USE, "Use" },
122 { Z3950_BIB1_AT_RELATION, "Relation" },
123 { Z3950_BIB1_AT_POSITION, "Position" },
124 { Z3950_BIB1_AT_STRUCTURE, "Structure" },
125 { Z3950_BIB1_AT_TRUNCATION, "Truncation" },
126 { Z3950_BIB1_AT_COMPLETENESS, "Completeness"},
127 { 0, NULL}
128 };
129
130 static const value_string z3950_bib1_at_use[] = {
131 { 1, "Personal name" },
132 { 2, "Corporate name" },
133 { 3, "Conference name" },
134 { 4, "Title" },
135 { 5, "Title series" },
136 { 6, "Title uniform" },
137 { 7, "ISBN" },
138 { 8, "ISSN" },
139 { 9, "LC card number" },
140 { 10, "BNB card number" },
141 { 11, "BGF card number" },
142 { 12, "Local number" },
143 { 13, "Dewey classification" },
144 { 14, "UDC classification" },
145 { 15, "Bliss classification" },
146 { 16, "LC call number" },
147 { 17, "NLM call number" },
148 { 18, "NAL call number" },
149 { 19, "MOS call number" },
150 { 20, "Local classification" },
151 { 21, "Subject heading" },
152 { 22, "Subject Rameau" },
153 { 23, "BDI index subject" },
154 { 24, "INSPEC subject" },
155 { 25, "MESH subject" },
156 { 26, "PA subject" },
157 { 27, "LC subject heading" },
158 { 28, "RVM subject heading" },
159 { 29, "Local subject index" },
160 { 30, "Date" },
161 { 31, "Date of publication" },
162 { 32, "Date of acquisition" },
163 { 33, "Title key" },
164 { 34, "Title collective" },
165 { 35, "Title parallel" },
166 { 36, "Title cover" },
167 { 37, "Title added title pagw" },
168 { 38, "Title caption" },
169 { 39, "Title running" },
170 { 40, "Title spine" },
171 { 41, "Title other variant" },
172 { 42, "Title former" },
173 { 43, "Title abbreviated" },
174 { 44, "Title expanded" },
175 { 45, "Subject precis" },
176 { 46, "Subject rswk" },
177 { 47, "Subject subdivision" },
178 { 48, "No. nat'l biblio." },
179 { 49, "No. legal deposit" },
180 { 50, "No. govt pub." },
181 { 51, "No. music publisher" },
182 { 52, "Number db" },
183 { 53, "Number local call" },
184 { 54, "Code-language" },
185 { 55, "Code-geographic area" },
186 { 56, "Code-institution" },
187 { 57, "Name and title *" },
188 { 58, "Name geographic" },
189 { 59, "Place publication" },
190 { 60, "CODEN" },
191 { 61, "Microform generation" },
192 { 62, "Abstract" },
193 { 63, "Note" },
194 { 1000, "Author-title" },
195 { 1001, "Record type" },
196 { 1002, "Name" },
197 { 1003, "Author" },
198 { 1004, "Author-name personal" },
199 { 1005, "Author-name corporate" },
200 { 1006, "Author-name conference" },
201 { 1007, "Identifier-standard" },
202 { 1008, "Subject-LC children's" },
203 { 1009, "Subject name-personal" },
204 { 1010, "Body of text" },
205 { 1011, "Date/time added to db" },
206 { 1012, "Date/time last modified" },
207 { 1013, "Authority/format id" },
208 { 1014, "Concept-text" },
209 { 1015, "Concept-reference" },
210 { 1016, "Any" },
211 { 1017, "Server-choice" },
212 { 1018, "Publisher" },
213 { 1019, "Record-source" },
214 { 1020, "Editor" },
215 { 1021, "Bib-level" },
216 { 1022, "Geographic class" },
217 { 1023, "Indexed-by" },
218 { 1024, "Map-scale" },
219 { 1025, "Music-key" },
220 { 1026, "Related-periodical" },
221 { 1027, "Report-number" },
222 { 1028, "Stock-number" },
223 { 1030, "Thematic-number" },
224 { 1031, "Material-type" },
225 { 1032, "Doc-id" },
226 { 1033, "Host-item" },
227 { 1034, "Content-type" },
228 { 1035, "Anywhere" },
229 { 1036, "Author-Title-Subject" },
230 { 1037, "Serial Item and Contribution Identifier (SICI)" },
231 { 1038, "Abstract-language" },
232 { 1039, "Application-kind" },
233 { 1040, "Classification" },
234 { 1041, "Classification-basic" },
235 { 1042, "Classification-local-record" },
236 { 1043, "Enzyme" },
237 { 1044, "Possessing-institution" },
238 { 1045, "Record-linking" },
239 { 1046, "Record-status" },
240 { 1047, "Treatment" },
241 { 1048, "Control-number-GKD" },
242 { 1049, "Control-number-linking" },
243 { 1050, "Control-number-PND" },
244 { 1051, "Control-number-SWD" },
245 { 1052, "Control-number-ZDB" },
246 { 1053, "Country-publication" },
247 { 1054, "Date-conference" },
248 { 1055, "Date-record-status" },
249 { 1056, "Dissertation-information" },
250 { 1057, "Meeting-organizer" },
251 { 1058, "Note-availability" },
252 { 1059, "Number-CAS-registry" },
253 { 1060, "Number-document" },
254 { 1061, "Number-local-accounting" },
255 { 1062, "Number-local-acquisition" },
256 { 1063, "Number-local-call-copy-specific" },
257 { 1064, "Number-of-reference" },
258 { 1065, "Number-norm" },
259 { 1066, "Number-volume" },
260 { 1067, "Place-conference (meeting location)" },
261 { 1068, "Reference (references and footnotes)" },
262 { 1069, "Referenced-journal" },
263 { 1070, "Section-code" },
264 { 1071, "Section-heading" },
265 { 1072, "Subject-GOO" },
266 { 1073, "Subject-name-conference" },
267 { 1074, "Subject-name-corporate" },
268 { 1075, "Subject-genre/form" },
269 { 1076, "Subject-name-geographical" },
270 { 1077, "Subject-chronological" },
271 { 1078, "Subject-title" },
272 { 1079, "Subject-topical" },
273 { 1080, "Subject-uncontrolled" },
274 { 1081, "Terminology-chemical" },
275 { 1082, "Title-translated" },
276 { 1083, "Year-of-beginning" },
277 { 1084, "Year-of-ending" },
278 { 1085, "Subject-AGROVOC" },
279 { 1086, "Subject-COMPASS" },
280 { 1087, "Subject-EPT" },
281 { 1088, "Subject-NAL" },
282 { 1089, "Classification-BCM" },
283 { 1090, "Classification-DB" },
284 { 1091, "Identifier-ISRC" },
285 { 1092, "Identifier-ISMN" },
286 { 1093, "Identifier-ISRN" },
287 { 1094, "Identifier-DOI" },
288 { 1095, "Code-language-original" },
289 { 1096, "Title-later" },
290 { 1097, "DC-Title" },
291 { 1098, "DC-Creator" },
292 { 1099, "DC-Subject" },
293 { 1100, "DC-Description" },
294 { 1101, "DC-Publisher" },
295 { 1102, "DC-Date" },
296 { 1103, "DC-ResourceType" },
297 { 1104, "DC-ResourceIdentifier" },
298 { 1105, "DC-Language" },
299 { 1106, "DC-OtherContributor" },
300 { 1107, "DC-Format" },
301 { 1108, "DC-Source" },
302 { 1109, "DC-Relation" },
303 { 1110, "DC-Coverage" },
304 { 1111, "DC-RightsManagment" },
305 { 1112, "GILS Controlled Subject Index" },
306 { 1113, "GILS Subject Thesaurus" },
307 { 1114, "GILS Index Terms -- Controlled" },
308 { 1115, "GILS Controlled Term" },
309 { 1116, "GILS Spacial Domain" },
310 { 1117, "GILS Bounding Coordinates" },
311 { 1118, "GILS West Bounding Coordinate" },
312 { 1119, "GILS East Bounding Coordinate" },
313 { 1120, "GILS North Bounding Coordinate" },
314 { 1121, "GILS South Bounding Coordinate" },
315 { 1122, "GILS Place" },
316 { 1123, "GILS Place Keyword Thesaurus" },
317 { 1124, "GILS Place Keyword" },
318 { 1125, "GILS Time Period" },
319 { 1126, "GILS Time Period Textual" },
320 { 1127, "GILS Time Period Structured" },
321 { 1128, "GILS Beginning Date" },
322 { 1129, "GILS Ending Date" },
323 { 1130, "GILS Availability" },
324 { 1131, "GILS Distributor" },
325 { 1132, "GILS Distributor Name" },
326 { 1133, "GILS Distributor Organization" },
327 { 1134, "GILS Distributor Street Address" },
328 { 1135, "GILS Distributor City" },
329 { 1136, "GILS Distributor State or Province" },
330 { 1137, "GILS Distributor Zip or Postal Code" },
331 { 1138, "GILS Distributor Country" },
332 { 1139, "GILS Distributor Network Address" },
333 { 1140, "GILS Distributor Hours of Service" },
334 { 1141, "GILS Distributor Telephone" },
335 { 1142, "GILS Distributor Fax" },
336 { 1143, "GILS Resource Description" },
337 { 1144, "GILS Order Process" },
338 { 1145, "GILS Order Information" },
339 { 1146, "GILS Cost" },
340 { 1147, "GILS Cost Information" },
341 { 1148, "GILS Technical Prerequisites" },
342 { 1149, "GILS Available Time Period" },
343 { 1150, "GILS Available Time Textual" },
344 { 1151, "GILS Available Time Structured" },
345 { 1152, "GILS Available Linkage" },
346 { 1153, "GILS Linkage Type" },
347 { 1154, "GILS Linkage" },
348 { 1155, "GILS Sources of Data" },
349 { 1156, "GILS Methodology" },
350 { 1157, "GILS Access Constraints" },
351 { 1158, "GILS General Access Constraints" },
352 { 1159, "GILS Originator Dissemination Control" },
353 { 1160, "GILS Security Classification Control" },
354 { 1161, "GILS Use Constraints" },
355 { 1162, "GILS Point of Contact" },
356 { 1163, "GILS Contact Name" },
357 { 1164, "GILS Contact Organization" },
358 { 1165, "GILS Contact Street Address" },
359 { 1166, "GILS Contact City" },
360 { 1167, "GILS Contact State or Province" },
361 { 1168, "GILS Contact Zip or Postal Code" },
362 { 1169, "GILS Contact Country" },
363 { 1170, "GILS Contact Network Address" },
364 { 1171, "GILS Contact Hours of Service" },
365 { 1172, "GILS Contact Telephone" },
366 { 1173, "GILS Contact Fax" },
367 { 1174, "GILS Supplemental Information" },
368 { 1175, "GILS Purpose" },
369 { 1176, "GILS Agency Program" },
370 { 1177, "GILS Cross Reference" },
371 { 1178, "GILS Cross Reference Title" },
372 { 1179, "GILS Cross Reference Relationship" },
373 { 1180, "GILS Cross Reference Linkage" },
374 { 1181, "GILS Schedule Number" },
375 { 1182, "GILS Original Control Identifier" },
376 { 1183, "GILS Language of Record" },
377 { 1184, "GILS Record Review Date" },
378 { 1185, "Performer" },
379 { 1186, "Performer-Individual" },
380 { 1187, "Performer-Group" },
381 { 1188, "Instrumentation" },
382 { 1189, "Instrumentation-Original" },
383 { 1190, "Instrumentation-Current" },
384 { 1191, "Arrangement" },
385 { 1192, "Arrangement-Original" },
386 { 1193, "Arrangement-Current" },
387 { 1194, "Musical Key-Original" },
388 { 1195, "Musical Key-Current" },
389 { 1196, "Date-Composition" },
390 { 1197, "Date-Recording" },
391 { 1198, "Place-Recording" },
392 { 1199, "Country-Recording" },
393 { 1200, "Number-ISWC" },
394 { 1201, "Number-Matrix" },
395 { 1202, "Number-Plate" },
396 { 1203, "Classification-McColvin" },
397 { 1204, "Duration" },
398 { 1205, "Number-Copies" },
399 { 1206, "Musical Theme" },
400 { 1207, "Instruments - total number" },
401 { 1208, "Instruments - distinct number" },
402 { 1209, "Identifier - URN" },
403 { 1210, "Sears Subject Heading" },
404 { 1211, "OCLC Number" },
405 { 1212, "NORZIG Composition" },
406 { 1213, "NORZIG Intellectual level" },
407 { 1214, "NORZIG EAN" },
408 { 1215, "NORZIG NLC" },
409 { 1216, "NORZIG CRCS" },
410 { 1217, "NORZIG Nationality" },
411 { 1218, "NORZIG Equinox" },
412 { 1219, "NORZIG Compression" },
413 { 1220, "NORZIG Format" },
414 { 1221, "NORZIG Subject - occupation" },
415 { 1222, "NORZIG Subject - function" },
416 { 1223, "NORZIG Edition" },
417 { 1224, "GPO Item Number" },
418 { 1225, "Provider" },
419 { 0, NULL}
420 };
421
422 static const value_string z3950_bib1_at_relation[] = {
423 { 1, "Less than" },
424 { 2, "Less than or equal" },
425 { 3, "Equal" },
426 { 4, "Greater than or equal" },
427 { 5, "Greater than" },
428 { 6, "Not equal" },
429 { 100, "Phonetic" },
430 { 101, "Stem" },
431 { 102, "Relevance" },
432 { 103, "Always Matches" },
433 { 0, NULL}
434 };
435
436 static const value_string z3950_bib1_at_position[] = {
437 { 1, "First in field" },
438 { 2, "First in subfield" },
439 { 3, "Any position in field" },
440 { 0, NULL}
441 };
442
443 static const value_string z3950_bib1_at_structure[] = {
444 { 1, "Phrase" },
445 { 2, "Word" },
446 { 3, "Key" },
447 { 4, "Year" },
448 { 5, "Date (normalized)" },
449 { 6, "Word list" },
450 { 100, "Date (un-normalized)" },
451 { 101, "Name (normalized)" },
452 { 102, "Name (un-normalized)" },
453 { 103, "Structure" },
454 { 104, "Urx" },
455 { 105, "Free-form-text" },
456 { 106, "Document-text" },
457 { 107, "Local" },
458 { 108, "String" },
459 { 109, "Numeric" },
460 { 0, NULL}
461 };
462
463 static const value_string z3950_bib1_at_truncation[] = {
464 { 1, "Right truncation" },
465 { 2, "Left truncation" },
466 { 3, "Left and right truncation" },
467 { 100, "Do not truncate" },
468 { 101, "Process # in search term" },
469 { 102, "regExpr-1" },
470 { 103, "regExpr-2" },
471 { 104, "Z39.58-1992 Character masking" },
472 { 0, NULL}
473 };
474
475 static const value_string z3950_bib1_at_completeness[] = {
476 { 1, "Incomplete subfield" },
477 { 2, "Complete subfield" },
478 { 3, "Complete field" },
479 { 0, NULL}
480 };
481
482 static const value_string z3950_bib1_diagconditions[] = {
483 { 1, "Permanent system error" },
484 { 2, "Temporary system error" },
485 { 3, "Unsupported search" },
486 { 4, "Terms only exclusion (stop) words" },
487 { 5, "Too many argument words" },
488 { 6, "Too many boolean operators" },
489 { 7, "Too many truncated words" },
490 { 8, "Too many incomplete subfields" },
491 { 9, "Truncated words too short" },
492 { 10, "Invalid format for record number (search term)" },
493 { 11, "Too many characters in search statement" },
494 { 12, "Too many records retrieved" },
495 { 13, "Present request out of range" },
496 { 14, "System error in presenting records" },
497 { 15, "Record no authorized to be sent intersystem" },
498 { 16, "Record exceeds Preferred-message-size" },
499 { 17, "Record exceeds Maximum-record-size" },
500 { 18, "Result set not supported as a search term" },
501 { 19, "Only single result set as search term supported" },
502 { 20, "Only ANDing of a single result set as search term supported" },
503 { 21, "Result set exists and replace indicator off" },
504 { 22, "Result set naming not supported" },
505 { 23, "Combination of specified databases not supported" },
506 { 24, "Element set names not supported" },
507 { 25, "Specified element set name not valid for specified database" },
508 { 26, "Only a single element set name supported" },
509 { 27, "Result set no longer exists - unilaterally deleted by target" },
510 { 28, "Result set is in use" },
511 { 29, "One of the specified databases is locked" },
512 { 30, "Specified result set does not exist" },
513 { 31, "Resources exhausted - no results available" },
514 { 32, "Resources exhausted - unpredictable partial results available" },
515 { 33, "Resources exhausted - valid subset of results available" },
516 { 100, "Unspecified error" },
517 { 101, "Access-control failure" },
518 { 102, "Security challenge required but could not be issued - request terminated" },
519 { 103, "Security challenge required but could not be issued - record not included" },
520 { 104, "Security challenge failed - record not included" },
521 { 105, "Terminated by negative continue response" },
522 { 106, "No abstract syntaxes agreed to for this record" },
523 { 107, "Query type not supported" },
524 { 108, "Malformed query" },
525 { 109, "Database unavailable" },
526 { 110, "Operator unsupported" },
527 { 111, "Too many databases specified" },
528 { 112, "Too many result sets created" },
529 { 113, "Unsupported attribute type" },
530 { 114, "Unsupported Use attribute" },
531 { 115, "Unsupported value for Use attribute" },
532 { 116, "Use attribute required but not supplied" },
533 { 117, "Unsupported Relation attribute" },
534 { 118, "Unsupported Structure attribute" },
535 { 119, "Unsupported Position attribute" },
536 { 120, "Unsupported Truncation attribute" },
537 { 121, "Unsupported Attribute Set" },
538 { 122, "Unsupported Completeness attribute" },
539 { 123, "Unsupported attribute combination" },
540 { 124, "Unsupported coded value for term" },
541 { 125, "Malformed search term" },
542 { 126, "Illegal term value for attribute" },
543 { 127, "Unparsable format for un-normalized value" },
544 { 128, "Illegal result set name" },
545 { 129, "Proximity search of sets not supported" },
546 { 130, "Illegal result set in proximity search" },
547 { 131, "Unsupported proximity relation" },
548 { 132, "Unsupported proximity unit code" },
549 { 201, "Proximity not supported with this attribute combination" },
550 { 202, "Unsupported distance for proximity" },
551 { 203, "Ordered flag not supported for proximity" },
552 { 205, "Only zero step size supported for Scan" },
553 { 206, "Specified step size not supported for Scan" },
554 { 207, "Cannot sort according to sequence" },
555 { 208, "No result set name supplied on Sort" },
556 { 209, "Generic sort not supported (database-specific sort only supported)" },
557 { 210, "Database specific sort not supported" },
558 { 211, "Too many sort keys" },
559 { 212, "Duplicate sort keys" },
560 { 213, "Unsupported missing data action" },
561 { 214, "Illegal sort relation" },
562 { 215, "Illegal case value" },
563 { 216, "Illegal missing data action" },
564 { 217, "Segmentation: Cannot guarantee records will fit in specified segments" },
565 { 218, "ES: Package name already in use" },
566 { 219, "ES: no such package, on modify/delete" },
567 { 220, "ES: quota exceeded" },
568 { 221, "ES: extended service type not supported" },
569 { 222, "ES: permission denied on ES - id not authorized" },
570 { 223, "ES: permission denied on ES - cannot modify or delete" },
571 { 224, "ES: immediate execution failed" },
572 { 225, "ES: immediate execution not supported for this service" },
573 { 226, "ES: immediate execution not supported for these parameters" },
574 { 227, "No data available in requested record syntax" },
575 { 228, "Scan: malformed scan" },
576 { 229, "Term type not supported" },
577 { 230, "Sort: too many input results" },
578 { 231, "Sort: incompatible record formats" },
579 { 232, "Scan: term list not supported" },
580 { 233, "Scan: unsupported value of position-in-response" },
581 { 234, "Too many index terms processed" },
582 { 235, "Database does not exist" },
583 { 236, "Access to specified database denied" },
584 { 237, "Sort: illegal sort" },
585 { 238, "Record not available in requested syntax" },
586 { 239, "Record syntax not supported" },
587 { 240, "Scan: Resources exhausted looking for satisfying terms" },
588 { 241, "Scan: Beginning or end of term list" },
589 { 242, "Segmentation: max-segment-size too small to segment record" },
590 { 243, "Present: additional-ranges parameter not supported" },
591 { 244, "Present: comp-spec parameter not supported" },
592 { 245, "Type-1 query: restriction ('resultAttr') operand not supported" },
593 { 246, "Type-1 query: 'complex' attributeValue not supported" },
594 { 247, "Type-1 query: 'attributeSet' as part of AttributeElement not supported" },
595 { 1001, "Malformed APDU" },
596 { 1002, "ES: EXTERNAL form of Item Order request not supported" },
597 { 1003, "ES: Result set item form of Item Order request not supported" },
598 { 1004, "ES: Extended services not supported unless access control is in effect" },
599 { 1005, "Response records in Search response not supported" },
600 { 1006, "Response records in Search response not possible for specified database (or database combination)" },
601 { 1007, "No Explain server. Addinfo: pointers to servers that have a surrogate Explain database for this server" },
602 { 1008, "ES: missing mandatory parameter for specified function. Addinfo: parameter" },
603 { 1009, "ES: Item Order, unsupported OID in itemRequest. Addinfo: OID" },
604 { 1010, "Init/AC: Bad Userid" },
605 { 1011, "Init/AC: Bad Userid and/or Password" },
606 { 1012, "Init/AC: No searches remaining (pre-purchased searches exhausted)" },
607 { 1013, "Init/AC: Incorrect interface type (specified id valid only when used with a particular access method or client)" },
608 { 1014, "Init/AC: Authentication System error" },
609 { 1015, "Init/AC: Maximum number of simultaneous sessions for Userid" },
610 { 1016, "Init/AC: Blocked network address" },
611 { 1017, "Init/AC: No databases available for specified userId" },
612 { 1018, "Init/AC: System temporarily out of resources" },
613 { 1019, "Init/AC: System not available due to maintenance" },
614 { 1020, "Init/AC: System temporarily unavailable (Addinfo: when it's expected back up)" },
615 { 1021, "Init/AC: Account has expired" },
616 { 1022, "Init/AC: Password has expired so a new one must be supplied" },
617 { 1023, "Init/AC: Password has been changed by an administrator so a new one must be supplied" },
618 { 1024, "Unsupported Attribute" },
619 { 1025, "Service not supported for this database" },
620 { 1026, "Record cannot be opened because it is locked" },
621 { 1027, "SQL error" },
622 { 1028, "Record deleted" },
623 { 1029, "Scan: too many terms requested. Addinfo: max terms supported" },
624 { 1040, "ES: Invalid function" },
625 { 1041, "ES: Error in retention time" },
626 { 1042, "ES: Permissions data not understood" },
627 { 1043, "ES: Invalid OID for task specific parameters" },
628 { 1044, "ES: Invalid action" },
629 { 1045, "ES: Unknown schema" },
630 { 1046, "ES: Too many records in package" },
631 { 1047, "ES: Invalid wait action" },
632 { 1048, "ES: Cannot create task package -- exceeds maximum permissible size" },
633 { 1049, "ES: Cannot return task package -- exceeds maximum permissible size" },
634 { 1050, "ES: Extended services request too large" },
635 { 1051, "Scan: Attribute set id required -- not supplied" },
636 { 1052, "ES: Cannot process task package record -- exceeds maximum permissible record size for ES" },
637 { 1053, "ES: Cannot return task package record -- exceeds maximum permissible record size for ES response" },
638 { 1054, "Init: Required negotiation record not included" },
639 { 1055, "Init: negotiation option required" },
640 { 1056, "Attribute not supported for database" },
641 { 1057, "ES: Unsupported value of task package parameter" },
642 { 1058, "Duplicate Detection: Cannot dedup on requested record portion" },
643 { 1059, "Duplicate Detection: Requested detection criterion not supported" },
644 { 1060, "Duplicate Detection: Requested level of match not supported" },
645 { 1061, "Duplicate Detection: Requested regular expression not supported" },
646 { 1062, "Duplicate Detection: Cannot do clustering" },
647 { 1063, "Duplicate Detection: Retention criterion not supported" },
648 { 1064, "Duplicate Detection: Requested number (or percentage) of entries for retention too large" },
649 { 1065, "Duplicate Detection: Requested sort criterion not supported" },
650 { 1066, "CompSpec: Unknown schema, or schema not supported." },
651 { 1067, "Encapsulation: Encapsulated sequence of PDUs not supported" },
652 { 1068, "Encapsulation: Base operation (and encapsulated PDUs) not executed based on pre-screening analysis" },
653 { 1069, "No syntaxes available for this request" },
654 { 1070, "user not authorized to receive record(s) in requested syntax" },
655 { 1071, "preferredRecordSyntax not supplied" },
656 { 1072, "Query term includes characters that do not translate into the target character set" },
657 { 1073, "Database records do not contain data associated with access point" },
658 { 1074, "Proxy failure" },
659 { 0, NULL}
660 };
661
662
663 /*--- Included file: packet-z3950-hf.c ---*/
664 #line 1 "./asn1/z3950/packet-z3950-hf.c"
665 static int hf_z3950_OCLC_UserInformation_PDU = -1; /* OCLC_UserInformation */
666 static int hf_z3950_SutrsRecord_PDU = -1; /* SutrsRecord */
667 static int hf_z3950_OPACRecord_PDU = -1; /* OPACRecord */
668 static int hf_z3950_DiagnosticFormat_PDU = -1; /* DiagnosticFormat */
669 static int hf_z3950_Explain_Record_PDU = -1; /* Explain_Record */
670 static int hf_z3950_BriefBib_PDU = -1; /* BriefBib */
671 static int hf_z3950_GenericRecord_PDU = -1; /* GenericRecord */
672 static int hf_z3950_TaskPackage_PDU = -1; /* TaskPackage */
673 static int hf_z3950_PromptObject_PDU = -1; /* PromptObject */
674 static int hf_z3950_DES_RN_Object_PDU = -1; /* DES_RN_Object */
675 static int hf_z3950_KRBObject_PDU = -1; /* KRBObject */
676 static int hf_z3950_SearchInfoReport_PDU = -1; /* SearchInfoReport */
677 static int hf_z3950_initRequest = -1; /* InitializeRequest */
678 static int hf_z3950_initResponse = -1; /* InitializeResponse */
679 static int hf_z3950_searchRequest = -1; /* SearchRequest */
680 static int hf_z3950_searchResponse = -1; /* SearchResponse */
681 static int hf_z3950_presentRequest = -1; /* PresentRequest */
682 static int hf_z3950_presentResponse = -1; /* PresentResponse */
683 static int hf_z3950_deleteResultSetRequest = -1; /* DeleteResultSetRequest */
684 static int hf_z3950_deleteResultSetResponse = -1; /* DeleteResultSetResponse */
685 static int hf_z3950_accessControlRequest = -1; /* AccessControlRequest */
686 static int hf_z3950_accessControlResponse = -1; /* AccessControlResponse */
687 static int hf_z3950_resourceControlRequest = -1; /* ResourceControlRequest */
688 static int hf_z3950_resourceControlResponse = -1; /* ResourceControlResponse */
689 static int hf_z3950_triggerResourceControlRequest = -1; /* TriggerResourceControlRequest */
690 static int hf_z3950_resourceReportRequest = -1; /* ResourceReportRequest */
691 static int hf_z3950_resourceReportResponse = -1; /* ResourceReportResponse */
692 static int hf_z3950_scanRequest = -1; /* ScanRequest */
693 static int hf_z3950_scanResponse = -1; /* ScanResponse */
694 static int hf_z3950_sortRequest = -1; /* SortRequest */
695 static int hf_z3950_sortResponse = -1; /* SortResponse */
696 static int hf_z3950_segmentRequest = -1; /* Segment */
697 static int hf_z3950_extendedServicesRequest = -1; /* ExtendedServicesRequest */
698 static int hf_z3950_extendedServicesResponse = -1; /* ExtendedServicesResponse */
699 static int hf_z3950_close = -1; /* Close */
700 static int hf_z3950_referenceId = -1; /* ReferenceId */
701 static int hf_z3950_protocolVersion = -1; /* ProtocolVersion */
702 static int hf_z3950_options = -1; /* Options */
703 static int hf_z3950_preferredMessageSize = -1; /* INTEGER */
704 static int hf_z3950_exceptionalRecordSize = -1; /* INTEGER */
705 static int hf_z3950_idAuthentication = -1; /* T_idAuthentication */
706 static int hf_z3950_open = -1; /* VisibleString */
707 static int hf_z3950_idPass = -1; /* T_idPass */
708 static int hf_z3950_groupId = -1; /* InternationalString */
709 static int hf_z3950_userId = -1; /* InternationalString */
710 static int hf_z3950_password = -1; /* InternationalString */
711 static int hf_z3950_anonymous = -1; /* NULL */
712 static int hf_z3950_other = -1; /* EXTERNAL */
713 static int hf_z3950_implementationId = -1; /* InternationalString */
714 static int hf_z3950_implementationName = -1; /* InternationalString */
715 static int hf_z3950_implementationVersion = -1; /* InternationalString */
716 static int hf_z3950_userInformationField = -1; /* EXTERNAL */
717 static int hf_z3950_otherInfo = -1; /* OtherInformation */
718 static int hf_z3950_result = -1; /* BOOLEAN */
719 static int hf_z3950_smallSetUpperBound = -1; /* INTEGER */
720 static int hf_z3950_largeSetLowerBound = -1; /* INTEGER */
721 static int hf_z3950_mediumSetPresentNumber = -1; /* INTEGER */
722 static int hf_z3950_replaceIndicator = -1; /* BOOLEAN */
723 static int hf_z3950_resultSetName = -1; /* InternationalString */
724 static int hf_z3950_databaseNames = -1; /* SEQUENCE_OF_DatabaseName */
725 static int hf_z3950_databaseNames_item = -1; /* DatabaseName */
726 static int hf_z3950_smallSetElementSetNames = -1; /* ElementSetNames */
727 static int hf_z3950_mediumSetElementSetNames = -1; /* ElementSetNames */
728 static int hf_z3950_preferredRecordSyntax = -1; /* OBJECT_IDENTIFIER */
729 static int hf_z3950_query = -1; /* Query */
730 static int hf_z3950_additionalSearchInfo = -1; /* OtherInformation */
731 static int hf_z3950_type_0 = -1; /* T_type_0 */
732 static int hf_z3950_type_1 = -1; /* RPNQuery */
733 static int hf_z3950_type_2 = -1; /* OCTET_STRING */
734 static int hf_z3950_type_100 = -1; /* OCTET_STRING */
735 static int hf_z3950_type_101 = -1; /* RPNQuery */
736 static int hf_z3950_type_102 = -1; /* OCTET_STRING */
737 static int hf_z3950_attributeSet = -1; /* AttributeSetId */
738 static int hf_z3950_rpn = -1; /* RPNStructure */
739 static int hf_z3950_operandRpnOp = -1; /* Operand */
740 static int hf_z3950_rpnRpnOp = -1; /* T_rpnRpnOp */
741 static int hf_z3950_rpn1 = -1; /* RPNStructure */
742 static int hf_z3950_rpn2 = -1; /* RPNStructure */
743 static int hf_z3950_operatorRpnOp = -1; /* Operator */
744 static int hf_z3950_attrTerm = -1; /* AttributesPlusTerm */
745 static int hf_z3950_resultSet = -1; /* ResultSetId */
746 static int hf_z3950_resultAttr = -1; /* ResultSetPlusAttributes */
747 static int hf_z3950_attributes = -1; /* AttributeList */
748 static int hf_z3950_term = -1; /* Term */
749 static int hf_z3950_attributeList_item = -1; /* AttributeElement */
750 static int hf_z3950_general = -1; /* T_general */
751 static int hf_z3950_numeric = -1; /* INTEGER */
752 static int hf_z3950_characterString = -1; /* InternationalString */
753 static int hf_z3950_oid = -1; /* OBJECT_IDENTIFIER */
754 static int hf_z3950_dateTime = -1; /* GeneralizedTime */
755 static int hf_z3950_external = -1; /* EXTERNAL */
756 static int hf_z3950_integerAndUnit = -1; /* IntUnit */
757 static int hf_z3950_null = -1; /* NULL */
758 static int hf_z3950_and = -1; /* NULL */
759 static int hf_z3950_or = -1; /* NULL */
760 static int hf_z3950_and_not = -1; /* NULL */
761 static int hf_z3950_prox = -1; /* ProximityOperator */
762 static int hf_z3950_attributeElement_attributeType = -1; /* T_attributeElement_attributeType */
763 static int hf_z3950_attributeValue = -1; /* T_attributeValue */
764 static int hf_z3950_attributeValue_numeric = -1; /* T_attributeValue_numeric */
765 static int hf_z3950_attributeValue_complex = -1; /* T_attributeValue_complex */
766 static int hf_z3950_attributeValue_complex_list = -1; /* SEQUENCE_OF_StringOrNumeric */
767 static int hf_z3950_attributeValue_complex_list_item = -1; /* StringOrNumeric */
768 static int hf_z3950_semanticAction = -1; /* T_semanticAction */
769 static int hf_z3950_semanticAction_item = -1; /* INTEGER */
770 static int hf_z3950_exclusion = -1; /* BOOLEAN */
771 static int hf_z3950_distance = -1; /* INTEGER */
772 static int hf_z3950_ordered = -1; /* BOOLEAN */
773 static int hf_z3950_relationType = -1; /* T_relationType */
774 static int hf_z3950_proximityUnitCode = -1; /* T_proximityUnitCode */
775 static int hf_z3950_known = -1; /* KnownProximityUnit */
776 static int hf_z3950_private = -1; /* INTEGER */
777 static int hf_z3950_resultCount = -1; /* INTEGER */
778 static int hf_z3950_numberOfRecordsReturned = -1; /* INTEGER */
779 static int hf_z3950_nextResultSetPosition = -1; /* INTEGER */
780 static int hf_z3950_searchStatus = -1; /* BOOLEAN */
781 static int hf_z3950_search_resultSetStatus = -1; /* T_search_resultSetStatus */
782 static int hf_z3950_presentStatus = -1; /* PresentStatus */
783 static int hf_z3950_records = -1; /* Records */
784 static int hf_z3950_resultSetId = -1; /* ResultSetId */
785 static int hf_z3950_resultSetStartPoint = -1; /* INTEGER */
786 static int hf_z3950_numberOfRecordsRequested = -1; /* INTEGER */
787 static int hf_z3950_additionalRanges = -1; /* SEQUENCE_OF_Range */
788 static int hf_z3950_additionalRanges_item = -1; /* Range */
789 static int hf_z3950_recordComposition = -1; /* T_recordComposition */
790 static int hf_z3950_simple = -1; /* ElementSetNames */
791 static int hf_z3950_recordComposition_complex = -1; /* CompSpec */
792 static int hf_z3950_maxSegmentCount = -1; /* INTEGER */
793 static int hf_z3950_maxRecordSize = -1; /* INTEGER */
794 static int hf_z3950_maxSegmentSize = -1; /* INTEGER */
795 static int hf_z3950_segmentRecords = -1; /* SEQUENCE_OF_NamePlusRecord */
796 static int hf_z3950_segmentRecords_item = -1; /* NamePlusRecord */
797 static int hf_z3950_responseRecords = -1; /* SEQUENCE_OF_NamePlusRecord */
798 static int hf_z3950_responseRecords_item = -1; /* NamePlusRecord */
799 static int hf_z3950_nonSurrogateDiagnostic = -1; /* DefaultDiagFormat */
800 static int hf_z3950_multipleNonSurDiagnostics = -1; /* SEQUENCE_OF_DiagRec */
801 static int hf_z3950_multipleNonSurDiagnostics_item = -1; /* DiagRec */
802 static int hf_z3950_namePlusRecord_name = -1; /* DatabaseName */
803 static int hf_z3950_record = -1; /* T_record */
804 static int hf_z3950_retrievalRecord = -1; /* EXTERNAL */
805 static int hf_z3950_surrogateDiagnostic = -1; /* DiagRec */
806 static int hf_z3950_startingFragment = -1; /* FragmentSyntax */
807 static int hf_z3950_intermediateFragment = -1; /* FragmentSyntax */
808 static int hf_z3950_finalFragment = -1; /* FragmentSyntax */
809 static int hf_z3950_externallyTagged = -1; /* EXTERNAL */
810 static int hf_z3950_notExternallyTagged = -1; /* OCTET_STRING */
811 static int hf_z3950_defaultFormat = -1; /* DefaultDiagFormat */
812 static int hf_z3950_externallyDefined = -1; /* EXTERNAL */
813 static int hf_z3950_diagnosticSetId = -1; /* T_diagnosticSetId */
814 static int hf_z3950_condition = -1; /* T_condition */
815 static int hf_z3950_addinfo = -1; /* T_addinfo */
816 static int hf_z3950_v2Addinfo = -1; /* VisibleString */
817 static int hf_z3950_v3Addinfo = -1; /* InternationalString */
818 static int hf_z3950_startingPosition = -1; /* INTEGER */
819 static int hf_z3950_numberOfRecords = -1; /* INTEGER */
820 static int hf_z3950_genericElementSetName = -1; /* InternationalString */
821 static int hf_z3950_databaseSpecific = -1; /* T_databaseSpecific */
822 static int hf_z3950_databaseSpecific_item = -1; /* T_databaseSpecific_item */
823 static int hf_z3950_dbName = -1; /* DatabaseName */
824 static int hf_z3950_esn = -1; /* ElementSetName */
825 static int hf_z3950_selectAlternativeSyntax = -1; /* BOOLEAN */
826 static int hf_z3950_compSpec_generic = -1; /* Specification */
827 static int hf_z3950_dbSpecific = -1; /* T_dbSpecific */
828 static int hf_z3950_dbSpecific_item = -1; /* T_dbSpecific_item */
829 static int hf_z3950_db = -1; /* DatabaseName */
830 static int hf_z3950_spec = -1; /* Specification */
831 static int hf_z3950_compSpec_recordSyntax = -1; /* T_compSpec_recordSyntax */
832 static int hf_z3950_compSpec_recordSyntax_item = -1; /* OBJECT_IDENTIFIER */
833 static int hf_z3950_schema = -1; /* OBJECT_IDENTIFIER */
834 static int hf_z3950_specification_elementSpec = -1; /* T_specification_elementSpec */
835 static int hf_z3950_elementSetName = -1; /* InternationalString */
836 static int hf_z3950_externalEspec = -1; /* EXTERNAL */
837 static int hf_z3950_deleteFunction = -1; /* T_deleteFunction */
838 static int hf_z3950_resultSetList = -1; /* SEQUENCE_OF_ResultSetId */
839 static int hf_z3950_resultSetList_item = -1; /* ResultSetId */
840 static int hf_z3950_deleteOperationStatus = -1; /* DeleteSetStatus */
841 static int hf_z3950_deleteListStatuses = -1; /* ListStatuses */
842 static int hf_z3950_numberNotDeleted = -1; /* INTEGER */
843 static int hf_z3950_bulkStatuses = -1; /* ListStatuses */
844 static int hf_z3950_deleteMessage = -1; /* InternationalString */
845 static int hf_z3950_ListStatuses_item = -1; /* ListStatuses_item */
846 static int hf_z3950_listStatuses_id = -1; /* ResultSetId */
847 static int hf_z3950_status = -1; /* DeleteSetStatus */
848 static int hf_z3950_securityChallenge = -1; /* T_securityChallenge */
849 static int hf_z3950_simpleForm = -1; /* OCTET_STRING */
850 static int hf_z3950_securityChallengeResponse = -1; /* T_securityChallengeResponse */
851 static int hf_z3950_diagnostic = -1; /* DiagRec */
852 static int hf_z3950_suspendedFlag = -1; /* BOOLEAN */
853 static int hf_z3950_resourceReport = -1; /* ResourceReport */
854 static int hf_z3950_partialResultsAvailable = -1; /* T_partialResultsAvailable */
855 static int hf_z3950_resourceControlRequest_responseRequired = -1; /* BOOLEAN */
856 static int hf_z3950_triggeredRequestFlag = -1; /* BOOLEAN */
857 static int hf_z3950_continueFlag = -1; /* BOOLEAN */
858 static int hf_z3950_resultSetWanted = -1; /* BOOLEAN */
859 static int hf_z3950_requestedAction = -1; /* T_requestedAction */
860 static int hf_z3950_prefResourceReportFormat = -1; /* ResourceReportId */
861 static int hf_z3950_opId = -1; /* ReferenceId */
862 static int hf_z3950_resourceReportStatus = -1; /* T_resourceReportStatus */
863 static int hf_z3950_termListAndStartPoint = -1; /* AttributesPlusTerm */
864 static int hf_z3950_stepSize = -1; /* INTEGER */
865 static int hf_z3950_numberOfTermsRequested = -1; /* INTEGER */
866 static int hf_z3950_preferredPositionInResponse = -1; /* INTEGER */
867 static int hf_z3950_scanStatus = -1; /* T_scanStatus */
868 static int hf_z3950_numberOfEntriesReturned = -1; /* INTEGER */
869 static int hf_z3950_positionOfTerm = -1; /* INTEGER */
870 static int hf_z3950_scanResponse_entries = -1; /* ListEntries */
871 static int hf_z3950_listEntries_entries = -1; /* SEQUENCE_OF_Entry */
872 static int hf_z3950_listEntries_entries_item = -1; /* Entry */
873 static int hf_z3950_nonsurrogateDiagnostics = -1; /* SEQUENCE_OF_DiagRec */
874 static int hf_z3950_nonsurrogateDiagnostics_item = -1; /* DiagRec */
875 static int hf_z3950_termInfo = -1; /* TermInfo */
876 static int hf_z3950_displayTerm = -1; /* InternationalString */
877 static int hf_z3950_suggestedAttributes = -1; /* AttributeList */
878 static int hf_z3950_alternativeTerm = -1; /* SEQUENCE_OF_AttributesPlusTerm */
879 static int hf_z3950_alternativeTerm_item = -1; /* AttributesPlusTerm */
880 static int hf_z3950_globalOccurrences = -1; /* INTEGER */
881 static int hf_z3950_byAttributes = -1; /* OccurrenceByAttributes */
882 static int hf_z3950_otherTermInfo = -1; /* OtherInformation */
883 static int hf_z3950_OccurrenceByAttributes_item = -1; /* OccurrenceByAttributes_item */
884 static int hf_z3950_occurrences = -1; /* T_occurrences */
885 static int hf_z3950_global = -1; /* INTEGER */
886 static int hf_z3950_byDatabase = -1; /* T_byDatabase */
887 static int hf_z3950_byDatabase_item = -1; /* T_byDatabase_item */
888 static int hf_z3950_num = -1; /* INTEGER */
889 static int hf_z3950_otherDbInfo = -1; /* OtherInformation */
890 static int hf_z3950_otherOccurInfo = -1; /* OtherInformation */
891 static int hf_z3950_inputResultSetNames = -1; /* SEQUENCE_OF_InternationalString */
892 static int hf_z3950_inputResultSetNames_item = -1; /* InternationalString */
893 static int hf_z3950_sortedResultSetName = -1; /* InternationalString */
894 static int hf_z3950_sortSequence = -1; /* SEQUENCE_OF_SortKeySpec */
895 static int hf_z3950_sortSequence_item = -1; /* SortKeySpec */
896 static int hf_z3950_sortStatus = -1; /* T_sortStatus */
897 static int hf_z3950_sort_resultSetStatus = -1; /* T_sort_resultSetStatus */
898 static int hf_z3950_diagnostics = -1; /* SEQUENCE_OF_DiagRec */
899 static int hf_z3950_diagnostics_item = -1; /* DiagRec */
900 static int hf_z3950_sortElement = -1; /* SortElement */
901 static int hf_z3950_sortRelation = -1; /* T_sortRelation */
902 static int hf_z3950_caseSensitivity = -1; /* T_caseSensitivity */
903 static int hf_z3950_missingValueAction = -1; /* T_missingValueAction */
904 static int hf_z3950_abort = -1; /* NULL */
905 static int hf_z3950_missingValueData = -1; /* OCTET_STRING */
906 static int hf_z3950_sortElement_generic = -1; /* SortKey */
907 static int hf_z3950_datbaseSpecific = -1; /* T_datbaseSpecific */
908 static int hf_z3950_datbaseSpecific_item = -1; /* T_datbaseSpecific_item */
909 static int hf_z3950_databaseName = -1; /* DatabaseName */
910 static int hf_z3950_dbSort = -1; /* SortKey */
911 static int hf_z3950_sortfield = -1; /* InternationalString */
912 static int hf_z3950_sortKey_elementSpec = -1; /* Specification */
913 static int hf_z3950_sortAttributes = -1; /* T_sortAttributes */
914 static int hf_z3950_sortAttributes_id = -1; /* AttributeSetId */
915 static int hf_z3950_sortAttributes_list = -1; /* AttributeList */
916 static int hf_z3950_function = -1; /* T_function */
917 static int hf_z3950_packageType = -1; /* OBJECT_IDENTIFIER */
918 static int hf_z3950_packageName = -1; /* InternationalString */
919 static int hf_z3950_retentionTime = -1; /* IntUnit */
920 static int hf_z3950_permissions = -1; /* Permissions */
921 static int hf_z3950_extendedServicesRequest_description = -1; /* InternationalString */
922 static int hf_z3950_taskSpecificParameters = -1; /* EXTERNAL */
923 static int hf_z3950_waitAction = -1; /* T_waitAction */
924 static int hf_z3950_elements = -1; /* ElementSetName */
925 static int hf_z3950_operationStatus = -1; /* T_operationStatus */
926 static int hf_z3950_taskPackage = -1; /* EXTERNAL */
927 static int hf_z3950_Permissions_item = -1; /* Permissions_item */
928 static int hf_z3950_allowableFunctions = -1; /* T_allowableFunctions */
929 static int hf_z3950_allowableFunctions_item = -1; /* T_allowableFunctions_item */
930 static int hf_z3950_closeReason = -1; /* CloseReason */
931 static int hf_z3950_diagnosticInformation = -1; /* InternationalString */
932 static int hf_z3950_resourceReportFormat = -1; /* ResourceReportId */
933 static int hf_z3950_otherInformation_item = -1; /* T__untag_item */
934 static int hf_z3950_category = -1; /* InfoCategory */
935 static int hf_z3950_information = -1; /* T_information */
936 static int hf_z3950_characterInfo = -1; /* InternationalString */
937 static int hf_z3950_binaryInfo = -1; /* OCTET_STRING */
938 static int hf_z3950_externallyDefinedInfo = -1; /* EXTERNAL */
939 static int hf_z3950_categoryTypeId = -1; /* OBJECT_IDENTIFIER */
940 static int hf_z3950_categoryValue = -1; /* INTEGER */
941 static int hf_z3950_value = -1; /* INTEGER */
942 static int hf_z3950_unitUsed = -1; /* Unit */
943 static int hf_z3950_unitSystem = -1; /* InternationalString */
944 static int hf_z3950_unitType = -1; /* StringOrNumeric */
945 static int hf_z3950_unit = -1; /* StringOrNumeric */
946 static int hf_z3950_scaleFactor = -1; /* INTEGER */
947 static int hf_z3950_string = -1; /* InternationalString */
948 static int hf_z3950_motd = -1; /* VisibleString */
949 static int hf_z3950_dblist = -1; /* SEQUENCE_OF_DBName */
950 static int hf_z3950_dblist_item = -1; /* DBName */
951 static int hf_z3950_failReason = -1; /* BOOLEAN */
952 static int hf_z3950_oCLC_UserInformation_text = -1; /* VisibleString */
953 static int hf_z3950_bibliographicRecord = -1; /* EXTERNAL */
954 static int hf_z3950_holdingsData = -1; /* SEQUENCE_OF_HoldingsRecord */
955 static int hf_z3950_holdingsData_item = -1; /* HoldingsRecord */
956 static int hf_z3950_marcHoldingsRecord = -1; /* EXTERNAL */
957 static int hf_z3950_holdingsAndCirc = -1; /* HoldingsAndCircData */
958 static int hf_z3950_typeOfRecord = -1; /* InternationalString */
959 static int hf_z3950_encodingLevel = -1; /* InternationalString */
960 static int hf_z3950_format = -1; /* InternationalString */
961 static int hf_z3950_receiptAcqStatus = -1; /* InternationalString */
962 static int hf_z3950_generalRetention = -1; /* InternationalString */
963 static int hf_z3950_completeness = -1; /* InternationalString */
964 static int hf_z3950_dateOfReport = -1; /* InternationalString */
965 static int hf_z3950_nucCode = -1; /* InternationalString */
966 static int hf_z3950_localLocation = -1; /* InternationalString */
967 static int hf_z3950_shelvingLocation = -1; /* InternationalString */
968 static int hf_z3950_callNumber = -1; /* InternationalString */
969 static int hf_z3950_shelvingData = -1; /* InternationalString */
970 static int hf_z3950_copyNumber = -1; /* InternationalString */
971 static int hf_z3950_publicNote = -1; /* InternationalString */
972 static int hf_z3950_reproductionNote = -1; /* InternationalString */
973 static int hf_z3950_termsUseRepro = -1; /* InternationalString */
974 static int hf_z3950_enumAndChron = -1; /* InternationalString */
975 static int hf_z3950_volumes = -1; /* SEQUENCE_OF_Volume */
976 static int hf_z3950_volumes_item = -1; /* Volume */
977 static int hf_z3950_circulationData = -1; /* SEQUENCE_OF_CircRecord */
978 static int hf_z3950_circulationData_item = -1; /* CircRecord */
979 static int hf_z3950_enumeration = -1; /* InternationalString */
980 static int hf_z3950_chronology = -1; /* InternationalString */
981 static int hf_z3950_availableNow = -1; /* BOOLEAN */
982 static int hf_z3950_availablityDate = -1; /* InternationalString */
983 static int hf_z3950_availableThru = -1; /* InternationalString */
984 static int hf_z3950_circRecord_restrictions = -1; /* InternationalString */
985 static int hf_z3950_itemId = -1; /* InternationalString */
986 static int hf_z3950_renewable = -1; /* BOOLEAN */
987 static int hf_z3950_onHold = -1; /* BOOLEAN */
988 static int hf_z3950_midspine = -1; /* InternationalString */
989 static int hf_z3950_temporaryLocation = -1; /* InternationalString */
990 static int hf_z3950_DiagnosticFormat_item = -1; /* DiagnosticFormat_item */
991 static int hf_z3950_diagnosticFormat_item_diagnostic = -1; /* T_diagnosticFormat_item_diagnostic */
992 static int hf_z3950_defaultDiagRec = -1; /* DefaultDiagFormat */
993 static int hf_z3950_explicitDiagnostic = -1; /* DiagFormat */
994 static int hf_z3950_message = -1; /* InternationalString */
995 static int hf_z3950_tooMany = -1; /* T_tooMany */
996 static int hf_z3950_tooManyWhat = -1; /* T_tooManyWhat */
997 static int hf_z3950_max = -1; /* INTEGER */
998 static int hf_z3950_badSpec = -1; /* T_badSpec */
999 static int hf_z3950_goodOnes = -1; /* SEQUENCE_OF_Specification */
1000 static int hf_z3950_goodOnes_item = -1; /* Specification */
1001 static int hf_z3950_dbUnavail = -1; /* T_dbUnavail */
1002 static int hf_z3950_why = -1; /* T_why */
1003 static int hf_z3950_reasonCode = -1; /* T_reasonCode */
1004 static int hf_z3950_unSupOp = -1; /* T_unSupOp */
1005 static int hf_z3950_attribute = -1; /* T_attribute */
1006 static int hf_z3950_id = -1; /* OBJECT_IDENTIFIER */
1007 static int hf_z3950_type = -1; /* INTEGER */
1008 static int hf_z3950_attCombo = -1; /* T_attCombo */
1009 static int hf_z3950_unsupportedCombination = -1; /* AttributeList */
1010 static int hf_z3950_recommendedAlternatives = -1; /* SEQUENCE_OF_AttributeList */
1011 static int hf_z3950_recommendedAlternatives_item = -1; /* AttributeList */
1012 static int hf_z3950_diagFormat_term = -1; /* T_diagFormat_term */
1013 static int hf_z3950_problem = -1; /* T_problem */
1014 static int hf_z3950_diagFormat_proximity = -1; /* T_diagFormat_proximity */
1015 static int hf_z3950_resultSets = -1; /* NULL */
1016 static int hf_z3950_badSet = -1; /* InternationalString */
1017 static int hf_z3950_relation = -1; /* INTEGER */
1018 static int hf_z3950_diagFormat_proximity_unit = -1; /* INTEGER */
1019 static int hf_z3950_diagFormat_proximity_ordered = -1; /* NULL */
1020 static int hf_z3950_diagFormat_proximity_exclusion = -1; /* NULL */
1021 static int hf_z3950_scan = -1; /* T_scan */
1022 static int hf_z3950_nonZeroStepSize = -1; /* NULL */
1023 static int hf_z3950_specifiedStepSize = -1; /* NULL */
1024 static int hf_z3950_termList1 = -1; /* NULL */
1025 static int hf_z3950_termList2 = -1; /* SEQUENCE_OF_AttributeList */
1026 static int hf_z3950_termList2_item = -1; /* AttributeList */
1027 static int hf_z3950_posInResponse = -1; /* T_posInResponse */
1028 static int hf_z3950_resources = -1; /* NULL */
1029 static int hf_z3950_endOfList = -1; /* NULL */
1030 static int hf_z3950_sort = -1; /* T_sort */
1031 static int hf_z3950_sequence = -1; /* NULL */
1032 static int hf_z3950_noRsName = -1; /* NULL */
1033 static int hf_z3950_diagFormat_sort_tooMany = -1; /* INTEGER */
1034 static int hf_z3950_incompatible = -1; /* NULL */
1035 static int hf_z3950_generic = -1; /* NULL */
1036 static int hf_z3950_diagFormat_sort_dbSpecific = -1; /* NULL */
1037 static int hf_z3950_key = -1; /* T_key */
1038 static int hf_z3950_action = -1; /* NULL */
1039 static int hf_z3950_illegal = -1; /* T_illegal */
1040 static int hf_z3950_inputTooLarge = -1; /* SEQUENCE_OF_InternationalString */
1041 static int hf_z3950_inputTooLarge_item = -1; /* InternationalString */
1042 static int hf_z3950_aggregateTooLarge = -1; /* NULL */
1043 static int hf_z3950_segmentation = -1; /* T_segmentation */
1044 static int hf_z3950_segmentCount = -1; /* NULL */
1045 static int hf_z3950_segmentSize = -1; /* INTEGER */
1046 static int hf_z3950_extServices = -1; /* T_extServices */
1047 static int hf_z3950_req = -1; /* T_req */
1048 static int hf_z3950_permission = -1; /* T_permission */
1049 static int hf_z3950_immediate = -1; /* T_immediate */
1050 static int hf_z3950_accessCtrl = -1; /* T_accessCtrl */
1051 static int hf_z3950_noUser = -1; /* NULL */
1052 static int hf_z3950_refused = -1; /* NULL */
1053 static int hf_z3950_diagFormat_accessCtrl_simple = -1; /* NULL */
1054 static int hf_z3950_diagFormat_accessCtrl_oid = -1; /* T_diagFormat_accessCtrl_oid */
1055 static int hf_z3950_diagFormat_accessCtrl_oid_item = -1; /* OBJECT_IDENTIFIER */
1056 static int hf_z3950_alternative = -1; /* T_alternative */
1057 static int hf_z3950_alternative_item = -1; /* OBJECT_IDENTIFIER */
1058 static int hf_z3950_pwdInv = -1; /* NULL */
1059 static int hf_z3950_pwdExp = -1; /* NULL */
1060 static int hf_z3950_diagFormat_recordSyntax = -1; /* T_diagFormat_recordSyntax */
1061 static int hf_z3950_unsupportedSyntax = -1; /* OBJECT_IDENTIFIER */
1062 static int hf_z3950_suggestedAlternatives = -1; /* T_suggestedAlternatives */
1063 static int hf_z3950_suggestedAlternatives_item = -1; /* OBJECT_IDENTIFIER */
1064 static int hf_z3950_targetInfo = -1; /* TargetInfo */
1065 static int hf_z3950_databaseInfo = -1; /* DatabaseInfo */
1066 static int hf_z3950_schemaInfo = -1; /* SchemaInfo */
1067 static int hf_z3950_tagSetInfo = -1; /* TagSetInfo */
1068 static int hf_z3950_recordSyntaxInfo = -1; /* RecordSyntaxInfo */
1069 static int hf_z3950_attributeSetInfo = -1; /* AttributeSetInfo */
1070 static int hf_z3950_termListInfo = -1; /* TermListInfo */
1071 static int hf_z3950_extendedServicesInfo = -1; /* ExtendedServicesInfo */
1072 static int hf_z3950_attributeDetails = -1; /* AttributeDetails */
1073 static int hf_z3950_termListDetails = -1; /* TermListDetails */
1074 static int hf_z3950_elementSetDetails = -1; /* ElementSetDetails */
1075 static int hf_z3950_retrievalRecordDetails = -1; /* RetrievalRecordDetails */
1076 static int hf_z3950_sortDetails = -1; /* SortDetails */
1077 static int hf_z3950_processing = -1; /* ProcessingInformation */
1078 static int hf_z3950_variants = -1; /* VariantSetInfo */
1079 static int hf_z3950_units = -1; /* UnitInfo */
1080 static int hf_z3950_categoryList = -1; /* CategoryList */
1081 static int hf_z3950_commonInfo = -1; /* CommonInfo */
1082 static int hf_z3950_name = -1; /* InternationalString */
1083 static int hf_z3950_recent_news = -1; /* HumanString */
1084 static int hf_z3950_icon = -1; /* IconObject */
1085 static int hf_z3950_namedResultSets = -1; /* BOOLEAN */
1086 static int hf_z3950_multipleDBsearch = -1; /* BOOLEAN */
1087 static int hf_z3950_maxResultSets = -1; /* INTEGER */
1088 static int hf_z3950_maxResultSize = -1; /* INTEGER */
1089 static int hf_z3950_maxTerms = -1; /* INTEGER */
1090 static int hf_z3950_timeoutInterval = -1; /* IntUnit */
1091 static int hf_z3950_welcomeMessage = -1; /* HumanString */
1092 static int hf_z3950_contactInfo = -1; /* ContactInfo */
1093 static int hf_z3950_description = -1; /* HumanString */
1094 static int hf_z3950_nicknames = -1; /* SEQUENCE_OF_InternationalString */
1095 static int hf_z3950_nicknames_item = -1; /* InternationalString */
1096 static int hf_z3950_usage_restrictions = -1; /* HumanString */
1097 static int hf_z3950_paymentAddr = -1; /* HumanString */
1098 static int hf_z3950_hours = -1; /* HumanString */
1099 static int hf_z3950_dbCombinations = -1; /* SEQUENCE_OF_DatabaseList */
1100 static int hf_z3950_dbCombinations_item = -1; /* DatabaseList */
1101 static int hf_z3950_addresses = -1; /* SEQUENCE_OF_NetworkAddress */
1102 static int hf_z3950_addresses_item = -1; /* NetworkAddress */
1103 static int hf_z3950_languages = -1; /* SEQUENCE_OF_InternationalString */
1104 static int hf_z3950_languages_item = -1; /* InternationalString */
1105 static int hf_z3950_commonAccessInfo = -1; /* AccessInfo */
1106 static int hf_z3950_databaseInfo_name = -1; /* DatabaseName */
1107 static int hf_z3950_explainDatabase = -1; /* NULL */
1108 static int hf_z3950_databaseInfo_nicknames = -1; /* SEQUENCE_OF_DatabaseName */
1109 static int hf_z3950_databaseInfo_nicknames_item = -1; /* DatabaseName */
1110 static int hf_z3950_user_fee = -1; /* BOOLEAN */
1111 static int hf_z3950_available = -1; /* BOOLEAN */
1112 static int hf_z3950_titleString = -1; /* HumanString */
1113 static int hf_z3950_keywords = -1; /* SEQUENCE_OF_HumanString */
1114 static int hf_z3950_keywords_item = -1; /* HumanString */
1115 static int hf_z3950_associatedDbs = -1; /* DatabaseList */
1116 static int hf_z3950_subDbs = -1; /* DatabaseList */
1117 static int hf_z3950_disclaimers = -1; /* HumanString */
1118 static int hf_z3950_news = -1; /* HumanString */
1119 static int hf_z3950_recordCount = -1; /* T_recordCount */
1120 static int hf_z3950_actualNumber = -1; /* INTEGER */
1121 static int hf_z3950_approxNumber = -1; /* INTEGER */
1122 static int hf_z3950_defaultOrder = -1; /* HumanString */
1123 static int hf_z3950_avRecordSize = -1; /* INTEGER */
1124 static int hf_z3950_bestTime = -1; /* HumanString */
1125 static int hf_z3950_lastUpdate = -1; /* GeneralizedTime */
1126 static int hf_z3950_updateInterval = -1; /* IntUnit */
1127 static int hf_z3950_coverage = -1; /* HumanString */
1128 static int hf_z3950_proprietary = -1; /* BOOLEAN */
1129 static int hf_z3950_copyrightText = -1; /* HumanString */
1130 static int hf_z3950_copyrightNotice = -1; /* HumanString */
1131 static int hf_z3950_producerContactInfo = -1; /* ContactInfo */
1132 static int hf_z3950_supplierContactInfo = -1; /* ContactInfo */
1133 static int hf_z3950_submissionContactInfo = -1; /* ContactInfo */
1134 static int hf_z3950_accessInfo = -1; /* AccessInfo */
1135 static int hf_z3950_tagTypeMapping = -1; /* T_tagTypeMapping */
1136 static int hf_z3950_tagTypeMapping_item = -1; /* T_tagTypeMapping_item */
1137 static int hf_z3950_tagType = -1; /* INTEGER */
1138 static int hf_z3950_tagSet = -1; /* OBJECT_IDENTIFIER */
1139 static int hf_z3950_defaultTagType = -1; /* NULL */
1140 static int hf_z3950_recordStructure = -1; /* SEQUENCE_OF_ElementInfo */
1141 static int hf_z3950_recordStructure_item = -1; /* ElementInfo */
1142 static int hf_z3950_elementName = -1; /* InternationalString */
1143 static int hf_z3950_elementTagPath = -1; /* Path */
1144 static int hf_z3950_elementInfo_dataType = -1; /* ElementDataType */
1145 static int hf_z3950_required = -1; /* BOOLEAN */
1146 static int hf_z3950_repeatable = -1; /* BOOLEAN */
1147 static int hf_z3950_Path_item = -1; /* Path_item */
1148 static int hf_z3950_tagValue = -1; /* StringOrNumeric */
1149 static int hf_z3950_primitive = -1; /* PrimitiveDataType */
1150 static int hf_z3950_structured = -1; /* SEQUENCE_OF_ElementInfo */
1151 static int hf_z3950_structured_item = -1; /* ElementInfo */
1152 static int hf_z3950_tagSetInfo_elements = -1; /* T_tagSetInfo_elements */
1153 static int hf_z3950_tagSetInfo_elements_item = -1; /* T_tagSetInfo_elements_item */
1154 static int hf_z3950_elementname = -1; /* InternationalString */
1155 static int hf_z3950_elementTag = -1; /* StringOrNumeric */
1156 static int hf_z3950_dataType = -1; /* PrimitiveDataType */
1157 static int hf_z3950_otherTagInfo = -1; /* OtherInformation */
1158 static int hf_z3950_recordSyntax = -1; /* OBJECT_IDENTIFIER */
1159 static int hf_z3950_transferSyntaxes = -1; /* T_transferSyntaxes */
1160 static int hf_z3950_transferSyntaxes_item = -1; /* OBJECT_IDENTIFIER */
1161 static int hf_z3950_asn1Module = -1; /* InternationalString */
1162 static int hf_z3950_abstractStructure = -1; /* SEQUENCE_OF_ElementInfo */
1163 static int hf_z3950_abstractStructure_item = -1; /* ElementInfo */
1164 static int hf_z3950_attributeSetInfo_attributes = -1; /* SEQUENCE_OF_AttributeType */
1165 static int hf_z3950_attributeSetInfo_attributes_item = -1; /* AttributeType */
1166 static int hf_z3950_attributeType = -1; /* INTEGER */
1167 static int hf_z3950_attributeValues = -1; /* SEQUENCE_OF_AttributeDescription */
1168 static int hf_z3950_attributeValues_item = -1; /* AttributeDescription */
1169 static int hf_z3950_attributeDescription_attributeValue = -1; /* StringOrNumeric */
1170 static int hf_z3950_equivalentAttributes = -1; /* SEQUENCE_OF_StringOrNumeric */
1171 static int hf_z3950_equivalentAttributes_item = -1; /* StringOrNumeric */
1172 static int hf_z3950_termLists = -1; /* T_termLists */
1173 static int hf_z3950_termLists_item = -1; /* T_termLists_item */
1174 static int hf_z3950_title = -1; /* HumanString */
1175 static int hf_z3950_searchCost = -1; /* T_searchCost */
1176 static int hf_z3950_scanable = -1; /* BOOLEAN */
1177 static int hf_z3950_broader = -1; /* SEQUENCE_OF_InternationalString */
1178 static int hf_z3950_broader_item = -1; /* InternationalString */
1179 static int hf_z3950_narrower = -1; /* SEQUENCE_OF_InternationalString */
1180 static int hf_z3950_narrower_item = -1; /* InternationalString */
1181 static int hf_z3950_extendedServicesInfo_type = -1; /* OBJECT_IDENTIFIER */
1182 static int hf_z3950_privateType = -1; /* BOOLEAN */
1183 static int hf_z3950_restrictionsApply = -1; /* BOOLEAN */
1184 static int hf_z3950_feeApply = -1; /* BOOLEAN */
1185 static int hf_z3950_retentionSupported = -1; /* BOOLEAN */
1186 static int hf_z3950_extendedServicesInfo_waitAction = -1; /* T_extendedServicesInfo_waitAction */
1187 static int hf_z3950_specificExplain = -1; /* EXTERNAL */
1188 static int hf_z3950_esASN = -1; /* InternationalString */
1189 static int hf_z3950_attributesBySet = -1; /* SEQUENCE_OF_AttributeSetDetails */
1190 static int hf_z3950_attributesBySet_item = -1; /* AttributeSetDetails */
1191 static int hf_z3950_attributeCombinations = -1; /* AttributeCombinations */
1192 static int hf_z3950_attributesByType = -1; /* SEQUENCE_OF_AttributeTypeDetails */
1193 static int hf_z3950_attributesByType_item = -1; /* AttributeTypeDetails */
1194 static int hf_z3950_defaultIfOmitted = -1; /* OmittedAttributeInterpretation */
1195 static int hf_z3950_attributeTypeDetails_attributeValues = -1; /* SEQUENCE_OF_AttributeValue */
1196 static int hf_z3950_attributeTypeDetails_attributeValues_item = -1; /* AttributeValue */
1197 static int hf_z3950_defaultValue = -1; /* StringOrNumeric */
1198 static int hf_z3950_defaultDescription = -1; /* HumanString */
1199 static int hf_z3950_attributeValue_value = -1; /* StringOrNumeric */
1200 static int hf_z3950_subAttributes = -1; /* SEQUENCE_OF_StringOrNumeric */
1201 static int hf_z3950_subAttributes_item = -1; /* StringOrNumeric */
1202 static int hf_z3950_superAttributes = -1; /* SEQUENCE_OF_StringOrNumeric */
1203 static int hf_z3950_superAttributes_item = -1; /* StringOrNumeric */
1204 static int hf_z3950_partialSupport = -1; /* NULL */
1205 static int hf_z3950_termListName = -1; /* InternationalString */
1206 static int hf_z3950_termListDetails_attributes = -1; /* AttributeCombinations */
1207 static int hf_z3950_scanInfo = -1; /* T_scanInfo */
1208 static int hf_z3950_maxStepSize = -1; /* INTEGER */
1209 static int hf_z3950_collatingSequence = -1; /* HumanString */
1210 static int hf_z3950_increasing = -1; /* BOOLEAN */
1211 static int hf_z3950_estNumberTerms = -1; /* INTEGER */
1212 static int hf_z3950_sampleTerms = -1; /* SEQUENCE_OF_Term */
1213 static int hf_z3950_sampleTerms_item = -1; /* Term */
1214 static int hf_z3950_elementSetDetails_elementSetName = -1; /* ElementSetName */
1215 static int hf_z3950_detailsPerElement = -1; /* SEQUENCE_OF_PerElementDetails */
1216 static int hf_z3950_detailsPerElement_item = -1; /* PerElementDetails */
1217 static int hf_z3950_recordTag = -1; /* RecordTag */
1218 static int hf_z3950_schemaTags = -1; /* SEQUENCE_OF_Path */
1219 static int hf_z3950_schemaTags_item = -1; /* Path */
1220 static int hf_z3950_maxSize = -1; /* INTEGER */
1221 static int hf_z3950_minSize = -1; /* INTEGER */
1222 static int hf_z3950_avgSize = -1; /* INTEGER */
1223 static int hf_z3950_fixedSize = -1; /* INTEGER */
1224 static int hf_z3950_contents = -1; /* HumanString */
1225 static int hf_z3950_billingInfo = -1; /* HumanString */
1226 static int hf_z3950_restrictions = -1; /* HumanString */
1227 static int hf_z3950_alternateNames = -1; /* SEQUENCE_OF_InternationalString */
1228 static int hf_z3950_alternateNames_item = -1; /* InternationalString */
1229 static int hf_z3950_genericNames = -1; /* SEQUENCE_OF_InternationalString */
1230 static int hf_z3950_genericNames_item = -1; /* InternationalString */
1231 static int hf_z3950_searchAccess = -1; /* AttributeCombinations */
1232 static int hf_z3950_qualifier = -1; /* StringOrNumeric */
1233 static int hf_z3950_sortKeys = -1; /* SEQUENCE_OF_SortKeyDetails */
1234 static int hf_z3950_sortKeys_item = -1; /* SortKeyDetails */
1235 static int hf_z3950_elementSpecifications = -1; /* SEQUENCE_OF_Specification */
1236 static int hf_z3950_elementSpecifications_item = -1; /* Specification */
1237 static int hf_z3950_attributeSpecifications = -1; /* AttributeCombinations */
1238 static int hf_z3950_sortType = -1; /* T_sortType */
1239 static int hf_z3950_character = -1; /* NULL */
1240 static int hf_z3950_sortKeyDetails_sortType_numeric = -1; /* NULL */
1241 static int hf_z3950_sortKeyDetails_sortType_structured = -1; /* HumanString */
1242 static int hf_z3950_sortKeyDetails_caseSensitivity = -1; /* T_sortKeyDetails_caseSensitivity */
1243 static int hf_z3950_processingContext = -1; /* T_processingContext */
1244 static int hf_z3950_instructions = -1; /* EXTERNAL */
1245 static int hf_z3950_variantSet = -1; /* OBJECT_IDENTIFIER */
1246 static int hf_z3950_variantSetInfo_variants = -1; /* SEQUENCE_OF_VariantClass */
1247 static int hf_z3950_variantSetInfo_variants_item = -1; /* VariantClass */
1248 static int hf_z3950_variantClass = -1; /* INTEGER */
1249 static int hf_z3950_variantTypes = -1; /* SEQUENCE_OF_VariantType */
1250 static int hf_z3950_variantTypes_item = -1; /* VariantType */
1251 static int hf_z3950_variantType = -1; /* INTEGER */
1252 static int hf_z3950_variantValue = -1; /* VariantValue */
1253 static int hf_z3950_values = -1; /* ValueSet */
1254 static int hf_z3950_range = -1; /* ValueRange */
1255 static int hf_z3950_enumerated = -1; /* SEQUENCE_OF_ValueDescription */
1256 static int hf_z3950_enumerated_item = -1; /* ValueDescription */
1257 static int hf_z3950_lower = -1; /* ValueDescription */
1258 static int hf_z3950_upper = -1; /* ValueDescription */
1259 static int hf_z3950_integer = -1; /* INTEGER */
1260 static int hf_z3950_octets = -1; /* OCTET_STRING */
1261 static int hf_z3950_valueDescription_unit = -1; /* Unit */
1262 static int hf_z3950_valueAndUnit = -1; /* IntUnit */
1263 static int hf_z3950_unitInfo_units = -1; /* SEQUENCE_OF_UnitType */
1264 static int hf_z3950_unitInfo_units_item = -1; /* UnitType */
1265 static int hf_z3950_unitType_units = -1; /* SEQUENCE_OF_Units */
1266 static int hf_z3950_unitType_units_item = -1; /* Units */
1267 static int hf_z3950_categories = -1; /* SEQUENCE_OF_CategoryInfo */
1268 static int hf_z3950_categories_item = -1; /* CategoryInfo */
1269 static int hf_z3950_categoryInfo_category = -1; /* InternationalString */
1270 static int hf_z3950_originalCategory = -1; /* InternationalString */
1271 static int hf_z3950_dateAdded = -1; /* GeneralizedTime */
1272 static int hf_z3950_dateChanged = -1; /* GeneralizedTime */
1273 static int hf_z3950_expiry = -1; /* GeneralizedTime */
1274 static int hf_z3950_humanString_Language = -1; /* LanguageCode */
1275 static int hf_z3950_HumanString_item = -1; /* HumanString_item */
1276 static int hf_z3950_language = -1; /* LanguageCode */
1277 static int hf_z3950_text = -1; /* InternationalString */
1278 static int hf_z3950_IconObject_item = -1; /* IconObject_item */
1279 static int hf_z3950_bodyType = -1; /* T_bodyType */
1280 static int hf_z3950_ianaType = -1; /* InternationalString */
1281 static int hf_z3950_z3950type = -1; /* InternationalString */
1282 static int hf_z3950_otherType = -1; /* InternationalString */
1283 static int hf_z3950_content = -1; /* OCTET_STRING */
1284 static int hf_z3950_address = -1; /* HumanString */
1285 static int hf_z3950_email = -1; /* InternationalString */
1286 static int hf_z3950_phone = -1; /* InternationalString */
1287 static int hf_z3950_internetAddress = -1; /* T_internetAddress */
1288 static int hf_z3950_hostAddress = -1; /* InternationalString */
1289 static int hf_z3950_port = -1; /* INTEGER */
1290 static int hf_z3950_osiPresentationAddress = -1; /* T_osiPresentationAddress */
1291 static int hf_z3950_pSel = -1; /* InternationalString */
1292 static int hf_z3950_sSel = -1; /* InternationalString */
1293 static int hf_z3950_tSel = -1; /* InternationalString */
1294 static int hf_z3950_nSap = -1; /* InternationalString */
1295 static int hf_z3950_networkAddress_other = -1; /* T_networkAddress_other */
1296 static int hf_z3950_networkAddress_other_type = -1; /* InternationalString */
1297 static int hf_z3950_networkAddress_other_address = -1; /* InternationalString */
1298 static int hf_z3950_queryTypesSupported = -1; /* SEQUENCE_OF_QueryTypeDetails */
1299 static int hf_z3950_queryTypesSupported_item = -1; /* QueryTypeDetails */
1300 static int hf_z3950_diagnosticsSets = -1; /* T_diagnosticsSets */
1301 static int hf_z3950_diagnosticsSets_item = -1; /* OBJECT_IDENTIFIER */
1302 static int hf_z3950_attributeSetIds = -1; /* SEQUENCE_OF_AttributeSetId */
1303 static int hf_z3950_attributeSetIds_item = -1; /* AttributeSetId */
1304 static int hf_z3950_schemas = -1; /* T_schemas */
1305 static int hf_z3950_schemas_item = -1; /* OBJECT_IDENTIFIER */
1306 static int hf_z3950_recordSyntaxes = -1; /* T_recordSyntaxes */
1307 static int hf_z3950_recordSyntaxes_item = -1; /* OBJECT_IDENTIFIER */
1308 static int hf_z3950_resourceChallenges = -1; /* T_resourceChallenges */
1309 static int hf_z3950_resourceChallenges_item = -1; /* OBJECT_IDENTIFIER */
1310 static int hf_z3950_restrictedAccess = -1; /* AccessRestrictions */
1311 static int hf_z3950_costInfo = -1; /* Costs */
1312 static int hf_z3950_variantSets = -1; /* T_variantSets */
1313 static int hf_z3950_variantSets_item = -1; /* OBJECT_IDENTIFIER */
1314 static int hf_z3950_elementSetNames = -1; /* SEQUENCE_OF_ElementSetName */
1315 static int hf_z3950_elementSetNames_item = -1; /* ElementSetName */
1316 static int hf_z3950_unitSystems = -1; /* SEQUENCE_OF_InternationalString */
1317 static int hf_z3950_unitSystems_item = -1; /* InternationalString */
1318 static int hf_z3950_queryTypeDetails_private = -1; /* PrivateCapabilities */
1319 static int hf_z3950_queryTypeDetails_rpn = -1; /* RpnCapabilities */
1320 static int hf_z3950_iso8777 = -1; /* Iso8777Capabilities */
1321 static int hf_z3950_z39_58 = -1; /* HumanString */
1322 static int hf_z3950_erpn = -1; /* RpnCapabilities */
1323 static int hf_z3950_rankedList = -1; /* HumanString */
1324 static int hf_z3950_privateCapabilities_operators = -1; /* T_privateCapabilities_operators */
1325 static int hf_z3950_privateCapabilities_operators_item = -1; /* T_privateCapabilities_operators_item */
1326 static int hf_z3950_operator = -1; /* InternationalString */
1327 static int hf_z3950_searchKeys = -1; /* SEQUENCE_OF_SearchKey */
1328 static int hf_z3950_searchKeys_item = -1; /* SearchKey */
1329 static int hf_z3950_privateCapabilities_description = -1; /* SEQUENCE_OF_HumanString */
1330 static int hf_z3950_privateCapabilities_description_item = -1; /* HumanString */
1331 static int hf_z3950_operators = -1; /* T_operators */
1332 static int hf_z3950_operators_item = -1; /* INTEGER */
1333 static int hf_z3950_resultSetAsOperandSupported = -1; /* BOOLEAN */
1334 static int hf_z3950_restrictionOperandSupported = -1; /* BOOLEAN */
1335 static int hf_z3950_proximity = -1; /* ProximitySupport */
1336 static int hf_z3950_anySupport = -1; /* BOOLEAN */
1337 static int hf_z3950_unitsSupported = -1; /* T_unitsSupported */
1338 static int hf_z3950_unitsSupported_item = -1; /* T_unitsSupported_item */
1339 static int hf_z3950_proximitySupport_unitsSupported_item_known = -1; /* INTEGER */
1340 static int hf_z3950_proximitySupport_unitsSupported_item_private = -1; /* T_proximitySupport_unitsSupported_item_private */
1341 static int hf_z3950_proximitySupport_unitsSupported_item_private_unit = -1; /* INTEGER */
1342 static int hf_z3950_searchKey = -1; /* InternationalString */
1343 static int hf_z3950_AccessRestrictions_item = -1; /* AccessRestrictions_item */
1344 static int hf_z3950_accessType = -1; /* T_accessType */
1345 static int hf_z3950_accessText = -1; /* HumanString */
1346 static int hf_z3950_accessChallenges = -1; /* T_accessChallenges */
1347 static int hf_z3950_accessChallenges_item = -1; /* OBJECT_IDENTIFIER */
1348 static int hf_z3950_connectCharge = -1; /* Charge */
1349 static int hf_z3950_connectTime = -1; /* Charge */
1350 static int hf_z3950_displayCharge = -1; /* Charge */
1351 static int hf_z3950_searchCharge = -1; /* Charge */
1352 static int hf_z3950_subscriptCharge = -1; /* Charge */
1353 static int hf_z3950_otherCharges = -1; /* T_otherCharges */
1354 static int hf_z3950_otherCharges_item = -1; /* T_otherCharges_item */
1355 static int hf_z3950_forWhat = -1; /* HumanString */
1356 static int hf_z3950_charge = -1; /* Charge */
1357 static int hf_z3950_cost = -1; /* IntUnit */
1358 static int hf_z3950_perWhat = -1; /* Unit */
1359 static int hf_z3950_charge_text = -1; /* HumanString */
1360 static int hf_z3950_DatabaseList_item = -1; /* DatabaseName */
1361 static int hf_z3950_defaultAttributeSet = -1; /* AttributeSetId */
1362 static int hf_z3950_legalCombinations = -1; /* SEQUENCE_OF_AttributeCombination */
1363 static int hf_z3950_legalCombinations_item = -1; /* AttributeCombination */
1364 static int hf_z3950_AttributeCombination_item = -1; /* AttributeOccurrence */
1365 static int hf_z3950_mustBeSupplied = -1; /* NULL */
1366 static int hf_z3950_attributeOccurrence_attributeValues = -1; /* T_attributeOccurrence_attributeValues */
1367 static int hf_z3950_any_or_none = -1; /* NULL */
1368 static int hf_z3950_specific = -1; /* SEQUENCE_OF_StringOrNumeric */
1369 static int hf_z3950_specific_item = -1; /* StringOrNumeric */
1370 static int hf_z3950_briefBib_title = -1; /* InternationalString */
1371 static int hf_z3950_author = -1; /* InternationalString */
1372 static int hf_z3950_recordType = -1; /* InternationalString */
1373 static int hf_z3950_bibliographicLevel = -1; /* InternationalString */
1374 static int hf_z3950_briefBib_format = -1; /* SEQUENCE_OF_FormatSpec */
1375 static int hf_z3950_briefBib_format_item = -1; /* FormatSpec */
1376 static int hf_z3950_publicationPlace = -1; /* InternationalString */
1377 static int hf_z3950_publicationDate = -1; /* InternationalString */
1378 static int hf_z3950_targetSystemKey = -1; /* InternationalString */
1379 static int hf_z3950_satisfyingElement = -1; /* InternationalString */
1380 static int hf_z3950_rank = -1; /* INTEGER */
1381 static int hf_z3950_documentId = -1; /* InternationalString */
1382 static int hf_z3950_abstract = -1; /* InternationalString */
1383 static int hf_z3950_formatSpec_type = -1; /* InternationalString */
1384 static int hf_z3950_size = -1; /* INTEGER */
1385 static int hf_z3950_bestPosn = -1; /* INTEGER */
1386 static int hf_z3950_GenericRecord_item = -1; /* TaggedElement */
1387 static int hf_z3950_tagOccurrence = -1; /* INTEGER */
1388 static int hf_z3950_taggedElement_content = -1; /* ElementData */
1389 static int hf_z3950_metaData = -1; /* ElementMetaData */
1390 static int hf_z3950_appliedVariant = -1; /* Variant */
1391 static int hf_z3950_date = -1; /* GeneralizedTime */
1392 static int hf_z3950_ext = -1; /* EXTERNAL */
1393 static int hf_z3950_trueOrFalse = -1; /* BOOLEAN */
1394 static int hf_z3950_intUnit = -1; /* IntUnit */
1395 static int hf_z3950_elementNotThere = -1; /* NULL */
1396 static int hf_z3950_elementEmpty = -1; /* NULL */
1397 static int hf_z3950_noDataRequested = -1; /* NULL */
1398 static int hf_z3950_elementData_diagnostic = -1; /* EXTERNAL */
1399 static int hf_z3950_subtree = -1; /* SEQUENCE_OF_TaggedElement */
1400 static int hf_z3950_subtree_item = -1; /* TaggedElement */
1401 static int hf_z3950_seriesOrder = -1; /* Order */
1402 static int hf_z3950_usageRight = -1; /* Usage */
1403 static int hf_z3950_hits = -1; /* SEQUENCE_OF_HitVector */
1404 static int hf_z3950_hits_item = -1; /* HitVector */
1405 static int hf_z3950_displayName = -1; /* InternationalString */
1406 static int hf_z3950_supportedVariants = -1; /* SEQUENCE_OF_Variant */
1407 static int hf_z3950_supportedVariants_item = -1; /* Variant */
1408 static int hf_z3950_elementDescriptor = -1; /* OCTET_STRING */
1409 static int hf_z3950_surrogateFor = -1; /* TagPath */
1410 static int hf_z3950_surrogateElement = -1; /* TagPath */
1411 static int hf_z3950_TagPath_item = -1; /* TagPath_item */
1412 static int hf_z3950_ascending = -1; /* BOOLEAN */
1413 static int hf_z3950_order = -1; /* INTEGER */
1414 static int hf_z3950_usage_type = -1; /* T_usage_type */
1415 static int hf_z3950_restriction = -1; /* InternationalString */
1416 static int hf_z3950_satisfier = -1; /* Term */
1417 static int hf_z3950_offsetIntoElement = -1; /* IntUnit */
1418 static int hf_z3950_length = -1; /* IntUnit */
1419 static int hf_z3950_hitRank = -1; /* INTEGER */
1420 static int hf_z3950_targetToken = -1; /* OCTET_STRING */
1421 static int hf_z3950_globalVariantSetId = -1; /* OBJECT_IDENTIFIER */
1422 static int hf_z3950_triples = -1; /* T_triples */
1423 static int hf_z3950_triples_item = -1; /* T_triples_item */
1424 static int hf_z3950_variantSetId = -1; /* OBJECT_IDENTIFIER */
1425 static int hf_z3950_class = -1; /* INTEGER */
1426 static int hf_z3950_variant_triples_item_value = -1; /* T_variant_triples_item_value */
1427 static int hf_z3950_octetString = -1; /* OCTET_STRING */
1428 static int hf_z3950_boolean = -1; /* BOOLEAN */
1429 static int hf_z3950_variant_triples_item_value_unit = -1; /* Unit */
1430 static int hf_z3950_taskPackage_description = -1; /* InternationalString */
1431 static int hf_z3950_targetReference = -1; /* OCTET_STRING */
1432 static int hf_z3950_creationDateTime = -1; /* GeneralizedTime */
1433 static int hf_z3950_taskStatus = -1; /* T_taskStatus */
1434 static int hf_z3950_packageDiagnostics = -1; /* SEQUENCE_OF_DiagRec */
1435 static int hf_z3950_packageDiagnostics_item = -1; /* DiagRec */
1436 static int hf_z3950_challenge = -1; /* Challenge */
1437 static int hf_z3950_response = -1; /* Response */
1438 static int hf_z3950_Challenge_item = -1; /* Challenge_item */
1439 static int hf_z3950_promptId = -1; /* PromptId */
1440 static int hf_z3950_defaultResponse = -1; /* InternationalString */
1441 static int hf_z3950_promptInfo = -1; /* T_promptInfo */
1442 static int hf_z3950_challenge_item_promptInfo_character = -1; /* InternationalString */
1443 static int hf_z3950_encrypted = -1; /* Encryption */
1444 static int hf_z3950_regExpr = -1; /* InternationalString */
1445 static int hf_z3950_responseRequired = -1; /* NULL */
1446 static int hf_z3950_allowedValues = -1; /* SEQUENCE_OF_InternationalString */
1447 static int hf_z3950_allowedValues_item = -1; /* InternationalString */
1448 static int hf_z3950_shouldSave = -1; /* NULL */
1449 static int hf_z3950_challenge_item_dataType = -1; /* T_challenge_item_dataType */
1450 static int hf_z3950_challenge_item_diagnostic = -1; /* EXTERNAL */
1451 static int hf_z3950_Response_item = -1; /* Response_item */
1452 static int hf_z3950_promptResponse = -1; /* T_promptResponse */
1453 static int hf_z3950_accept = -1; /* BOOLEAN */
1454 static int hf_z3950_acknowledge = -1; /* NULL */
1455 static int hf_z3950_enummeratedPrompt = -1; /* T_enummeratedPrompt */
1456 static int hf_z3950_promptId_enummeratedPrompt_type = -1; /* T_promptId_enummeratedPrompt_type */
1457 static int hf_z3950_suggestedString = -1; /* InternationalString */
1458 static int hf_z3950_nonEnumeratedPrompt = -1; /* InternationalString */
1459 static int hf_z3950_cryptType = -1; /* OCTET_STRING */
1460 static int hf_z3950_credential = -1; /* OCTET_STRING */
1461 static int hf_z3950_data = -1; /* OCTET_STRING */
1462 static int hf_z3950_dES_RN_Object_challenge = -1; /* DRNType */
1463 static int hf_z3950_rES_RN_Object_response = -1; /* DRNType */
1464 static int hf_z3950_dRNType_userId = -1; /* OCTET_STRING */
1465 static int hf_z3950_salt = -1; /* OCTET_STRING */
1466 static int hf_z3950_randomNumber = -1; /* OCTET_STRING */
1467 static int hf_z3950_kRBObject_challenge = -1; /* KRBRequest */
1468 static int hf_z3950_kRBObject_response = -1; /* KRBResponse */
1469 static int hf_z3950_service = -1; /* InternationalString */
1470 static int hf_z3950_instance = -1; /* InternationalString */
1471 static int hf_z3950_realm = -1; /* InternationalString */
1472 static int hf_z3950_userid = -1; /* InternationalString */
1473 static int hf_z3950_ticket = -1; /* OCTET_STRING */
1474 static int hf_z3950_SearchInfoReport_item = -1; /* SearchInfoReport_item */
1475 static int hf_z3950_subqueryId = -1; /* InternationalString */
1476 static int hf_z3950_fullQuery = -1; /* BOOLEAN */
1477 static int hf_z3950_subqueryExpression = -1; /* QueryExpression */
1478 static int hf_z3950_subqueryInterpretation = -1; /* QueryExpression */
1479 static int hf_z3950_subqueryRecommendation = -1; /* QueryExpression */
1480 static int hf_z3950_subqueryCount = -1; /* INTEGER */
1481 static int hf_z3950_subqueryWeight = -1; /* IntUnit */
1482 static int hf_z3950_resultsByDB = -1; /* ResultsByDB */
1483 static int hf_z3950_ResultsByDB_item = -1; /* ResultsByDB_item */
1484 static int hf_z3950_databases = -1; /* T_databases */
1485 static int hf_z3950_all = -1; /* NULL */
1486 static int hf_z3950_list = -1; /* SEQUENCE_OF_DatabaseName */
1487 static int hf_z3950_list_item = -1; /* DatabaseName */
1488 static int hf_z3950_count = -1; /* INTEGER */
1489 static int hf_z3950_queryExpression_term = -1; /* T_queryExpression_term */
1490 static int hf_z3950_queryTerm = -1; /* Term */
1491 static int hf_z3950_termComment = -1; /* InternationalString */
1492 /* named bits */
1493 static int hf_z3950_ProtocolVersion_U_version_1 = -1;
1494 static int hf_z3950_ProtocolVersion_U_version_2 = -1;
1495 static int hf_z3950_ProtocolVersion_U_version_3 = -1;
1496 static int hf_z3950_Options_U_search = -1;
1497 static int hf_z3950_Options_U_present = -1;
1498 static int hf_z3950_Options_U_delSet = -1;
1499 static int hf_z3950_Options_U_resourceReport = -1;
1500 static int hf_z3950_Options_U_triggerResourceCtrl = -1;
1501 static int hf_z3950_Options_U_resourceCtrl = -1;
1502 static int hf_z3950_Options_U_accessCtrl = -1;
1503 static int hf_z3950_Options_U_scan = -1;
1504 static int hf_z3950_Options_U_sort = -1;
1505 static int hf_z3950_Options_U_spare_bit9 = -1;
1506 static int hf_z3950_Options_U_extendedServices = -1;
1507 static int hf_z3950_Options_U_level_1Segmentation = -1;
1508 static int hf_z3950_Options_U_level_2Segmentation = -1;
1509 static int hf_z3950_Options_U_concurrentOperations = -1;
1510 static int hf_z3950_Options_U_namedResultSets = -1;
1511
1512 /*--- End of included file: packet-z3950-hf.c ---*/
1513 #line 655 "./asn1/z3950/packet-z3950-template.c"
1514
1515 static int hf_z3950_referenceId_printable = -1;
1516 static int hf_z3950_general_printable = -1;
1517
1518 /* Initialize the subtree pointers */
1519 static int ett_z3950 = -1;
1520
1521
1522 /*--- Included file: packet-z3950-ett.c ---*/
1523 #line 1 "./asn1/z3950/packet-z3950-ett.c"
1524 static gint ett_z3950_PDU = -1;
1525 static gint ett_z3950_InitializeRequest = -1;
1526 static gint ett_z3950_T_idAuthentication = -1;
1527 static gint ett_z3950_T_idPass = -1;
1528 static gint ett_z3950_InitializeResponse = -1;
1529 static gint ett_z3950_ProtocolVersion_U = -1;
1530 static gint ett_z3950_Options_U = -1;
1531 static gint ett_z3950_SearchRequest = -1;
1532 static gint ett_z3950_SEQUENCE_OF_DatabaseName = -1;
1533 static gint ett_z3950_Query = -1;
1534 static gint ett_z3950_RPNQuery = -1;
1535 static gint ett_z3950_RPNStructure = -1;
1536 static gint ett_z3950_T_rpnRpnOp = -1;
1537 static gint ett_z3950_Operand = -1;
1538 static gint ett_z3950_AttributesPlusTerm_U = -1;
1539 static gint ett_z3950_ResultSetPlusAttributes_U = -1;
1540 static gint ett_z3950_SEQUENCE_OF_AttributeElement = -1;
1541 static gint ett_z3950_Term = -1;
1542 static gint ett_z3950_Operator_U = -1;
1543 static gint ett_z3950_AttributeElement = -1;
1544 static gint ett_z3950_T_attributeValue = -1;
1545 static gint ett_z3950_T_attributeValue_complex = -1;
1546 static gint ett_z3950_SEQUENCE_OF_StringOrNumeric = -1;
1547 static gint ett_z3950_T_semanticAction = -1;
1548 static gint ett_z3950_ProximityOperator = -1;
1549 static gint ett_z3950_T_proximityUnitCode = -1;
1550 static gint ett_z3950_SearchResponse = -1;
1551 static gint ett_z3950_PresentRequest = -1;
1552 static gint ett_z3950_SEQUENCE_OF_Range = -1;
1553 static gint ett_z3950_T_recordComposition = -1;
1554 static gint ett_z3950_Segment = -1;
1555 static gint ett_z3950_SEQUENCE_OF_NamePlusRecord = -1;
1556 static gint ett_z3950_PresentResponse = -1;
1557 static gint ett_z3950_Records = -1;
1558 static gint ett_z3950_SEQUENCE_OF_DiagRec = -1;
1559 static gint ett_z3950_NamePlusRecord = -1;
1560 static gint ett_z3950_T_record = -1;
1561 static gint ett_z3950_FragmentSyntax = -1;
1562 static gint ett_z3950_DiagRec = -1;
1563 static gint ett_z3950_DefaultDiagFormat = -1;
1564 static gint ett_z3950_T_addinfo = -1;
1565 static gint ett_z3950_Range = -1;
1566 static gint ett_z3950_ElementSetNames = -1;
1567 static gint ett_z3950_T_databaseSpecific = -1;
1568 static gint ett_z3950_T_databaseSpecific_item = -1;
1569 static gint ett_z3950_CompSpec = -1;
1570 static gint ett_z3950_T_dbSpecific = -1;
1571 static gint ett_z3950_T_dbSpecific_item = -1;
1572 static gint ett_z3950_T_compSpec_recordSyntax = -1;
1573 static gint ett_z3950_Specification = -1;
1574 static gint ett_z3950_T_specification_elementSpec = -1;
1575 static gint ett_z3950_DeleteResultSetRequest = -1;
1576 static gint ett_z3950_SEQUENCE_OF_ResultSetId = -1;
1577 static gint ett_z3950_DeleteResultSetResponse = -1;
1578 static gint ett_z3950_ListStatuses = -1;
1579 static gint ett_z3950_ListStatuses_item = -1;
1580 static gint ett_z3950_AccessControlRequest = -1;
1581 static gint ett_z3950_T_securityChallenge = -1;
1582 static gint ett_z3950_AccessControlResponse = -1;
1583 static gint ett_z3950_T_securityChallengeResponse = -1;
1584 static gint ett_z3950_ResourceControlRequest = -1;
1585 static gint ett_z3950_ResourceControlResponse = -1;
1586 static gint ett_z3950_TriggerResourceControlRequest = -1;
1587 static gint ett_z3950_ResourceReportRequest = -1;
1588 static gint ett_z3950_ResourceReportResponse = -1;
1589 static gint ett_z3950_ScanRequest = -1;
1590 static gint ett_z3950_ScanResponse = -1;
1591 static gint ett_z3950_ListEntries = -1;
1592 static gint ett_z3950_SEQUENCE_OF_Entry = -1;
1593 static gint ett_z3950_Entry = -1;
1594 static gint ett_z3950_TermInfo = -1;
1595 static gint ett_z3950_SEQUENCE_OF_AttributesPlusTerm = -1;
1596 static gint ett_z3950_OccurrenceByAttributes = -1;
1597 static gint ett_z3950_OccurrenceByAttributes_item = -1;
1598 static gint ett_z3950_T_occurrences = -1;
1599 static gint ett_z3950_T_byDatabase = -1;
1600 static gint ett_z3950_T_byDatabase_item = -1;
1601 static gint ett_z3950_SortRequest = -1;
1602 static gint ett_z3950_SEQUENCE_OF_InternationalString = -1;
1603 static gint ett_z3950_SEQUENCE_OF_SortKeySpec = -1;
1604 static gint ett_z3950_SortResponse = -1;
1605 static gint ett_z3950_SortKeySpec = -1;
1606 static gint ett_z3950_T_missingValueAction = -1;
1607 static gint ett_z3950_SortElement = -1;
1608 static gint ett_z3950_T_datbaseSpecific = -1;
1609 static gint ett_z3950_T_datbaseSpecific_item = -1;
1610 static gint ett_z3950_SortKey = -1;
1611 static gint ett_z3950_T_sortAttributes = -1;
1612 static gint ett_z3950_ExtendedServicesRequest = -1;
1613 static gint ett_z3950_ExtendedServicesResponse = -1;
1614 static gint ett_z3950_Permissions = -1;
1615 static gint ett_z3950_Permissions_item = -1;
1616 static gint ett_z3950_T_allowableFunctions = -1;
1617 static gint ett_z3950_Close = -1;
1618 static gint ett_z3950_OtherInformation_U = -1;
1619 static gint ett_z3950_T__untag_item = -1;
1620 static gint ett_z3950_T_information = -1;
1621 static gint ett_z3950_InfoCategory = -1;
1622 static gint ett_z3950_IntUnit = -1;
1623 static gint ett_z3950_Unit = -1;
1624 static gint ett_z3950_StringOrNumeric = -1;
1625 static gint ett_z3950_OCLC_UserInformation = -1;
1626 static gint ett_z3950_SEQUENCE_OF_DBName = -1;
1627 static gint ett_z3950_OPACRecord = -1;
1628 static gint ett_z3950_SEQUENCE_OF_HoldingsRecord = -1;
1629 static gint ett_z3950_HoldingsRecord = -1;
1630 static gint ett_z3950_HoldingsAndCircData = -1;
1631 static gint ett_z3950_SEQUENCE_OF_Volume = -1;
1632 static gint ett_z3950_SEQUENCE_OF_CircRecord = -1;
1633 static gint ett_z3950_Volume = -1;
1634 static gint ett_z3950_CircRecord = -1;
1635 static gint ett_z3950_DiagnosticFormat = -1;
1636 static gint ett_z3950_DiagnosticFormat_item = -1;
1637 static gint ett_z3950_T_diagnosticFormat_item_diagnostic = -1;
1638 static gint ett_z3950_DiagFormat = -1;
1639 static gint ett_z3950_T_tooMany = -1;
1640 static gint ett_z3950_T_badSpec = -1;
1641 static gint ett_z3950_SEQUENCE_OF_Specification = -1;
1642 static gint ett_z3950_T_dbUnavail = -1;
1643 static gint ett_z3950_T_why = -1;
1644 static gint ett_z3950_T_attribute = -1;
1645 static gint ett_z3950_T_attCombo = -1;
1646 static gint ett_z3950_SEQUENCE_OF_AttributeList = -1;
1647 static gint ett_z3950_T_diagFormat_term = -1;
1648 static gint ett_z3950_T_diagFormat_proximity = -1;
1649 static gint ett_z3950_T_scan = -1;
1650 static gint ett_z3950_T_sort = -1;
1651 static gint ett_z3950_T_segmentation = -1;
1652 static gint ett_z3950_T_extServices = -1;
1653 static gint ett_z3950_T_accessCtrl = -1;
1654 static gint ett_z3950_T_diagFormat_accessCtrl_oid = -1;
1655 static gint ett_z3950_T_alternative = -1;
1656 static gint ett_z3950_T_diagFormat_recordSyntax = -1;
1657 static gint ett_z3950_T_suggestedAlternatives = -1;
1658 static gint ett_z3950_Explain_Record = -1;
1659 static gint ett_z3950_TargetInfo = -1;
1660 static gint ett_z3950_SEQUENCE_OF_DatabaseList = -1;
1661 static gint ett_z3950_SEQUENCE_OF_NetworkAddress = -1;
1662 static gint ett_z3950_DatabaseInfo = -1;
1663 static gint ett_z3950_SEQUENCE_OF_HumanString = -1;
1664 static gint ett_z3950_T_recordCount = -1;
1665 static gint ett_z3950_SchemaInfo = -1;
1666 static gint ett_z3950_T_tagTypeMapping = -1;
1667 static gint ett_z3950_T_tagTypeMapping_item = -1;
1668 static gint ett_z3950_SEQUENCE_OF_ElementInfo = -1;
1669 static gint ett_z3950_ElementInfo = -1;
1670 static gint ett_z3950_Path = -1;
1671 static gint ett_z3950_Path_item = -1;
1672 static gint ett_z3950_ElementDataType = -1;
1673 static gint ett_z3950_TagSetInfo = -1;
1674 static gint ett_z3950_T_tagSetInfo_elements = -1;
1675 static gint ett_z3950_T_tagSetInfo_elements_item = -1;
1676 static gint ett_z3950_RecordSyntaxInfo = -1;
1677 static gint ett_z3950_T_transferSyntaxes = -1;
1678 static gint ett_z3950_AttributeSetInfo = -1;
1679 static gint ett_z3950_SEQUENCE_OF_AttributeType = -1;
1680 static gint ett_z3950_AttributeType = -1;
1681 static gint ett_z3950_SEQUENCE_OF_AttributeDescription = -1;
1682 static gint ett_z3950_AttributeDescription = -1;
1683 static gint ett_z3950_TermListInfo = -1;
1684 static gint ett_z3950_T_termLists = -1;
1685 static gint ett_z3950_T_termLists_item = -1;
1686 static gint ett_z3950_ExtendedServicesInfo = -1;
1687 static gint ett_z3950_AttributeDetails = -1;
1688 static gint ett_z3950_SEQUENCE_OF_AttributeSetDetails = -1;
1689 static gint ett_z3950_AttributeSetDetails = -1;
1690 static gint ett_z3950_SEQUENCE_OF_AttributeTypeDetails = -1;
1691 static gint ett_z3950_AttributeTypeDetails = -1;
1692 static gint ett_z3950_SEQUENCE_OF_AttributeValue = -1;
1693 static gint ett_z3950_OmittedAttributeInterpretation = -1;
1694 static gint ett_z3950_AttributeValue = -1;
1695 static gint ett_z3950_TermListDetails = -1;
1696 static gint ett_z3950_T_scanInfo = -1;
1697 static gint ett_z3950_SEQUENCE_OF_Term = -1;
1698 static gint ett_z3950_ElementSetDetails = -1;
1699 static gint ett_z3950_SEQUENCE_OF_PerElementDetails = -1;
1700 static gint ett_z3950_RetrievalRecordDetails = -1;
1701 static gint ett_z3950_PerElementDetails = -1;
1702 static gint ett_z3950_SEQUENCE_OF_Path = -1;
1703 static gint ett_z3950_RecordTag = -1;
1704 static gint ett_z3950_SortDetails = -1;
1705 static gint ett_z3950_SEQUENCE_OF_SortKeyDetails = -1;
1706 static gint ett_z3950_SortKeyDetails = -1;
1707 static gint ett_z3950_T_sortType = -1;
1708 static gint ett_z3950_ProcessingInformation = -1;
1709 static gint ett_z3950_VariantSetInfo = -1;
1710 static gint ett_z3950_SEQUENCE_OF_VariantClass = -1;
1711 static gint ett_z3950_VariantClass = -1;
1712 static gint ett_z3950_SEQUENCE_OF_VariantType = -1;
1713 static gint ett_z3950_VariantType = -1;
1714 static gint ett_z3950_VariantValue = -1;
1715 static gint ett_z3950_ValueSet = -1;
1716 static gint ett_z3950_SEQUENCE_OF_ValueDescription = -1;
1717 static gint ett_z3950_ValueRange = -1;
1718 static gint ett_z3950_ValueDescription = -1;
1719 static gint ett_z3950_UnitInfo = -1;
1720 static gint ett_z3950_SEQUENCE_OF_UnitType = -1;
1721 static gint ett_z3950_UnitType = -1;
1722 static gint ett_z3950_SEQUENCE_OF_Units = -1;
1723 static gint ett_z3950_Units = -1;
1724 static gint ett_z3950_CategoryList = -1;
1725 static gint ett_z3950_SEQUENCE_OF_CategoryInfo = -1;
1726 static gint ett_z3950_CategoryInfo = -1;
1727 static gint ett_z3950_CommonInfo = -1;
1728 static gint ett_z3950_HumanString = -1;
1729 static gint ett_z3950_HumanString_item = -1;
1730 static gint ett_z3950_IconObject = -1;
1731 static gint ett_z3950_IconObject_item = -1;
1732 static gint ett_z3950_T_bodyType = -1;
1733 static gint ett_z3950_ContactInfo = -1;
1734 static gint ett_z3950_NetworkAddress = -1;
1735 static gint ett_z3950_T_internetAddress = -1;
1736 static gint ett_z3950_T_osiPresentationAddress = -1;
1737 static gint ett_z3950_T_networkAddress_other = -1;
1738 static gint ett_z3950_AccessInfo = -1;
1739 static gint ett_z3950_SEQUENCE_OF_QueryTypeDetails = -1;
1740 static gint ett_z3950_T_diagnosticsSets = -1;
1741 static gint ett_z3950_SEQUENCE_OF_AttributeSetId = -1;
1742 static gint ett_z3950_T_schemas = -1;
1743 static gint ett_z3950_T_recordSyntaxes = -1;
1744 static gint ett_z3950_T_resourceChallenges = -1;
1745 static gint ett_z3950_T_variantSets = -1;
1746 static gint ett_z3950_SEQUENCE_OF_ElementSetName = -1;
1747 static gint ett_z3950_QueryTypeDetails = -1;
1748 static gint ett_z3950_PrivateCapabilities = -1;
1749 static gint ett_z3950_T_privateCapabilities_operators = -1;
1750 static gint ett_z3950_T_privateCapabilities_operators_item = -1;
1751 static gint ett_z3950_SEQUENCE_OF_SearchKey = -1;
1752 static gint ett_z3950_RpnCapabilities = -1;
1753 static gint ett_z3950_T_operators = -1;
1754 static gint ett_z3950_Iso8777Capabilities = -1;
1755 static gint ett_z3950_ProximitySupport = -1;
1756 static gint ett_z3950_T_unitsSupported = -1;
1757 static gint ett_z3950_T_unitsSupported_item = -1;
1758 static gint ett_z3950_T_proximitySupport_unitsSupported_item_private = -1;
1759 static gint ett_z3950_SearchKey = -1;
1760 static gint ett_z3950_AccessRestrictions = -1;
1761 static gint ett_z3950_AccessRestrictions_item = -1;
1762 static gint ett_z3950_T_accessChallenges = -1;
1763 static gint ett_z3950_Costs = -1;
1764 static gint ett_z3950_T_otherCharges = -1;
1765 static gint ett_z3950_T_otherCharges_item = -1;
1766 static gint ett_z3950_Charge = -1;
1767 static gint ett_z3950_DatabaseList = -1;
1768 static gint ett_z3950_AttributeCombinations = -1;
1769 static gint ett_z3950_SEQUENCE_OF_AttributeCombination = -1;
1770 static gint ett_z3950_AttributeCombination = -1;
1771 static gint ett_z3950_AttributeOccurrence = -1;
1772 static gint ett_z3950_T_attributeOccurrence_attributeValues = -1;
1773 static gint ett_z3950_BriefBib = -1;
1774 static gint ett_z3950_SEQUENCE_OF_FormatSpec = -1;
1775 static gint ett_z3950_FormatSpec = -1;
1776 static gint ett_z3950_GenericRecord = -1;
1777 static gint ett_z3950_TaggedElement = -1;
1778 static gint ett_z3950_ElementData = -1;
1779 static gint ett_z3950_SEQUENCE_OF_TaggedElement = -1;
1780 static gint ett_z3950_ElementMetaData = -1;
1781 static gint ett_z3950_SEQUENCE_OF_HitVector = -1;
1782 static gint ett_z3950_SEQUENCE_OF_Variant = -1;
1783 static gint ett_z3950_TagPath = -1;
1784 static gint ett_z3950_TagPath_item = -1;
1785 static gint ett_z3950_Order = -1;
1786 static gint ett_z3950_Usage = -1;
1787 static gint ett_z3950_HitVector = -1;
1788 static gint ett_z3950_Variant = -1;
1789 static gint ett_z3950_T_triples = -1;
1790 static gint ett_z3950_T_triples_item = -1;
1791 static gint ett_z3950_T_variant_triples_item_value = -1;
1792 static gint ett_z3950_TaskPackage = -1;
1793 static gint ett_z3950_PromptObject = -1;
1794 static gint ett_z3950_Challenge = -1;
1795 static gint ett_z3950_Challenge_item = -1;
1796 static gint ett_z3950_T_promptInfo = -1;
1797 static gint ett_z3950_Response = -1;
1798 static gint ett_z3950_Response_item = -1;
1799 static gint ett_z3950_T_promptResponse = -1;
1800 static gint ett_z3950_PromptId = -1;
1801 static gint ett_z3950_T_enummeratedPrompt = -1;
1802 static gint ett_z3950_Encryption = -1;
1803 static gint ett_z3950_DES_RN_Object = -1;
1804 static gint ett_z3950_DRNType = -1;
1805 static gint ett_z3950_KRBObject = -1;
1806 static gint ett_z3950_KRBRequest = -1;
1807 static gint ett_z3950_KRBResponse = -1;
1808 static gint ett_z3950_SearchInfoReport = -1;
1809 static gint ett_z3950_SearchInfoReport_item = -1;
1810 static gint ett_z3950_ResultsByDB = -1;
1811 static gint ett_z3950_ResultsByDB_item = -1;
1812 static gint ett_z3950_T_databases = -1;
1813 static gint ett_z3950_QueryExpression = -1;
1814 static gint ett_z3950_T_queryExpression_term = -1;
1815
1816 /*--- End of included file: packet-z3950-ett.c ---*/
1817 #line 663 "./asn1/z3950/packet-z3950-template.c"
1818
1819 /* MARC variables and forwards */
1820
1821 static int dissect_marc_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * data _U_);
1822
1823 /* MARC fields */
1824 static int hf_marc_record = -1;
1825 static int hf_marc_record_terminator = -1;
1826 static int hf_marc_leader = -1;
1827 static int hf_marc_leader_length = -1;
1828 static int hf_marc_leader_status = -1;
1829 static int hf_marc_leader_type = -1;
1830 static int hf_marc_leader_biblevel = -1;
1831 static int hf_marc_leader_control = -1;
1832 static int hf_marc_leader_encoding = -1;
1833 static int hf_marc_leader_indicator_count = -1;
1834 static int hf_marc_leader_subfield_count = -1;
1835 static int hf_marc_leader_data_offset = -1;
1836 static int hf_marc_leader_encoding_level = -1;
1837 static int hf_marc_leader_descriptive_cataloging = -1;
1838 static int hf_marc_leader_multipart_level = -1;
1839 static int hf_marc_leader_length_of_field_length = -1;
1840 static int hf_marc_leader_starting_character_position_length = -1;
1841 static int hf_marc_leader_implementation_defined_length = -1;
1842 static int hf_marc_directory = -1;
1843 static int hf_marc_directory_entry = -1;
1844 static int hf_marc_directory_entry_tag = -1;
1845 static int hf_marc_directory_entry_length = -1;
1846 static int hf_marc_directory_entry_starting_position = -1;
1847 static int hf_marc_directory_terminator = -1;
1848 static int hf_marc_fields = -1;
1849 static int hf_marc_field = -1;
1850 static int hf_marc_field_control = -1;
1851 static int hf_marc_field_terminator = -1;
1852 static int hf_marc_field_indicator1 = -1;
1853 static int hf_marc_field_indicator2 = -1;
1854 static int hf_marc_field_subfield_indicator = -1;
1855 static int hf_marc_field_subfield_tag = -1;
1856 static int hf_marc_field_subfield = -1;
1857
1858 /* MARC subtree pointers */
1859 static int ett_marc_record = -1;
1860 static int ett_marc_leader = -1;
1861 static int ett_marc_directory = -1;
1862 static int ett_marc_directory_entry = -1;
1863 static int ett_marc_fields = -1;
1864 static int ett_marc_field = -1;
1865
1866 /* MARC expert fields */
1867 static expert_field ei_marc_invalid_length = EI_INIT;
1868 static expert_field ei_marc_invalid_value = EI_INIT;
1869 static expert_field ei_marc_invalid_record_length = EI_INIT;
1870
1871 /* MARC value strings */
1872
1873 static const value_string marc_tag_names[] = {
1874 { 1, "Control Number" },
1875 { 3, "Control Number Identifier" },
1876 { 5, "Date and Time of Latest Transaction" },
1877 { 6, "Fixed-length Data Elements - Additional Material Characteristics" },
1878 { 8, "Fixed-length Data Elements" },
1879 { 7, "Physical Description Fixed Field" },
1880 { 10, "Library of Congress Control Number" },
1881 { 15, "National Bibliography Number" },
1882 { 16, "National Bibliographic Agency Control Number" },
1883 { 17, "Copyright or Legal Deposit Number" },
1884 { 20, "International Standard Book Number (ISBN)" },
1885 { 22, "International Standard Serial Number (ISSN)" },
1886 { 24, "Other Standard Identifier" },
1887 { 25, "Overseas Acquisition Number" },
1888 { 26, "Fingerprint Identifier" },
1889 { 27, "Standard Technical Report Number" },
1890 { 28, "Publisher or Distributor Number" },
1891 { 30, "CODEN Designation" },
1892 { 32, "Postal Registration Number" },
1893 { 33, "Date/Time and Place of an Event" },
1894 { 35, "System Control Number" },
1895 { 37, "Source of Acquisition" },
1896 { 38, "Record Content Licensor" },
1897 { 40, "Cataloging Source" },
1898 { 41, "Language Code" },
1899 { 42, "Authentication Code" },
1900 { 43, "Geographic Area Code" },
1901 { 44, "Country of Publishing/Producing Entity Code" },
1902 { 45, "Time Period of Content" },
1903 { 47, "Form of Musical Composition Code" },
1904 { 50, "Library of Congress Call Number" },
1905 { 51, "Library of Congress Copy, Issue, Offprint Statement" },
1906 { 60, "National Library of Medicine Call Number" },
1907 { 66, "Character Sets Present" },
1908 { 80, "Universal Decimal Classification Number" },
1909 { 82, "Dewey Decimal Classification Number" },
1910 { 83, "Additional Dewey Decimal Classification Number" },
1911 { 84, "Other Classification Number" },
1912 { 100, "Main Entry - Personal Name" },
1913 { 110, "Main Entry - Corporate Name" },
1914 { 111, "Main Entry - Meeting Name" },
1915 { 130, "Main Entry - Uniform Title" },
1916 { 210, "Abbreviated Title" },
1917 { 222, "Key Title" },
1918 { 240, "Uniform Title" },
1919 { 242, "Translation of Title by Cataloging Agency" },
1920 { 243, "Collective Uniform Title" },
1921 { 245, "Title Statement" },
1922 { 246, "Varying Form of Title" },
1923 { 247, "Former Title" },
1924 { 249, "Local LoC Varying Form of Title" },
1925 { 250, "Edition Statement" },
1926 { 260, "Publication, Distribution, etc. (Imprint)" },
1927 { 264, "Production, Publication, Distribution, Manufacture, and Copyright Notice" },
1928 { 300, "Physical Description" },
1929 { 310, "Current Publication Frequency" },
1930 { 321, "former Publication Frequency" },
1931 { 336, "Content Type" },
1932 { 337, "Media Type" },
1933 { 338, "Carrier Type" },
1934 { 340, "Physical Medium" },
1935 { 362, "Dates of Publication and/or Sequential Designation" },
1936 { 400, "Series Statement/Added Entry-Personal Name" },
1937 { 410, "Series Statement/Added Entry-Corporate Name" },
1938 { 411, "Series Statement/Added Entry-Meeting Name" },
1939 { 440, "Series Statement/Added Entry-Title" },
1940 { 490, "Series Statement" },
1941 { 500, "General Note" },
1942 { 504, "Bibliography, etc. Note" },
1943 { 505, "Formatted Contents Note" },
1944 { 506, "Restrictions on Access Note" },
1945 { 508, "Creation/Production Credits Note" },
1946 { 510, "Citation/References Note" },
1947 { 511, "Participant or Performer Note" },
1948 { 515, "Numbering Peculiarities Note" },
1949 { 518, "Date/Time and Place of an Event Note" },
1950 { 520, "Summary, etc." },
1951 { 521, "Target Audience Note" },
1952 { 522, "Geographic Coverage Note" },
1953 { 524, "Preferred Citation of Described Materials Note" },
1954 { 525, "Supplement Note" },
1955 { 530, "Additional Physical Form available Note" },
1956 { 532, "Accessibility Note" },
1957 { 533, "Reproduction Note" },
1958 { 534, "Original Version Note" },
1959 { 538, "System Details Note" },
1960 { 540, "Terms Governing Use and Reproduction Note" },
1961 { 541, "Immediate Source of Acquisition Note" },
1962 { 542, "Information Relating to Copyright Status" },
1963 { 546, "Language Note" },
1964 { 550, "Issuing Body Note" },
1965 { 555, "Cumulative Index/Finding Aids Note" },
1966 { 583, "Action Note" },
1967 { 588, "Source of Description, Etc. Note" },
1968 { 590, "Local LoC Note" },
1969 { 591, "Local LoC \"With\" Note" },
1970 { 592, "Local LoC Acquisition Note" },
1971 { 600, "Subject Added Entry - Personal Name" },
1972 { 610, "Subject Added Entry - Corporate Name" },
1973 { 611, "Subject Added Entry - Meeting Name" },
1974 { 630, "Subject Added Entry - Uniform Title" },
1975 { 647, "Subject Added Entry - Named Event" },
1976 { 648, "Subject Added Entry - Chronological Term" },
1977 { 650, "Subject Added Entry - Topical Term" },
1978 { 651, "Subject Added Entry - Geographic Name" },
1979 { 653, "Index Term - Uncontrolled" },
1980 { 654, "Subject Added Entry - Faceted Topical Terms" },
1981 { 655, "Index Term - Genre/Form" },
1982 { 656, "Index Term - Occupation" },
1983 { 657, "Index Term - Function" },
1984 { 658, "Index Term - Curriculum Objective" },
1985 { 662, "Subject Added Entry - Hierarchical Place Name" },
1986 { 700, "Added Entry - Personal Name" },
1987 { 710, "Added Entry - Corporate Name" },
1988 { 711, "Added Entry - Meeting Name" },
1989 { 720, "Added Entry - Uncontrolled Name" },
1990 { 730, "Added Entry - Uniform Title" },
1991 { 740, "Added Entry - Uncontrolled Related/Analytical Title" },
1992 { 751, "Added Entry - Geographic Name" },
1993 { 752, "Added Entry - Hierarchical Place Name" },
1994 { 753, "System Details Access to Computer Files" },
1995 { 754, "Added Entry - Taxonomic Identification" },
1996 { 758, "Resource Identifier" },
1997 { 760, "Main Series Entry" },
1998 { 762, "Subseries Entry" },
1999 { 765, "Original Language Entry" },
2000 { 767, "Translation Entry" },
2001 { 770, "Supplement/Special Issue Entry" },
2002 { 772, "Supplement Parent Entry" },
2003 { 773, "Host Item Entry" },
2004 { 774, "Constituent Unit Entry" },
2005 { 775, "Other Edition Entry" },
2006 { 776, "Additional Physical Form Entry" },
2007 { 777, "Issued With Entry" },
2008 { 780, "Preceding Entry" },
2009 { 785, "Succeeding Entry" },
2010 { 786, "Data Source Entry" },
2011 { 787, "Other Relationship Entry" },
2012 { 800, "Series Added Entry - Personal Name" },
2013 { 810, "Series Added Entry - Corporate Name" },
2014 { 811, "Series Added Entry - Meeting Name" },
2015 { 830, "Series Added Entry - Uniform Title" },
2016 { 850, "Holding Institution" },
2017 { 852, "Location" },
2018 { 853, "Captions and Pattern - Basic Bibliographic Unit" },
2019 { 856, "Electronic Location and Access" },
2020 { 859, "Local LoC Electronic Location and Access" },
2021 { 863, "Enumeration and Chronology - Basic Bibliographic Unit" },
2022 { 880, "Alternate Graphic Representation" },
2023 { 890, "Local LoC Visible File Entry" },
2024 { 906, "Local LoC Processing Data" },
2025 { 920, "Local LoC Selection Decision" },
2026 { 922, "Local LoC Book Source" },
2027 { 923, "Local LoC Supplier Invoice or Shipment Id" },
2028 { 925, "Local LoC Selection Decision" },
2029 { 952, "Local LoC Cataloger's Permanent Note" },
2030 { 955, "Local LoC Functional Identifying Information" },
2031 { 984, "Local LoC Shelflist Compare Status" },
2032 { 985, "Local LoC Record History" },
2033 { 987, "Local LoC Conversation History" },
2034 { 991, "Local LoC Location Information" },
2035 { 992, "Local LoC Location Information" },
2036 { 0, NULL}
2037 };
2038
2039 static int
dissect_z3950_printable_OCTET_STRING(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2040 dissect_z3950_printable_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2041 tvbuff_t *next_tvb = NULL;
2042 int hf_alternate = -1;
2043 guint old_offset = offset;
2044
2045 if (hf_index == hf_z3950_referenceId) {
2046 hf_alternate = hf_z3950_referenceId_printable;
2047 }
2048 else if ( hf_index == hf_z3950_general) {
2049 hf_alternate = hf_z3950_general_printable;
2050 }
2051
2052 if (hf_alternate > 0) {
2053 /* extract the value of the octet string so we can look at it. */
2054 /* This does not display anything because tree is NULL. */
2055 offset = dissect_ber_octet_string(implicit_tag, actx, NULL, tvb, offset, hf_index, &next_tvb);
2056
2057 if (next_tvb &&
2058 tvb_ascii_isprint(next_tvb, 0, tvb_reported_length(next_tvb))) {
2059 proto_tree_add_item(tree, hf_alternate, next_tvb,
2060 0, tvb_reported_length(next_tvb), ENC_ASCII|ENC_NA);
2061 }
2062 else {
2063 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb,
2064 old_offset, hf_index, NULL);
2065 }
2066 }
2067 else {
2068 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb,
2069 old_offset, hf_index, NULL);
2070 }
2071
2072 return offset;
2073 }
2074
2075
2076 /*--- Included file: packet-z3950-fn.c ---*/
2077 #line 1 "./asn1/z3950/packet-z3950-fn.c"
2078 /*--- Cyclic dependencies ---*/
2079
2080 /* RPNStructure -> RPNStructure/rpnRpnOp -> RPNStructure */
2081 /* RPNStructure -> RPNStructure/rpnRpnOp -> RPNStructure */
2082 static int dissect_z3950_RPNStructure(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2083
2084 /* ElementInfo -> ElementDataType -> ElementDataType/structured -> ElementInfo */
2085 static int dissect_z3950_ElementInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2086
2087 /* TaggedElement -> ElementData -> ElementData/subtree -> TaggedElement */
2088 static int dissect_z3950_TaggedElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2089
2090
2091
2092
2093 static int
dissect_z3950_OCTET_STRING(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2094 dissect_z3950_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2095 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2096 NULL);
2097
2098 return offset;
2099 }
2100
2101
2102
2103 static int
dissect_z3950_ReferenceId(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2104 dissect_z3950_ReferenceId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2105 #line 142 "./asn1/z3950/z3950.cnf"
2106 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2107 hf_index, BER_CLASS_CON, 2, TRUE,
2108 dissect_z3950_printable_OCTET_STRING);
2109
2110
2111
2112 return offset;
2113 }
2114
2115
2116 static int * const ProtocolVersion_U_bits[] = {
2117 &hf_z3950_ProtocolVersion_U_version_1,
2118 &hf_z3950_ProtocolVersion_U_version_2,
2119 &hf_z3950_ProtocolVersion_U_version_3,
2120 NULL
2121 };
2122
2123 static int
dissect_z3950_ProtocolVersion_U(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2124 dissect_z3950_ProtocolVersion_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2125 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2126 ProtocolVersion_U_bits, 3, hf_index, ett_z3950_ProtocolVersion_U,
2127 NULL);
2128
2129 return offset;
2130 }
2131
2132
2133
2134 static int
dissect_z3950_ProtocolVersion(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2135 dissect_z3950_ProtocolVersion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2136 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2137 hf_index, BER_CLASS_CON, 3, TRUE, dissect_z3950_ProtocolVersion_U);
2138
2139 return offset;
2140 }
2141
2142
2143 static int * const Options_U_bits[] = {
2144 &hf_z3950_Options_U_search,
2145 &hf_z3950_Options_U_present,
2146 &hf_z3950_Options_U_delSet,
2147 &hf_z3950_Options_U_resourceReport,
2148 &hf_z3950_Options_U_triggerResourceCtrl,
2149 &hf_z3950_Options_U_resourceCtrl,
2150 &hf_z3950_Options_U_accessCtrl,
2151 &hf_z3950_Options_U_scan,
2152 &hf_z3950_Options_U_sort,
2153 &hf_z3950_Options_U_spare_bit9,
2154 &hf_z3950_Options_U_extendedServices,
2155 &hf_z3950_Options_U_level_1Segmentation,
2156 &hf_z3950_Options_U_level_2Segmentation,
2157 &hf_z3950_Options_U_concurrentOperations,
2158 &hf_z3950_Options_U_namedResultSets,
2159 NULL
2160 };
2161
2162 static int
dissect_z3950_Options_U(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2163 dissect_z3950_Options_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2164 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2165 Options_U_bits, 15, hf_index, ett_z3950_Options_U,
2166 NULL);
2167
2168 return offset;
2169 }
2170
2171
2172
2173 static int
dissect_z3950_Options(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2174 dissect_z3950_Options(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2175 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2176 hf_index, BER_CLASS_CON, 4, TRUE, dissect_z3950_Options_U);
2177
2178 return offset;
2179 }
2180
2181
2182
2183 static int
dissect_z3950_INTEGER(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2184 dissect_z3950_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2185 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2186 NULL);
2187
2188 return offset;
2189 }
2190
2191
2192
2193 static int
dissect_z3950_VisibleString(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2194 dissect_z3950_VisibleString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2195 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_VisibleString,
2196 actx, tree, tvb, offset, hf_index,
2197 NULL);
2198
2199 return offset;
2200 }
2201
2202
2203
2204 static int
dissect_z3950_InternationalString(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2205 dissect_z3950_InternationalString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2206 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString,
2207 actx, tree, tvb, offset, hf_index,
2208 NULL);
2209
2210 return offset;
2211 }
2212
2213
2214 static const ber_sequence_t T_idPass_sequence[] = {
2215 { &hf_z3950_groupId , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
2216 { &hf_z3950_userId , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
2217 { &hf_z3950_password , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
2218 { NULL, 0, 0, 0, NULL }
2219 };
2220
2221 static int
dissect_z3950_T_idPass(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2222 dissect_z3950_T_idPass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2223 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2224 T_idPass_sequence, hf_index, ett_z3950_T_idPass);
2225
2226 return offset;
2227 }
2228
2229
2230
2231 static int
dissect_z3950_NULL(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2232 dissect_z3950_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2233 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
2234
2235 return offset;
2236 }
2237
2238
2239
2240 static int
dissect_z3950_EXTERNAL(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2241 dissect_z3950_EXTERNAL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2242 offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
2243
2244 return offset;
2245 }
2246
2247
2248 static const value_string z3950_T_idAuthentication_vals[] = {
2249 { 0, "open" },
2250 { 1, "idPass" },
2251 { 2, "anonymous" },
2252 { 3, "other" },
2253 { 0, NULL }
2254 };
2255
2256 static const ber_choice_t T_idAuthentication_choice[] = {
2257 { 0, &hf_z3950_open , BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_z3950_VisibleString },
2258 { 1, &hf_z3950_idPass , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_T_idPass },
2259 { 2, &hf_z3950_anonymous , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_z3950_NULL },
2260 { 3, &hf_z3950_other , BER_CLASS_UNI, BER_UNI_TAG_EXTERNAL, BER_FLAGS_NOOWNTAG, dissect_z3950_EXTERNAL },
2261 { 0, NULL, 0, 0, 0, NULL }
2262 };
2263
2264 static int
dissect_z3950_T_idAuthentication(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2265 dissect_z3950_T_idAuthentication(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2266 offset = dissect_ber_choice(actx, tree, tvb, offset,
2267 T_idAuthentication_choice, hf_index, ett_z3950_T_idAuthentication,
2268 NULL);
2269
2270 return offset;
2271 }
2272
2273
2274
2275 static int
dissect_z3950_OBJECT_IDENTIFIER(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2276 dissect_z3950_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2277 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2278
2279 return offset;
2280 }
2281
2282
2283 static const ber_sequence_t InfoCategory_sequence[] = {
2284 { &hf_z3950_categoryTypeId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
2285 { &hf_z3950_categoryValue , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
2286 { NULL, 0, 0, 0, NULL }
2287 };
2288
2289 static int
dissect_z3950_InfoCategory(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2290 dissect_z3950_InfoCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2291 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2292 InfoCategory_sequence, hf_index, ett_z3950_InfoCategory);
2293
2294 return offset;
2295 }
2296
2297
2298 static const value_string z3950_T_information_vals[] = {
2299 { 2, "characterInfo" },
2300 { 3, "binaryInfo" },
2301 { 4, "externallyDefinedInfo" },
2302 { 5, "oid" },
2303 { 0, NULL }
2304 };
2305
2306 static const ber_choice_t T_information_choice[] = {
2307 { 2, &hf_z3950_characterInfo , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
2308 { 3, &hf_z3950_binaryInfo , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
2309 { 4, &hf_z3950_externallyDefinedInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_EXTERNAL },
2310 { 5, &hf_z3950_oid , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
2311 { 0, NULL, 0, 0, 0, NULL }
2312 };
2313
2314 static int
dissect_z3950_T_information(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2315 dissect_z3950_T_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2316 offset = dissect_ber_choice(actx, tree, tvb, offset,
2317 T_information_choice, hf_index, ett_z3950_T_information,
2318 NULL);
2319
2320 return offset;
2321 }
2322
2323
2324 static const ber_sequence_t T__untag_item_sequence[] = {
2325 { &hf_z3950_category , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InfoCategory },
2326 { &hf_z3950_information , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_T_information },
2327 { NULL, 0, 0, 0, NULL }
2328 };
2329
2330 static int
dissect_z3950_T__untag_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2331 dissect_z3950_T__untag_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2332 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2333 T__untag_item_sequence, hf_index, ett_z3950_T__untag_item);
2334
2335 return offset;
2336 }
2337
2338
2339 static const ber_sequence_t OtherInformation_U_sequence_of[1] = {
2340 { &hf_z3950_otherInformation_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_T__untag_item },
2341 };
2342
2343 static int
dissect_z3950_OtherInformation_U(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2344 dissect_z3950_OtherInformation_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2345 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2346 OtherInformation_U_sequence_of, hf_index, ett_z3950_OtherInformation_U);
2347
2348 return offset;
2349 }
2350
2351
2352
2353 static int
dissect_z3950_OtherInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2354 dissect_z3950_OtherInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2355 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2356 hf_index, BER_CLASS_CON, 201, TRUE, dissect_z3950_OtherInformation_U);
2357
2358 return offset;
2359 }
2360
2361
2362 static const ber_sequence_t InitializeRequest_sequence[] = {
2363 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
2364 { &hf_z3950_protocolVersion, BER_CLASS_CON, 3, BER_FLAGS_NOOWNTAG, dissect_z3950_ProtocolVersion },
2365 { &hf_z3950_options , BER_CLASS_CON, 4, BER_FLAGS_NOOWNTAG, dissect_z3950_Options },
2366 { &hf_z3950_preferredMessageSize, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
2367 { &hf_z3950_exceptionalRecordSize, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
2368 { &hf_z3950_idAuthentication, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_z3950_T_idAuthentication },
2369 { &hf_z3950_implementationId, BER_CLASS_CON, 110, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
2370 { &hf_z3950_implementationName, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
2371 { &hf_z3950_implementationVersion, BER_CLASS_CON, 112, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
2372 { &hf_z3950_userInformationField, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_z3950_EXTERNAL },
2373 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
2374 { NULL, 0, 0, 0, NULL }
2375 };
2376
2377 static int
dissect_z3950_InitializeRequest(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2378 dissect_z3950_InitializeRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2379 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2380 InitializeRequest_sequence, hf_index, ett_z3950_InitializeRequest);
2381
2382 return offset;
2383 }
2384
2385
2386
2387 static int
dissect_z3950_BOOLEAN(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2388 dissect_z3950_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2389 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2390
2391 return offset;
2392 }
2393
2394
2395 static const ber_sequence_t InitializeResponse_sequence[] = {
2396 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
2397 { &hf_z3950_protocolVersion, BER_CLASS_CON, 3, BER_FLAGS_NOOWNTAG, dissect_z3950_ProtocolVersion },
2398 { &hf_z3950_options , BER_CLASS_CON, 4, BER_FLAGS_NOOWNTAG, dissect_z3950_Options },
2399 { &hf_z3950_preferredMessageSize, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
2400 { &hf_z3950_exceptionalRecordSize, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
2401 { &hf_z3950_result , BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
2402 { &hf_z3950_implementationId, BER_CLASS_CON, 110, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
2403 { &hf_z3950_implementationName, BER_CLASS_CON, 111, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
2404 { &hf_z3950_implementationVersion, BER_CLASS_CON, 112, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
2405 { &hf_z3950_userInformationField, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_z3950_EXTERNAL },
2406 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
2407 { NULL, 0, 0, 0, NULL }
2408 };
2409
2410 static int
dissect_z3950_InitializeResponse(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2411 dissect_z3950_InitializeResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2412 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2413 InitializeResponse_sequence, hf_index, ett_z3950_InitializeResponse);
2414
2415 return offset;
2416 }
2417
2418
2419
2420 static int
dissect_z3950_DatabaseName(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2421 dissect_z3950_DatabaseName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2422 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2423 hf_index, BER_CLASS_CON, 105, TRUE, dissect_z3950_InternationalString);
2424
2425 return offset;
2426 }
2427
2428
2429 static const ber_sequence_t SEQUENCE_OF_DatabaseName_sequence_of[1] = {
2430 { &hf_z3950_databaseNames_item, BER_CLASS_CON, 105, BER_FLAGS_NOOWNTAG, dissect_z3950_DatabaseName },
2431 };
2432
2433 static int
dissect_z3950_SEQUENCE_OF_DatabaseName(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2434 dissect_z3950_SEQUENCE_OF_DatabaseName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2435 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2436 SEQUENCE_OF_DatabaseName_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_DatabaseName);
2437
2438 return offset;
2439 }
2440
2441
2442
2443 static int
dissect_z3950_ElementSetName(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2444 dissect_z3950_ElementSetName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2445 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2446 hf_index, BER_CLASS_CON, 103, TRUE, dissect_z3950_InternationalString);
2447
2448 return offset;
2449 }
2450
2451
2452 static const ber_sequence_t T_databaseSpecific_item_sequence[] = {
2453 { &hf_z3950_dbName , BER_CLASS_CON, 105, BER_FLAGS_NOOWNTAG, dissect_z3950_DatabaseName },
2454 { &hf_z3950_esn , BER_CLASS_CON, 103, BER_FLAGS_NOOWNTAG, dissect_z3950_ElementSetName },
2455 { NULL, 0, 0, 0, NULL }
2456 };
2457
2458 static int
dissect_z3950_T_databaseSpecific_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2459 dissect_z3950_T_databaseSpecific_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2460 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2461 T_databaseSpecific_item_sequence, hf_index, ett_z3950_T_databaseSpecific_item);
2462
2463 return offset;
2464 }
2465
2466
2467 static const ber_sequence_t T_databaseSpecific_sequence_of[1] = {
2468 { &hf_z3950_databaseSpecific_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_T_databaseSpecific_item },
2469 };
2470
2471 static int
dissect_z3950_T_databaseSpecific(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2472 dissect_z3950_T_databaseSpecific(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2473 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2474 T_databaseSpecific_sequence_of, hf_index, ett_z3950_T_databaseSpecific);
2475
2476 return offset;
2477 }
2478
2479
2480 static const value_string z3950_ElementSetNames_vals[] = {
2481 { 0, "genericElementSetName" },
2482 { 1, "databaseSpecific" },
2483 { 0, NULL }
2484 };
2485
2486 static const ber_choice_t ElementSetNames_choice[] = {
2487 { 0, &hf_z3950_genericElementSetName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
2488 { 1, &hf_z3950_databaseSpecific, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_T_databaseSpecific },
2489 { 0, NULL, 0, 0, 0, NULL }
2490 };
2491
2492 static int
dissect_z3950_ElementSetNames(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2493 dissect_z3950_ElementSetNames(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2494 offset = dissect_ber_choice(actx, tree, tvb, offset,
2495 ElementSetNames_choice, hf_index, ett_z3950_ElementSetNames,
2496 NULL);
2497
2498 return offset;
2499 }
2500
2501
2502
2503 static int
dissect_z3950_T_type_0(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2504 dissect_z3950_T_type_0(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2505 #line 139 "./asn1/z3950/z3950.cnf"
2506 /*XXX Not implemented yet */
2507
2508
2509
2510 return offset;
2511 }
2512
2513
2514
2515 static int
dissect_z3950_AttributeSetId(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2516 dissect_z3950_AttributeSetId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2517 #line 152 "./asn1/z3950/z3950.cnf"
2518 tvbuff_t *oid_tvb=NULL;
2519
2520
2521 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, &oid_tvb);
2522
2523 #line 156 "./asn1/z3950/z3950.cnf"
2524 if (oid_tvb) {
2525 packet_info *pinfo = actx->pinfo;
2526 guint len = tvb_reported_length_remaining(oid_tvb, 0);
2527 gchar *oid_str = oid_encoded2string(pinfo->pool,
2528 tvb_get_ptr(oid_tvb, 0, len), len);
2529 gint attribute_set_idx = Z3950_ATSET_UNKNOWN;
2530 z3950_atinfo_t *atinfo_data;
2531
2532 if (g_strcmp0(oid_str, Z3950_ATSET_BIB1_OID) == 0) {
2533 attribute_set_idx = Z3950_ATSET_BIB1;
2534 }
2535 if ((atinfo_data = (z3950_atinfo_t *)p_get_proto_data(pinfo->pool, pinfo, proto_z3950, Z3950_ATINFO_KEY)) == NULL) {
2536
2537 atinfo_data = wmem_new0(pinfo->pool, z3950_atinfo_t);
2538 atinfo_data->atsetidx = attribute_set_idx;
2539 p_add_proto_data(pinfo->pool, pinfo,
2540 proto_z3950, Z3950_ATINFO_KEY, atinfo_data);
2541 }
2542 else {
2543 atinfo_data->atsetidx = attribute_set_idx;
2544 }
2545 }
2546
2547
2548 return offset;
2549 }
2550
2551
2552
2553 static int
dissect_z3950_T_attributeElement_attributeType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2554 dissect_z3950_T_attributeElement_attributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2555 #line 180 "./asn1/z3950/z3950.cnf"
2556 gint att_type=0;
2557 packet_info *pinfo = actx->pinfo;
2558 z3950_atinfo_t *atinfo_data;
2559
2560 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2561 &att_type);
2562
2563 #line 185 "./asn1/z3950/z3950.cnf"
2564 atinfo_data = (z3950_atinfo_t *)p_get_proto_data(pinfo->pool, pinfo, proto_z3950, Z3950_ATINFO_KEY);
2565 if (atinfo_data && atinfo_data->atsetidx == Z3950_ATSET_BIB1) {
2566 proto_item_append_text(actx->created_item, " (%s)",
2567 val_to_str(att_type, z3950_bib1_att_types, "Unknown bib-1 attributeType %d"));
2568 atinfo_data->attype = att_type;
2569 }
2570
2571 return offset;
2572 }
2573
2574
2575
2576 static int
dissect_z3950_T_attributeValue_numeric(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2577 dissect_z3950_T_attributeValue_numeric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2578 #line 192 "./asn1/z3950/z3950.cnf"
2579 gint att_value=0;
2580 packet_info *pinfo = actx->pinfo;
2581 z3950_atinfo_t *atinfo_data;
2582 const value_string *att_value_string = NULL;
2583
2584 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2585 &att_value);
2586
2587 #line 198 "./asn1/z3950/z3950.cnf"
2588 atinfo_data = (z3950_atinfo_t *)p_get_proto_data(pinfo->pool, pinfo, proto_z3950, Z3950_ATINFO_KEY);
2589 if (atinfo_data && atinfo_data->atsetidx == Z3950_ATSET_BIB1) {
2590 switch (atinfo_data->attype) {
2591 case Z3950_BIB1_AT_USE:
2592 att_value_string = z3950_bib1_at_use;
2593 break;
2594 case Z3950_BIB1_AT_RELATION:
2595 att_value_string = z3950_bib1_at_relation;
2596 break;
2597 case Z3950_BIB1_AT_POSITION:
2598 att_value_string = z3950_bib1_at_position;
2599 break;
2600 case Z3950_BIB1_AT_STRUCTURE:
2601 att_value_string = z3950_bib1_at_structure;
2602 break;
2603 case Z3950_BIB1_AT_TRUNCATION:
2604 att_value_string = z3950_bib1_at_truncation;
2605 break;
2606 case Z3950_BIB1_AT_COMPLETENESS:
2607 att_value_string = z3950_bib1_at_completeness;
2608 break;
2609 default:
2610 att_value_string = NULL;
2611 }
2612 if (att_value_string) {
2613 proto_item_append_text(actx->created_item, " (%s)",
2614 val_to_str(att_value, att_value_string, "Unknown bib-1 attributeValue %d"));
2615 }
2616 }
2617
2618 return offset;
2619 }
2620
2621
2622 static const value_string z3950_StringOrNumeric_vals[] = {
2623 { 1, "string" },
2624 { 2, "numeric" },
2625 { 0, NULL }
2626 };
2627
2628 static const ber_choice_t StringOrNumeric_choice[] = {
2629 { 1, &hf_z3950_string , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
2630 { 2, &hf_z3950_numeric , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
2631 { 0, NULL, 0, 0, 0, NULL }
2632 };
2633
2634 static int
dissect_z3950_StringOrNumeric(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2635 dissect_z3950_StringOrNumeric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2636 offset = dissect_ber_choice(actx, tree, tvb, offset,
2637 StringOrNumeric_choice, hf_index, ett_z3950_StringOrNumeric,
2638 NULL);
2639
2640 return offset;
2641 }
2642
2643
2644 static const ber_sequence_t SEQUENCE_OF_StringOrNumeric_sequence_of[1] = {
2645 { &hf_z3950_attributeValue_complex_list_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_StringOrNumeric },
2646 };
2647
2648 static int
dissect_z3950_SEQUENCE_OF_StringOrNumeric(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2649 dissect_z3950_SEQUENCE_OF_StringOrNumeric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2650 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2651 SEQUENCE_OF_StringOrNumeric_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_StringOrNumeric);
2652
2653 return offset;
2654 }
2655
2656
2657 static const ber_sequence_t T_semanticAction_sequence_of[1] = {
2658 { &hf_z3950_semanticAction_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_z3950_INTEGER },
2659 };
2660
2661 static int
dissect_z3950_T_semanticAction(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2662 dissect_z3950_T_semanticAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2663 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2664 T_semanticAction_sequence_of, hf_index, ett_z3950_T_semanticAction);
2665
2666 return offset;
2667 }
2668
2669
2670 static const ber_sequence_t T_attributeValue_complex_sequence[] = {
2671 { &hf_z3950_attributeValue_complex_list, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_StringOrNumeric },
2672 { &hf_z3950_semanticAction, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_semanticAction },
2673 { NULL, 0, 0, 0, NULL }
2674 };
2675
2676 static int
dissect_z3950_T_attributeValue_complex(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2677 dissect_z3950_T_attributeValue_complex(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2678 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2679 T_attributeValue_complex_sequence, hf_index, ett_z3950_T_attributeValue_complex);
2680
2681 return offset;
2682 }
2683
2684
2685 static const value_string z3950_T_attributeValue_vals[] = {
2686 { 121, "numeric" },
2687 { 224, "complex" },
2688 { 0, NULL }
2689 };
2690
2691 static const ber_choice_t T_attributeValue_choice[] = {
2692 { 121, &hf_z3950_attributeValue_numeric, BER_CLASS_CON, 121, BER_FLAGS_IMPLTAG, dissect_z3950_T_attributeValue_numeric },
2693 { 224, &hf_z3950_attributeValue_complex, BER_CLASS_CON, 224, BER_FLAGS_IMPLTAG, dissect_z3950_T_attributeValue_complex },
2694 { 0, NULL, 0, 0, 0, NULL }
2695 };
2696
2697 static int
dissect_z3950_T_attributeValue(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2698 dissect_z3950_T_attributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2699 offset = dissect_ber_choice(actx, tree, tvb, offset,
2700 T_attributeValue_choice, hf_index, ett_z3950_T_attributeValue,
2701 NULL);
2702
2703 return offset;
2704 }
2705
2706
2707 static const ber_sequence_t AttributeElement_sequence[] = {
2708 { &hf_z3950_attributeSet , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_AttributeSetId },
2709 { &hf_z3950_attributeElement_attributeType, BER_CLASS_CON, 120, BER_FLAGS_IMPLTAG, dissect_z3950_T_attributeElement_attributeType },
2710 { &hf_z3950_attributeValue, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_T_attributeValue },
2711 { NULL, 0, 0, 0, NULL }
2712 };
2713
2714 static int
dissect_z3950_AttributeElement(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2715 dissect_z3950_AttributeElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2716 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2717 AttributeElement_sequence, hf_index, ett_z3950_AttributeElement);
2718
2719 return offset;
2720 }
2721
2722
2723 static const ber_sequence_t SEQUENCE_OF_AttributeElement_sequence_of[1] = {
2724 { &hf_z3950_attributeList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeElement },
2725 };
2726
2727 static int
dissect_z3950_SEQUENCE_OF_AttributeElement(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2728 dissect_z3950_SEQUENCE_OF_AttributeElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2729 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2730 SEQUENCE_OF_AttributeElement_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_AttributeElement);
2731
2732 return offset;
2733 }
2734
2735
2736
2737 static int
dissect_z3950_AttributeList(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2738 dissect_z3950_AttributeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2739 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2740 hf_index, BER_CLASS_CON, 44, TRUE, dissect_z3950_SEQUENCE_OF_AttributeElement);
2741
2742 return offset;
2743 }
2744
2745
2746
2747 static int
dissect_z3950_T_general(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2748 dissect_z3950_T_general(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2749 #line 147 "./asn1/z3950/z3950.cnf"
2750 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2751 hf_index, BER_CLASS_CON, 2, TRUE,
2752 dissect_z3950_printable_OCTET_STRING);
2753
2754
2755
2756 return offset;
2757 }
2758
2759
2760
2761 static int
dissect_z3950_GeneralizedTime(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2762 dissect_z3950_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2763 offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
2764
2765 return offset;
2766 }
2767
2768
2769 static const ber_sequence_t Unit_sequence[] = {
2770 { &hf_z3950_unitSystem , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_z3950_InternationalString },
2771 { &hf_z3950_unitType , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_StringOrNumeric },
2772 { &hf_z3950_unit , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_StringOrNumeric },
2773 { &hf_z3950_scaleFactor , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
2774 { NULL, 0, 0, 0, NULL }
2775 };
2776
2777 static int
dissect_z3950_Unit(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2778 dissect_z3950_Unit(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2779 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2780 Unit_sequence, hf_index, ett_z3950_Unit);
2781
2782 return offset;
2783 }
2784
2785
2786 static const ber_sequence_t IntUnit_sequence[] = {
2787 { &hf_z3950_value , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
2788 { &hf_z3950_unitUsed , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_Unit },
2789 { NULL, 0, 0, 0, NULL }
2790 };
2791
2792 static int
dissect_z3950_IntUnit(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2793 dissect_z3950_IntUnit(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2794 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2795 IntUnit_sequence, hf_index, ett_z3950_IntUnit);
2796
2797 return offset;
2798 }
2799
2800
2801 static const value_string z3950_Term_vals[] = {
2802 { 45, "general" },
2803 { 215, "numeric" },
2804 { 216, "characterString" },
2805 { 217, "oid" },
2806 { 218, "dateTime" },
2807 { 219, "external" },
2808 { 220, "integerAndUnit" },
2809 { 221, "null" },
2810 { 0, NULL }
2811 };
2812
2813 static const ber_choice_t Term_choice[] = {
2814 { 45, &hf_z3950_general , BER_CLASS_CON, 45, BER_FLAGS_IMPLTAG, dissect_z3950_T_general },
2815 { 215, &hf_z3950_numeric , BER_CLASS_CON, 215, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
2816 { 216, &hf_z3950_characterString, BER_CLASS_CON, 216, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
2817 { 217, &hf_z3950_oid , BER_CLASS_CON, 217, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
2818 { 218, &hf_z3950_dateTime , BER_CLASS_CON, 218, BER_FLAGS_IMPLTAG, dissect_z3950_GeneralizedTime },
2819 { 219, &hf_z3950_external , BER_CLASS_CON, 219, BER_FLAGS_IMPLTAG, dissect_z3950_EXTERNAL },
2820 { 220, &hf_z3950_integerAndUnit, BER_CLASS_CON, 220, BER_FLAGS_IMPLTAG, dissect_z3950_IntUnit },
2821 { 221, &hf_z3950_null , BER_CLASS_CON, 221, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
2822 { 0, NULL, 0, 0, 0, NULL }
2823 };
2824
2825 static int
dissect_z3950_Term(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2826 dissect_z3950_Term(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2827 offset = dissect_ber_choice(actx, tree, tvb, offset,
2828 Term_choice, hf_index, ett_z3950_Term,
2829 NULL);
2830
2831 return offset;
2832 }
2833
2834
2835 static const ber_sequence_t AttributesPlusTerm_U_sequence[] = {
2836 { &hf_z3950_attributes , BER_CLASS_CON, 44, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeList },
2837 { &hf_z3950_term , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_Term },
2838 { NULL, 0, 0, 0, NULL }
2839 };
2840
2841 static int
dissect_z3950_AttributesPlusTerm_U(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2842 dissect_z3950_AttributesPlusTerm_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2843 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2844 AttributesPlusTerm_U_sequence, hf_index, ett_z3950_AttributesPlusTerm_U);
2845
2846 return offset;
2847 }
2848
2849
2850
2851 static int
dissect_z3950_AttributesPlusTerm(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2852 dissect_z3950_AttributesPlusTerm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2853 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2854 hf_index, BER_CLASS_CON, 102, TRUE, dissect_z3950_AttributesPlusTerm_U);
2855
2856 return offset;
2857 }
2858
2859
2860
2861 static int
dissect_z3950_ResultSetId(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2862 dissect_z3950_ResultSetId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2863 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2864 hf_index, BER_CLASS_CON, 31, TRUE, dissect_z3950_InternationalString);
2865
2866 return offset;
2867 }
2868
2869
2870 static const ber_sequence_t ResultSetPlusAttributes_U_sequence[] = {
2871 { &hf_z3950_resultSet , BER_CLASS_CON, 31, BER_FLAGS_NOOWNTAG, dissect_z3950_ResultSetId },
2872 { &hf_z3950_attributes , BER_CLASS_CON, 44, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeList },
2873 { NULL, 0, 0, 0, NULL }
2874 };
2875
2876 static int
dissect_z3950_ResultSetPlusAttributes_U(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2877 dissect_z3950_ResultSetPlusAttributes_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2878 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2879 ResultSetPlusAttributes_U_sequence, hf_index, ett_z3950_ResultSetPlusAttributes_U);
2880
2881 return offset;
2882 }
2883
2884
2885
2886 static int
dissect_z3950_ResultSetPlusAttributes(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2887 dissect_z3950_ResultSetPlusAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2888 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
2889 hf_index, BER_CLASS_CON, 214, TRUE, dissect_z3950_ResultSetPlusAttributes_U);
2890
2891 return offset;
2892 }
2893
2894
2895 static const value_string z3950_Operand_vals[] = {
2896 { 102, "attrTerm" },
2897 { 31, "resultSet" },
2898 { 214, "resultAttr" },
2899 { 0, NULL }
2900 };
2901
2902 static const ber_choice_t Operand_choice[] = {
2903 { 102, &hf_z3950_attrTerm , BER_CLASS_CON, 102, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributesPlusTerm },
2904 { 31, &hf_z3950_resultSet , BER_CLASS_CON, 31, BER_FLAGS_NOOWNTAG, dissect_z3950_ResultSetId },
2905 { 214, &hf_z3950_resultAttr , BER_CLASS_CON, 214, BER_FLAGS_NOOWNTAG, dissect_z3950_ResultSetPlusAttributes },
2906 { 0, NULL, 0, 0, 0, NULL }
2907 };
2908
2909 static int
dissect_z3950_Operand(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2910 dissect_z3950_Operand(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2911 offset = dissect_ber_choice(actx, tree, tvb, offset,
2912 Operand_choice, hf_index, ett_z3950_Operand,
2913 NULL);
2914
2915 return offset;
2916 }
2917
2918
2919 static const value_string z3950_T_relationType_vals[] = {
2920 { 1, "lessThan" },
2921 { 2, "lessThanOrEqual" },
2922 { 3, "equal" },
2923 { 4, "greaterThanOrEqual" },
2924 { 5, "greaterThan" },
2925 { 6, "notEqual" },
2926 { 0, NULL }
2927 };
2928
2929
2930 static int
dissect_z3950_T_relationType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2931 dissect_z3950_T_relationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2932 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2933 NULL);
2934
2935 return offset;
2936 }
2937
2938
2939 static const value_string z3950_KnownProximityUnit_vals[] = {
2940 { 1, "character" },
2941 { 2, "word" },
2942 { 3, "sentence" },
2943 { 4, "paragraph" },
2944 { 5, "section" },
2945 { 6, "chapter" },
2946 { 7, "document" },
2947 { 8, "element" },
2948 { 9, "subelement" },
2949 { 10, "elementType" },
2950 { 11, "byte" },
2951 { 0, NULL }
2952 };
2953
2954
2955 static int
dissect_z3950_KnownProximityUnit(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2956 dissect_z3950_KnownProximityUnit(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2957 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2958 NULL);
2959
2960 return offset;
2961 }
2962
2963
2964 static const value_string z3950_T_proximityUnitCode_vals[] = {
2965 { 1, "known" },
2966 { 2, "private" },
2967 { 0, NULL }
2968 };
2969
2970 static const ber_choice_t T_proximityUnitCode_choice[] = {
2971 { 1, &hf_z3950_known , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_KnownProximityUnit },
2972 { 2, &hf_z3950_private , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
2973 { 0, NULL, 0, 0, 0, NULL }
2974 };
2975
2976 static int
dissect_z3950_T_proximityUnitCode(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2977 dissect_z3950_T_proximityUnitCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2978 offset = dissect_ber_choice(actx, tree, tvb, offset,
2979 T_proximityUnitCode_choice, hf_index, ett_z3950_T_proximityUnitCode,
2980 NULL);
2981
2982 return offset;
2983 }
2984
2985
2986 static const ber_sequence_t ProximityOperator_sequence[] = {
2987 { &hf_z3950_exclusion , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
2988 { &hf_z3950_distance , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
2989 { &hf_z3950_ordered , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
2990 { &hf_z3950_relationType , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_T_relationType },
2991 { &hf_z3950_proximityUnitCode, BER_CLASS_CON, 5, 0, dissect_z3950_T_proximityUnitCode },
2992 { NULL, 0, 0, 0, NULL }
2993 };
2994
2995 static int
dissect_z3950_ProximityOperator(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)2996 dissect_z3950_ProximityOperator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2997 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2998 ProximityOperator_sequence, hf_index, ett_z3950_ProximityOperator);
2999
3000 return offset;
3001 }
3002
3003
3004 static const value_string z3950_Operator_U_vals[] = {
3005 { 0, "and" },
3006 { 1, "or" },
3007 { 2, "and-not" },
3008 { 3, "prox" },
3009 { 0, NULL }
3010 };
3011
3012 static const ber_choice_t Operator_U_choice[] = {
3013 { 0, &hf_z3950_and , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
3014 { 1, &hf_z3950_or , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
3015 { 2, &hf_z3950_and_not , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
3016 { 3, &hf_z3950_prox , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_ProximityOperator },
3017 { 0, NULL, 0, 0, 0, NULL }
3018 };
3019
3020 static int
dissect_z3950_Operator_U(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3021 dissect_z3950_Operator_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3022 offset = dissect_ber_choice(actx, tree, tvb, offset,
3023 Operator_U_choice, hf_index, ett_z3950_Operator_U,
3024 NULL);
3025
3026 return offset;
3027 }
3028
3029
3030
3031 static int
dissect_z3950_Operator(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3032 dissect_z3950_Operator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3033 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3034 hf_index, BER_CLASS_CON, 46, FALSE, dissect_z3950_Operator_U);
3035
3036 return offset;
3037 }
3038
3039
3040 static const ber_sequence_t T_rpnRpnOp_sequence[] = {
3041 { &hf_z3950_rpn1 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_RPNStructure },
3042 { &hf_z3950_rpn2 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_RPNStructure },
3043 { &hf_z3950_operatorRpnOp , BER_CLASS_CON, 46, BER_FLAGS_NOOWNTAG, dissect_z3950_Operator },
3044 { NULL, 0, 0, 0, NULL }
3045 };
3046
3047 static int
dissect_z3950_T_rpnRpnOp(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3048 dissect_z3950_T_rpnRpnOp(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3049 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3050 T_rpnRpnOp_sequence, hf_index, ett_z3950_T_rpnRpnOp);
3051
3052 return offset;
3053 }
3054
3055
3056 static const value_string z3950_RPNStructure_vals[] = {
3057 { 0, "op" },
3058 { 1, "rpnRpnOp" },
3059 { 0, NULL }
3060 };
3061
3062 static const ber_choice_t RPNStructure_choice[] = {
3063 { 0, &hf_z3950_operandRpnOp , BER_CLASS_CON, 0, 0, dissect_z3950_Operand },
3064 { 1, &hf_z3950_rpnRpnOp , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_T_rpnRpnOp },
3065 { 0, NULL, 0, 0, 0, NULL }
3066 };
3067
3068 static int
dissect_z3950_RPNStructure(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3069 dissect_z3950_RPNStructure(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3070 offset = dissect_ber_choice(actx, tree, tvb, offset,
3071 RPNStructure_choice, hf_index, ett_z3950_RPNStructure,
3072 NULL);
3073
3074 return offset;
3075 }
3076
3077
3078 static const ber_sequence_t RPNQuery_sequence[] = {
3079 { &hf_z3950_attributeSet , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeSetId },
3080 { &hf_z3950_rpn , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_RPNStructure },
3081 { NULL, 0, 0, 0, NULL }
3082 };
3083
3084 static int
dissect_z3950_RPNQuery(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3085 dissect_z3950_RPNQuery(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3086 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3087 RPNQuery_sequence, hf_index, ett_z3950_RPNQuery);
3088
3089 return offset;
3090 }
3091
3092
3093 static const value_string z3950_Query_vals[] = {
3094 { 0, "type-0" },
3095 { 1, "type-1" },
3096 { 2, "type-2" },
3097 { 100, "type-100" },
3098 { 101, "type-101" },
3099 { 102, "type-102" },
3100 { 0, NULL }
3101 };
3102
3103 static const ber_choice_t Query_choice[] = {
3104 { 0, &hf_z3950_type_0 , BER_CLASS_CON, 0, 0, dissect_z3950_T_type_0 },
3105 { 1, &hf_z3950_type_1 , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_RPNQuery },
3106 { 2, &hf_z3950_type_2 , BER_CLASS_CON, 2, 0, dissect_z3950_OCTET_STRING },
3107 { 100, &hf_z3950_type_100 , BER_CLASS_CON, 100, 0, dissect_z3950_OCTET_STRING },
3108 { 101, &hf_z3950_type_101 , BER_CLASS_CON, 101, BER_FLAGS_IMPLTAG, dissect_z3950_RPNQuery },
3109 { 102, &hf_z3950_type_102 , BER_CLASS_CON, 102, 0, dissect_z3950_OCTET_STRING },
3110 { 0, NULL, 0, 0, 0, NULL }
3111 };
3112
3113 static int
dissect_z3950_Query(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3114 dissect_z3950_Query(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3115 offset = dissect_ber_choice(actx, tree, tvb, offset,
3116 Query_choice, hf_index, ett_z3950_Query,
3117 NULL);
3118
3119 return offset;
3120 }
3121
3122
3123 static const ber_sequence_t SearchRequest_sequence[] = {
3124 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
3125 { &hf_z3950_smallSetUpperBound, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3126 { &hf_z3950_largeSetLowerBound, BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3127 { &hf_z3950_mediumSetPresentNumber, BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3128 { &hf_z3950_replaceIndicator, BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
3129 { &hf_z3950_resultSetName , BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
3130 { &hf_z3950_databaseNames , BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_DatabaseName },
3131 { &hf_z3950_smallSetElementSetNames, BER_CLASS_CON, 100, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_ElementSetNames },
3132 { &hf_z3950_mediumSetElementSetNames, BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_ElementSetNames },
3133 { &hf_z3950_preferredRecordSyntax, BER_CLASS_CON, 104, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
3134 { &hf_z3950_query , BER_CLASS_CON, 21, BER_FLAGS_NOTCHKTAG, dissect_z3950_Query },
3135 { &hf_z3950_additionalSearchInfo, BER_CLASS_CON, 203, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OtherInformation },
3136 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
3137 { NULL, 0, 0, 0, NULL }
3138 };
3139
3140 static int
dissect_z3950_SearchRequest(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3141 dissect_z3950_SearchRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3142 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3143 SearchRequest_sequence, hf_index, ett_z3950_SearchRequest);
3144
3145 return offset;
3146 }
3147
3148
3149 static const value_string z3950_T_search_resultSetStatus_vals[] = {
3150 { 1, "subset" },
3151 { 2, "interim" },
3152 { 3, "none" },
3153 { 0, NULL }
3154 };
3155
3156
3157 static int
dissect_z3950_T_search_resultSetStatus(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3158 dissect_z3950_T_search_resultSetStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3159 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3160 NULL);
3161
3162 return offset;
3163 }
3164
3165
3166 static const value_string z3950_PresentStatus_U_vals[] = {
3167 { 0, "success" },
3168 { 1, "partial-1" },
3169 { 2, "partial-2" },
3170 { 3, "partial-3" },
3171 { 4, "partial-4" },
3172 { 5, "failure" },
3173 { 0, NULL }
3174 };
3175
3176
3177 static int
dissect_z3950_PresentStatus_U(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3178 dissect_z3950_PresentStatus_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3179 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3180 NULL);
3181
3182 return offset;
3183 }
3184
3185
3186
3187 static int
dissect_z3950_PresentStatus(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3188 dissect_z3950_PresentStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3189 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3190 hf_index, BER_CLASS_CON, 27, TRUE, dissect_z3950_PresentStatus_U);
3191
3192 return offset;
3193 }
3194
3195
3196
3197 static int
dissect_z3950_T_diagnosticSetId(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3198 dissect_z3950_T_diagnosticSetId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3199 #line 228 "./asn1/z3950/z3950.cnf"
3200 tvbuff_t *oid_tvb=NULL;
3201
3202
3203 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, &oid_tvb);
3204
3205 #line 232 "./asn1/z3950/z3950.cnf"
3206 if (oid_tvb) {
3207 packet_info *pinfo = actx->pinfo;
3208 guint len = tvb_reported_length_remaining(oid_tvb, 0);
3209 gchar *oid_str = oid_encoded2string(pinfo->pool,
3210 tvb_get_ptr(oid_tvb, 0, len), len);
3211 gint diagset_idx = Z3950_DIAGSET_UNKNOWN;
3212 z3950_diaginfo_t *diaginfo_data;
3213
3214 if (g_strcmp0(oid_str, Z3950_DIAGSET_BIB1_OID) == 0) {
3215 diagset_idx = Z3950_DIAGSET_BIB1;
3216 }
3217 if ((diaginfo_data = (z3950_diaginfo_t *)p_get_proto_data(pinfo->pool, pinfo, proto_z3950, Z3950_DIAGSET_KEY)) == NULL) {
3218
3219 diaginfo_data = wmem_new0(pinfo->pool, z3950_diaginfo_t);
3220 diaginfo_data->diagsetidx = diagset_idx;
3221 p_add_proto_data(pinfo->pool, pinfo,
3222 proto_z3950, Z3950_DIAGSET_KEY, diaginfo_data);
3223 }
3224 else {
3225 diaginfo_data->diagsetidx = diagset_idx;
3226 }
3227 }
3228
3229
3230 return offset;
3231 }
3232
3233
3234
3235 static int
dissect_z3950_T_condition(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3236 dissect_z3950_T_condition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3237 #line 256 "./asn1/z3950/z3950.cnf"
3238 gint diag_condition=0;
3239 packet_info *pinfo = actx->pinfo;
3240 z3950_diaginfo_t *diaginfo_data;
3241
3242 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3243 &diag_condition);
3244
3245 #line 261 "./asn1/z3950/z3950.cnf"
3246 diaginfo_data = (z3950_diaginfo_t *)p_get_proto_data(pinfo->pool, pinfo, proto_z3950, Z3950_DIAGSET_KEY);
3247 if (diaginfo_data && diaginfo_data->diagsetidx == Z3950_DIAGSET_BIB1) {
3248 proto_item_append_text(actx->created_item, " (%s)",
3249 val_to_str(diag_condition, z3950_bib1_diagconditions, "Unknown bib-1 diagnostic %d"));
3250 diaginfo_data->diagcondition = diag_condition;
3251 }
3252
3253 return offset;
3254 }
3255
3256
3257 static const value_string z3950_T_addinfo_vals[] = {
3258 { 0, "v2Addinfo" },
3259 { 1, "v3Addinfo" },
3260 { 0, NULL }
3261 };
3262
3263 static const ber_choice_t T_addinfo_choice[] = {
3264 { 0, &hf_z3950_v2Addinfo , BER_CLASS_UNI, BER_UNI_TAG_VisibleString, BER_FLAGS_NOOWNTAG, dissect_z3950_VisibleString },
3265 { 1, &hf_z3950_v3Addinfo , BER_CLASS_UNI, BER_UNI_TAG_GeneralString, BER_FLAGS_NOOWNTAG, dissect_z3950_InternationalString },
3266 { 0, NULL, 0, 0, 0, NULL }
3267 };
3268
3269 static int
dissect_z3950_T_addinfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3270 dissect_z3950_T_addinfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3271 offset = dissect_ber_choice(actx, tree, tvb, offset,
3272 T_addinfo_choice, hf_index, ett_z3950_T_addinfo,
3273 NULL);
3274
3275 return offset;
3276 }
3277
3278
3279 static const ber_sequence_t DefaultDiagFormat_sequence[] = {
3280 { &hf_z3950_diagnosticSetId, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_T_diagnosticSetId },
3281 { &hf_z3950_condition , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_z3950_T_condition },
3282 { &hf_z3950_addinfo , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_T_addinfo },
3283 { NULL, 0, 0, 0, NULL }
3284 };
3285
3286 static int
dissect_z3950_DefaultDiagFormat(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3287 dissect_z3950_DefaultDiagFormat(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3288 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3289 DefaultDiagFormat_sequence, hf_index, ett_z3950_DefaultDiagFormat);
3290
3291 return offset;
3292 }
3293
3294
3295 static const value_string z3950_DiagRec_vals[] = {
3296 { 0, "defaultFormat" },
3297 { 1, "externallyDefined" },
3298 { 0, NULL }
3299 };
3300
3301 static const ber_choice_t DiagRec_choice[] = {
3302 { 0, &hf_z3950_defaultFormat , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_DefaultDiagFormat },
3303 { 1, &hf_z3950_externallyDefined, BER_CLASS_UNI, BER_UNI_TAG_EXTERNAL, BER_FLAGS_NOOWNTAG, dissect_z3950_EXTERNAL },
3304 { 0, NULL, 0, 0, 0, NULL }
3305 };
3306
3307 static int
dissect_z3950_DiagRec(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3308 dissect_z3950_DiagRec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3309 offset = dissect_ber_choice(actx, tree, tvb, offset,
3310 DiagRec_choice, hf_index, ett_z3950_DiagRec,
3311 NULL);
3312
3313 return offset;
3314 }
3315
3316
3317 static const value_string z3950_FragmentSyntax_vals[] = {
3318 { 0, "externallyTagged" },
3319 { 1, "notExternallyTagged" },
3320 { 0, NULL }
3321 };
3322
3323 static const ber_choice_t FragmentSyntax_choice[] = {
3324 { 0, &hf_z3950_externallyTagged, BER_CLASS_UNI, BER_UNI_TAG_EXTERNAL, BER_FLAGS_NOOWNTAG, dissect_z3950_EXTERNAL },
3325 { 1, &hf_z3950_notExternallyTagged, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_z3950_OCTET_STRING },
3326 { 0, NULL, 0, 0, 0, NULL }
3327 };
3328
3329 static int
dissect_z3950_FragmentSyntax(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3330 dissect_z3950_FragmentSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3331 offset = dissect_ber_choice(actx, tree, tvb, offset,
3332 FragmentSyntax_choice, hf_index, ett_z3950_FragmentSyntax,
3333 NULL);
3334
3335 return offset;
3336 }
3337
3338
3339 static const value_string z3950_T_record_vals[] = {
3340 { 1, "retrievalRecord" },
3341 { 2, "surrogateDiagnostic" },
3342 { 3, "startingFragment" },
3343 { 4, "intermediateFragment" },
3344 { 5, "finalFragment" },
3345 { 0, NULL }
3346 };
3347
3348 static const ber_choice_t T_record_choice[] = {
3349 { 1, &hf_z3950_retrievalRecord, BER_CLASS_CON, 1, 0, dissect_z3950_EXTERNAL },
3350 { 2, &hf_z3950_surrogateDiagnostic, BER_CLASS_CON, 2, 0, dissect_z3950_DiagRec },
3351 { 3, &hf_z3950_startingFragment, BER_CLASS_CON, 3, 0, dissect_z3950_FragmentSyntax },
3352 { 4, &hf_z3950_intermediateFragment, BER_CLASS_CON, 4, 0, dissect_z3950_FragmentSyntax },
3353 { 5, &hf_z3950_finalFragment , BER_CLASS_CON, 5, 0, dissect_z3950_FragmentSyntax },
3354 { 0, NULL, 0, 0, 0, NULL }
3355 };
3356
3357 static int
dissect_z3950_T_record(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3358 dissect_z3950_T_record(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3359 offset = dissect_ber_choice(actx, tree, tvb, offset,
3360 T_record_choice, hf_index, ett_z3950_T_record,
3361 NULL);
3362
3363 return offset;
3364 }
3365
3366
3367 static const ber_sequence_t NamePlusRecord_sequence[] = {
3368 { &hf_z3950_namePlusRecord_name, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_DatabaseName },
3369 { &hf_z3950_record , BER_CLASS_CON, 1, 0, dissect_z3950_T_record },
3370 { NULL, 0, 0, 0, NULL }
3371 };
3372
3373 static int
dissect_z3950_NamePlusRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3374 dissect_z3950_NamePlusRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3375 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3376 NamePlusRecord_sequence, hf_index, ett_z3950_NamePlusRecord);
3377
3378 return offset;
3379 }
3380
3381
3382 static const ber_sequence_t SEQUENCE_OF_NamePlusRecord_sequence_of[1] = {
3383 { &hf_z3950_segmentRecords_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_NamePlusRecord },
3384 };
3385
3386 static int
dissect_z3950_SEQUENCE_OF_NamePlusRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3387 dissect_z3950_SEQUENCE_OF_NamePlusRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3388 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3389 SEQUENCE_OF_NamePlusRecord_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_NamePlusRecord);
3390
3391 return offset;
3392 }
3393
3394
3395 static const ber_sequence_t SEQUENCE_OF_DiagRec_sequence_of[1] = {
3396 { &hf_z3950_multipleNonSurDiagnostics_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_DiagRec },
3397 };
3398
3399 static int
dissect_z3950_SEQUENCE_OF_DiagRec(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3400 dissect_z3950_SEQUENCE_OF_DiagRec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3401 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3402 SEQUENCE_OF_DiagRec_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_DiagRec);
3403
3404 return offset;
3405 }
3406
3407
3408 static const value_string z3950_Records_vals[] = {
3409 { 28, "responseRecords" },
3410 { 130, "nonSurrogateDiagnostic" },
3411 { 205, "multipleNonSurDiagnostics" },
3412 { 0, NULL }
3413 };
3414
3415 static const ber_choice_t Records_choice[] = {
3416 { 28, &hf_z3950_responseRecords, BER_CLASS_CON, 28, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_NamePlusRecord },
3417 { 130, &hf_z3950_nonSurrogateDiagnostic, BER_CLASS_CON, 130, BER_FLAGS_IMPLTAG, dissect_z3950_DefaultDiagFormat },
3418 { 205, &hf_z3950_multipleNonSurDiagnostics, BER_CLASS_CON, 205, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_DiagRec },
3419 { 0, NULL, 0, 0, 0, NULL }
3420 };
3421
3422 static int
dissect_z3950_Records(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3423 dissect_z3950_Records(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3424 offset = dissect_ber_choice(actx, tree, tvb, offset,
3425 Records_choice, hf_index, ett_z3950_Records,
3426 NULL);
3427
3428 return offset;
3429 }
3430
3431
3432 static const ber_sequence_t SearchResponse_sequence[] = {
3433 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
3434 { &hf_z3950_resultCount , BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3435 { &hf_z3950_numberOfRecordsReturned, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3436 { &hf_z3950_nextResultSetPosition, BER_CLASS_CON, 25, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3437 { &hf_z3950_searchStatus , BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
3438 { &hf_z3950_search_resultSetStatus, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_search_resultSetStatus },
3439 { &hf_z3950_presentStatus , BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_PresentStatus },
3440 { &hf_z3950_records , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_Records },
3441 { &hf_z3950_additionalSearchInfo, BER_CLASS_CON, 203, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OtherInformation },
3442 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
3443 { NULL, 0, 0, 0, NULL }
3444 };
3445
3446 static int
dissect_z3950_SearchResponse(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3447 dissect_z3950_SearchResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3448 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3449 SearchResponse_sequence, hf_index, ett_z3950_SearchResponse);
3450
3451 return offset;
3452 }
3453
3454
3455 static const ber_sequence_t Range_sequence[] = {
3456 { &hf_z3950_startingPosition, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3457 { &hf_z3950_numberOfRecords, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3458 { NULL, 0, 0, 0, NULL }
3459 };
3460
3461 static int
dissect_z3950_Range(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3462 dissect_z3950_Range(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3463 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3464 Range_sequence, hf_index, ett_z3950_Range);
3465
3466 return offset;
3467 }
3468
3469
3470 static const ber_sequence_t SEQUENCE_OF_Range_sequence_of[1] = {
3471 { &hf_z3950_additionalRanges_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_Range },
3472 };
3473
3474 static int
dissect_z3950_SEQUENCE_OF_Range(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3475 dissect_z3950_SEQUENCE_OF_Range(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3476 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3477 SEQUENCE_OF_Range_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_Range);
3478
3479 return offset;
3480 }
3481
3482
3483 static const value_string z3950_T_specification_elementSpec_vals[] = {
3484 { 1, "elementSetName" },
3485 { 2, "externalEspec" },
3486 { 0, NULL }
3487 };
3488
3489 static const ber_choice_t T_specification_elementSpec_choice[] = {
3490 { 1, &hf_z3950_elementSetName, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
3491 { 2, &hf_z3950_externalEspec , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_EXTERNAL },
3492 { 0, NULL, 0, 0, 0, NULL }
3493 };
3494
3495 static int
dissect_z3950_T_specification_elementSpec(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3496 dissect_z3950_T_specification_elementSpec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3497 offset = dissect_ber_choice(actx, tree, tvb, offset,
3498 T_specification_elementSpec_choice, hf_index, ett_z3950_T_specification_elementSpec,
3499 NULL);
3500
3501 return offset;
3502 }
3503
3504
3505 static const ber_sequence_t Specification_sequence[] = {
3506 { &hf_z3950_schema , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
3507 { &hf_z3950_specification_elementSpec, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_z3950_T_specification_elementSpec },
3508 { NULL, 0, 0, 0, NULL }
3509 };
3510
3511 static int
dissect_z3950_Specification(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3512 dissect_z3950_Specification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3513 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3514 Specification_sequence, hf_index, ett_z3950_Specification);
3515
3516 return offset;
3517 }
3518
3519
3520 static const ber_sequence_t T_dbSpecific_item_sequence[] = {
3521 { &hf_z3950_db , BER_CLASS_CON, 1, 0, dissect_z3950_DatabaseName },
3522 { &hf_z3950_spec , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_Specification },
3523 { NULL, 0, 0, 0, NULL }
3524 };
3525
3526 static int
dissect_z3950_T_dbSpecific_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3527 dissect_z3950_T_dbSpecific_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3528 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3529 T_dbSpecific_item_sequence, hf_index, ett_z3950_T_dbSpecific_item);
3530
3531 return offset;
3532 }
3533
3534
3535 static const ber_sequence_t T_dbSpecific_sequence_of[1] = {
3536 { &hf_z3950_dbSpecific_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_T_dbSpecific_item },
3537 };
3538
3539 static int
dissect_z3950_T_dbSpecific(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3540 dissect_z3950_T_dbSpecific(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3541 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3542 T_dbSpecific_sequence_of, hf_index, ett_z3950_T_dbSpecific);
3543
3544 return offset;
3545 }
3546
3547
3548 static const ber_sequence_t T_compSpec_recordSyntax_sequence_of[1] = {
3549 { &hf_z3950_compSpec_recordSyntax_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_OBJECT_IDENTIFIER },
3550 };
3551
3552 static int
dissect_z3950_T_compSpec_recordSyntax(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3553 dissect_z3950_T_compSpec_recordSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3554 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3555 T_compSpec_recordSyntax_sequence_of, hf_index, ett_z3950_T_compSpec_recordSyntax);
3556
3557 return offset;
3558 }
3559
3560
3561 static const ber_sequence_t CompSpec_sequence[] = {
3562 { &hf_z3950_selectAlternativeSyntax, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
3563 { &hf_z3950_compSpec_generic, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_Specification },
3564 { &hf_z3950_dbSpecific , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_dbSpecific },
3565 { &hf_z3950_compSpec_recordSyntax, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_compSpec_recordSyntax },
3566 { NULL, 0, 0, 0, NULL }
3567 };
3568
3569 static int
dissect_z3950_CompSpec(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3570 dissect_z3950_CompSpec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3571 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3572 CompSpec_sequence, hf_index, ett_z3950_CompSpec);
3573
3574 return offset;
3575 }
3576
3577
3578 static const value_string z3950_T_recordComposition_vals[] = {
3579 { 19, "simple" },
3580 { 209, "complex" },
3581 { 0, NULL }
3582 };
3583
3584 static const ber_choice_t T_recordComposition_choice[] = {
3585 { 19, &hf_z3950_simple , BER_CLASS_CON, 19, 0, dissect_z3950_ElementSetNames },
3586 { 209, &hf_z3950_recordComposition_complex, BER_CLASS_CON, 209, BER_FLAGS_IMPLTAG, dissect_z3950_CompSpec },
3587 { 0, NULL, 0, 0, 0, NULL }
3588 };
3589
3590 static int
dissect_z3950_T_recordComposition(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3591 dissect_z3950_T_recordComposition(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3592 offset = dissect_ber_choice(actx, tree, tvb, offset,
3593 T_recordComposition_choice, hf_index, ett_z3950_T_recordComposition,
3594 NULL);
3595
3596 return offset;
3597 }
3598
3599
3600 static const ber_sequence_t PresentRequest_sequence[] = {
3601 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
3602 { &hf_z3950_resultSetId , BER_CLASS_CON, 31, BER_FLAGS_NOOWNTAG, dissect_z3950_ResultSetId },
3603 { &hf_z3950_resultSetStartPoint, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3604 { &hf_z3950_numberOfRecordsRequested, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3605 { &hf_z3950_additionalRanges, BER_CLASS_CON, 212, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_Range },
3606 { &hf_z3950_recordComposition, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_T_recordComposition },
3607 { &hf_z3950_preferredRecordSyntax, BER_CLASS_CON, 104, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
3608 { &hf_z3950_maxSegmentCount, BER_CLASS_CON, 204, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3609 { &hf_z3950_maxRecordSize , BER_CLASS_CON, 206, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3610 { &hf_z3950_maxSegmentSize, BER_CLASS_CON, 207, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3611 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
3612 { NULL, 0, 0, 0, NULL }
3613 };
3614
3615 static int
dissect_z3950_PresentRequest(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3616 dissect_z3950_PresentRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3617 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3618 PresentRequest_sequence, hf_index, ett_z3950_PresentRequest);
3619
3620 return offset;
3621 }
3622
3623
3624 static const ber_sequence_t PresentResponse_sequence[] = {
3625 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
3626 { &hf_z3950_numberOfRecordsReturned, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3627 { &hf_z3950_nextResultSetPosition, BER_CLASS_CON, 25, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3628 { &hf_z3950_presentStatus , BER_CLASS_CON, 27, BER_FLAGS_NOOWNTAG, dissect_z3950_PresentStatus },
3629 { &hf_z3950_records , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_Records },
3630 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
3631 { NULL, 0, 0, 0, NULL }
3632 };
3633
3634 static int
dissect_z3950_PresentResponse(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3635 dissect_z3950_PresentResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3636 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3637 PresentResponse_sequence, hf_index, ett_z3950_PresentResponse);
3638
3639 return offset;
3640 }
3641
3642
3643 static const value_string z3950_T_deleteFunction_vals[] = {
3644 { 0, "list" },
3645 { 1, "all" },
3646 { 0, NULL }
3647 };
3648
3649
3650 static int
dissect_z3950_T_deleteFunction(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3651 dissect_z3950_T_deleteFunction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3652 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3653 NULL);
3654
3655 return offset;
3656 }
3657
3658
3659 static const ber_sequence_t SEQUENCE_OF_ResultSetId_sequence_of[1] = {
3660 { &hf_z3950_resultSetList_item, BER_CLASS_CON, 31, BER_FLAGS_NOOWNTAG, dissect_z3950_ResultSetId },
3661 };
3662
3663 static int
dissect_z3950_SEQUENCE_OF_ResultSetId(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3664 dissect_z3950_SEQUENCE_OF_ResultSetId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3665 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3666 SEQUENCE_OF_ResultSetId_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_ResultSetId);
3667
3668 return offset;
3669 }
3670
3671
3672 static const ber_sequence_t DeleteResultSetRequest_sequence[] = {
3673 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
3674 { &hf_z3950_deleteFunction, BER_CLASS_CON, 32, BER_FLAGS_IMPLTAG, dissect_z3950_T_deleteFunction },
3675 { &hf_z3950_resultSetList , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_SEQUENCE_OF_ResultSetId },
3676 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
3677 { NULL, 0, 0, 0, NULL }
3678 };
3679
3680 static int
dissect_z3950_DeleteResultSetRequest(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3681 dissect_z3950_DeleteResultSetRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3682 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3683 DeleteResultSetRequest_sequence, hf_index, ett_z3950_DeleteResultSetRequest);
3684
3685 return offset;
3686 }
3687
3688
3689 static const value_string z3950_DeleteSetStatus_U_vals[] = {
3690 { 0, "success" },
3691 { 1, "resultSetDidNotExist" },
3692 { 2, "previouslyDeletedByTarget" },
3693 { 3, "systemProblemAtTarget" },
3694 { 4, "accessNotAllowed" },
3695 { 5, "resourceControlAtOrigin" },
3696 { 6, "resourceControlAtTarget" },
3697 { 7, "bulkDeleteNotSupported" },
3698 { 8, "notAllRsltSetsDeletedOnBulkDlte" },
3699 { 9, "notAllRequestedResultSetsDeleted" },
3700 { 10, "resultSetInUse" },
3701 { 0, NULL }
3702 };
3703
3704
3705 static int
dissect_z3950_DeleteSetStatus_U(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3706 dissect_z3950_DeleteSetStatus_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3707 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3708 NULL);
3709
3710 return offset;
3711 }
3712
3713
3714
3715 static int
dissect_z3950_DeleteSetStatus(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3716 dissect_z3950_DeleteSetStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3717 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
3718 hf_index, BER_CLASS_CON, 33, TRUE, dissect_z3950_DeleteSetStatus_U);
3719
3720 return offset;
3721 }
3722
3723
3724 static const ber_sequence_t ListStatuses_item_sequence[] = {
3725 { &hf_z3950_listStatuses_id, BER_CLASS_CON, 31, BER_FLAGS_NOOWNTAG, dissect_z3950_ResultSetId },
3726 { &hf_z3950_status , BER_CLASS_CON, 33, BER_FLAGS_NOOWNTAG, dissect_z3950_DeleteSetStatus },
3727 { NULL, 0, 0, 0, NULL }
3728 };
3729
3730 static int
dissect_z3950_ListStatuses_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3731 dissect_z3950_ListStatuses_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3732 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3733 ListStatuses_item_sequence, hf_index, ett_z3950_ListStatuses_item);
3734
3735 return offset;
3736 }
3737
3738
3739 static const ber_sequence_t ListStatuses_sequence_of[1] = {
3740 { &hf_z3950_ListStatuses_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_ListStatuses_item },
3741 };
3742
3743 static int
dissect_z3950_ListStatuses(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3744 dissect_z3950_ListStatuses(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3745 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3746 ListStatuses_sequence_of, hf_index, ett_z3950_ListStatuses);
3747
3748 return offset;
3749 }
3750
3751
3752 static const ber_sequence_t DeleteResultSetResponse_sequence[] = {
3753 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
3754 { &hf_z3950_deleteOperationStatus, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_DeleteSetStatus },
3755 { &hf_z3950_deleteListStatuses, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_ListStatuses },
3756 { &hf_z3950_numberNotDeleted, BER_CLASS_CON, 34, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
3757 { &hf_z3950_bulkStatuses , BER_CLASS_CON, 35, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_ListStatuses },
3758 { &hf_z3950_deleteMessage , BER_CLASS_CON, 36, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
3759 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
3760 { NULL, 0, 0, 0, NULL }
3761 };
3762
3763 static int
dissect_z3950_DeleteResultSetResponse(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3764 dissect_z3950_DeleteResultSetResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3765 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3766 DeleteResultSetResponse_sequence, hf_index, ett_z3950_DeleteResultSetResponse);
3767
3768 return offset;
3769 }
3770
3771
3772 static const value_string z3950_T_securityChallenge_vals[] = {
3773 { 37, "simpleForm" },
3774 { 0, "externallyDefined" },
3775 { 0, NULL }
3776 };
3777
3778 static const ber_choice_t T_securityChallenge_choice[] = {
3779 { 37, &hf_z3950_simpleForm , BER_CLASS_CON, 37, BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
3780 { 0, &hf_z3950_externallyDefined, BER_CLASS_CON, 0, 0, dissect_z3950_EXTERNAL },
3781 { 0, NULL, 0, 0, 0, NULL }
3782 };
3783
3784 static int
dissect_z3950_T_securityChallenge(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3785 dissect_z3950_T_securityChallenge(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3786 offset = dissect_ber_choice(actx, tree, tvb, offset,
3787 T_securityChallenge_choice, hf_index, ett_z3950_T_securityChallenge,
3788 NULL);
3789
3790 return offset;
3791 }
3792
3793
3794 static const ber_sequence_t AccessControlRequest_sequence[] = {
3795 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
3796 { &hf_z3950_securityChallenge, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_T_securityChallenge },
3797 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
3798 { NULL, 0, 0, 0, NULL }
3799 };
3800
3801 static int
dissect_z3950_AccessControlRequest(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3802 dissect_z3950_AccessControlRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3803 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3804 AccessControlRequest_sequence, hf_index, ett_z3950_AccessControlRequest);
3805
3806 return offset;
3807 }
3808
3809
3810 static const value_string z3950_T_securityChallengeResponse_vals[] = {
3811 { 38, "simpleForm" },
3812 { 0, "externallyDefined" },
3813 { 0, NULL }
3814 };
3815
3816 static const ber_choice_t T_securityChallengeResponse_choice[] = {
3817 { 38, &hf_z3950_simpleForm , BER_CLASS_CON, 38, BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
3818 { 0, &hf_z3950_externallyDefined, BER_CLASS_CON, 0, 0, dissect_z3950_EXTERNAL },
3819 { 0, NULL, 0, 0, 0, NULL }
3820 };
3821
3822 static int
dissect_z3950_T_securityChallengeResponse(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3823 dissect_z3950_T_securityChallengeResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3824 offset = dissect_ber_choice(actx, tree, tvb, offset,
3825 T_securityChallengeResponse_choice, hf_index, ett_z3950_T_securityChallengeResponse,
3826 NULL);
3827
3828 return offset;
3829 }
3830
3831
3832 static const ber_sequence_t AccessControlResponse_sequence[] = {
3833 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
3834 { &hf_z3950_securityChallengeResponse, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_T_securityChallengeResponse },
3835 { &hf_z3950_diagnostic , BER_CLASS_CON, 223, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_DiagRec },
3836 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
3837 { NULL, 0, 0, 0, NULL }
3838 };
3839
3840 static int
dissect_z3950_AccessControlResponse(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3841 dissect_z3950_AccessControlResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3842 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3843 AccessControlResponse_sequence, hf_index, ett_z3950_AccessControlResponse);
3844
3845 return offset;
3846 }
3847
3848
3849
3850 static int
dissect_z3950_ResourceReport(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3851 dissect_z3950_ResourceReport(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3852 offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
3853
3854 return offset;
3855 }
3856
3857
3858 static const value_string z3950_T_partialResultsAvailable_vals[] = {
3859 { 1, "subset" },
3860 { 2, "interim" },
3861 { 3, "none" },
3862 { 0, NULL }
3863 };
3864
3865
3866 static int
dissect_z3950_T_partialResultsAvailable(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3867 dissect_z3950_T_partialResultsAvailable(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3868 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3869 NULL);
3870
3871 return offset;
3872 }
3873
3874
3875 static const ber_sequence_t ResourceControlRequest_sequence[] = {
3876 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
3877 { &hf_z3950_suspendedFlag , BER_CLASS_CON, 39, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
3878 { &hf_z3950_resourceReport, BER_CLASS_CON, 40, BER_FLAGS_OPTIONAL, dissect_z3950_ResourceReport },
3879 { &hf_z3950_partialResultsAvailable, BER_CLASS_CON, 41, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_partialResultsAvailable },
3880 { &hf_z3950_resourceControlRequest_responseRequired, BER_CLASS_CON, 42, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
3881 { &hf_z3950_triggeredRequestFlag, BER_CLASS_CON, 43, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
3882 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
3883 { NULL, 0, 0, 0, NULL }
3884 };
3885
3886 static int
dissect_z3950_ResourceControlRequest(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3887 dissect_z3950_ResourceControlRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3888 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3889 ResourceControlRequest_sequence, hf_index, ett_z3950_ResourceControlRequest);
3890
3891 return offset;
3892 }
3893
3894
3895 static const ber_sequence_t ResourceControlResponse_sequence[] = {
3896 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
3897 { &hf_z3950_continueFlag , BER_CLASS_CON, 44, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
3898 { &hf_z3950_resultSetWanted, BER_CLASS_CON, 45, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
3899 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
3900 { NULL, 0, 0, 0, NULL }
3901 };
3902
3903 static int
dissect_z3950_ResourceControlResponse(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3904 dissect_z3950_ResourceControlResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3905 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3906 ResourceControlResponse_sequence, hf_index, ett_z3950_ResourceControlResponse);
3907
3908 return offset;
3909 }
3910
3911
3912 static const value_string z3950_T_requestedAction_vals[] = {
3913 { 1, "resourceReport" },
3914 { 2, "resourceControl" },
3915 { 3, "cancel" },
3916 { 0, NULL }
3917 };
3918
3919
3920 static int
dissect_z3950_T_requestedAction(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3921 dissect_z3950_T_requestedAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3922 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3923 NULL);
3924
3925 return offset;
3926 }
3927
3928
3929
3930 static int
dissect_z3950_ResourceReportId(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3931 dissect_z3950_ResourceReportId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3932 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
3933
3934 return offset;
3935 }
3936
3937
3938 static const ber_sequence_t TriggerResourceControlRequest_sequence[] = {
3939 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
3940 { &hf_z3950_requestedAction, BER_CLASS_CON, 46, BER_FLAGS_IMPLTAG, dissect_z3950_T_requestedAction },
3941 { &hf_z3950_prefResourceReportFormat, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_ResourceReportId },
3942 { &hf_z3950_resultSetWanted, BER_CLASS_CON, 48, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
3943 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
3944 { NULL, 0, 0, 0, NULL }
3945 };
3946
3947 static int
dissect_z3950_TriggerResourceControlRequest(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3948 dissect_z3950_TriggerResourceControlRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3949 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3950 TriggerResourceControlRequest_sequence, hf_index, ett_z3950_TriggerResourceControlRequest);
3951
3952 return offset;
3953 }
3954
3955
3956 static const ber_sequence_t ResourceReportRequest_sequence[] = {
3957 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
3958 { &hf_z3950_opId , BER_CLASS_CON, 210, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_ReferenceId },
3959 { &hf_z3950_prefResourceReportFormat, BER_CLASS_CON, 49, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_ResourceReportId },
3960 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
3961 { NULL, 0, 0, 0, NULL }
3962 };
3963
3964 static int
dissect_z3950_ResourceReportRequest(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3965 dissect_z3950_ResourceReportRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3966 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3967 ResourceReportRequest_sequence, hf_index, ett_z3950_ResourceReportRequest);
3968
3969 return offset;
3970 }
3971
3972
3973 static const value_string z3950_T_resourceReportStatus_vals[] = {
3974 { 0, "success" },
3975 { 1, "partial" },
3976 { 2, "failure-1" },
3977 { 3, "failure-2" },
3978 { 4, "failure-3" },
3979 { 5, "failure-4" },
3980 { 6, "failure-5" },
3981 { 7, "failure-6" },
3982 { 0, NULL }
3983 };
3984
3985
3986 static int
dissect_z3950_T_resourceReportStatus(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)3987 dissect_z3950_T_resourceReportStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3988 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3989 NULL);
3990
3991 return offset;
3992 }
3993
3994
3995 static const ber_sequence_t ResourceReportResponse_sequence[] = {
3996 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
3997 { &hf_z3950_resourceReportStatus, BER_CLASS_CON, 50, BER_FLAGS_IMPLTAG, dissect_z3950_T_resourceReportStatus },
3998 { &hf_z3950_resourceReport, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL, dissect_z3950_ResourceReport },
3999 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
4000 { NULL, 0, 0, 0, NULL }
4001 };
4002
4003 static int
dissect_z3950_ResourceReportResponse(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4004 dissect_z3950_ResourceReportResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4005 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4006 ResourceReportResponse_sequence, hf_index, ett_z3950_ResourceReportResponse);
4007
4008 return offset;
4009 }
4010
4011
4012 static const ber_sequence_t ScanRequest_sequence[] = {
4013 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
4014 { &hf_z3950_databaseNames , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_DatabaseName },
4015 { &hf_z3950_attributeSet , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeSetId },
4016 { &hf_z3950_termListAndStartPoint, BER_CLASS_CON, 102, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributesPlusTerm },
4017 { &hf_z3950_stepSize , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
4018 { &hf_z3950_numberOfTermsRequested, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
4019 { &hf_z3950_preferredPositionInResponse, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
4020 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
4021 { NULL, 0, 0, 0, NULL }
4022 };
4023
4024 static int
dissect_z3950_ScanRequest(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4025 dissect_z3950_ScanRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4026 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4027 ScanRequest_sequence, hf_index, ett_z3950_ScanRequest);
4028
4029 return offset;
4030 }
4031
4032
4033 static const value_string z3950_T_scanStatus_vals[] = {
4034 { 0, "success" },
4035 { 1, "partial-1" },
4036 { 2, "partial-2" },
4037 { 3, "partial-3" },
4038 { 4, "partial-4" },
4039 { 5, "partial-5" },
4040 { 6, "failure" },
4041 { 0, NULL }
4042 };
4043
4044
4045 static int
dissect_z3950_T_scanStatus(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4046 dissect_z3950_T_scanStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4047 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4048 NULL);
4049
4050 return offset;
4051 }
4052
4053
4054 static const ber_sequence_t SEQUENCE_OF_AttributesPlusTerm_sequence_of[1] = {
4055 { &hf_z3950_alternativeTerm_item, BER_CLASS_CON, 102, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributesPlusTerm },
4056 };
4057
4058 static int
dissect_z3950_SEQUENCE_OF_AttributesPlusTerm(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4059 dissect_z3950_SEQUENCE_OF_AttributesPlusTerm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4060 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4061 SEQUENCE_OF_AttributesPlusTerm_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_AttributesPlusTerm);
4062
4063 return offset;
4064 }
4065
4066
4067 static const ber_sequence_t T_byDatabase_item_sequence[] = {
4068 { &hf_z3950_db , BER_CLASS_CON, 105, BER_FLAGS_NOOWNTAG, dissect_z3950_DatabaseName },
4069 { &hf_z3950_num , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
4070 { &hf_z3950_otherDbInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
4071 { NULL, 0, 0, 0, NULL }
4072 };
4073
4074 static int
dissect_z3950_T_byDatabase_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4075 dissect_z3950_T_byDatabase_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4076 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4077 T_byDatabase_item_sequence, hf_index, ett_z3950_T_byDatabase_item);
4078
4079 return offset;
4080 }
4081
4082
4083 static const ber_sequence_t T_byDatabase_sequence_of[1] = {
4084 { &hf_z3950_byDatabase_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_T_byDatabase_item },
4085 };
4086
4087 static int
dissect_z3950_T_byDatabase(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4088 dissect_z3950_T_byDatabase(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4089 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4090 T_byDatabase_sequence_of, hf_index, ett_z3950_T_byDatabase);
4091
4092 return offset;
4093 }
4094
4095
4096 static const value_string z3950_T_occurrences_vals[] = {
4097 { 2, "global" },
4098 { 3, "byDatabase" },
4099 { 0, NULL }
4100 };
4101
4102 static const ber_choice_t T_occurrences_choice[] = {
4103 { 2, &hf_z3950_global , BER_CLASS_CON, 2, 0, dissect_z3950_INTEGER },
4104 { 3, &hf_z3950_byDatabase , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_T_byDatabase },
4105 { 0, NULL, 0, 0, 0, NULL }
4106 };
4107
4108 static int
dissect_z3950_T_occurrences(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4109 dissect_z3950_T_occurrences(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4110 offset = dissect_ber_choice(actx, tree, tvb, offset,
4111 T_occurrences_choice, hf_index, ett_z3950_T_occurrences,
4112 NULL);
4113
4114 return offset;
4115 }
4116
4117
4118 static const ber_sequence_t OccurrenceByAttributes_item_sequence[] = {
4119 { &hf_z3950_attributes , BER_CLASS_CON, 1, 0, dissect_z3950_AttributeList },
4120 { &hf_z3950_occurrences , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_T_occurrences },
4121 { &hf_z3950_otherOccurInfo, BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
4122 { NULL, 0, 0, 0, NULL }
4123 };
4124
4125 static int
dissect_z3950_OccurrenceByAttributes_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4126 dissect_z3950_OccurrenceByAttributes_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4127 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4128 OccurrenceByAttributes_item_sequence, hf_index, ett_z3950_OccurrenceByAttributes_item);
4129
4130 return offset;
4131 }
4132
4133
4134 static const ber_sequence_t OccurrenceByAttributes_sequence_of[1] = {
4135 { &hf_z3950_OccurrenceByAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_OccurrenceByAttributes_item },
4136 };
4137
4138 static int
dissect_z3950_OccurrenceByAttributes(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4139 dissect_z3950_OccurrenceByAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4140 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4141 OccurrenceByAttributes_sequence_of, hf_index, ett_z3950_OccurrenceByAttributes);
4142
4143 return offset;
4144 }
4145
4146
4147 static const ber_sequence_t TermInfo_sequence[] = {
4148 { &hf_z3950_term , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_Term },
4149 { &hf_z3950_displayTerm , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4150 { &hf_z3950_suggestedAttributes, BER_CLASS_CON, 44, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeList },
4151 { &hf_z3950_alternativeTerm, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_AttributesPlusTerm },
4152 { &hf_z3950_globalOccurrences, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
4153 { &hf_z3950_byAttributes , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OccurrenceByAttributes },
4154 { &hf_z3950_otherTermInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
4155 { NULL, 0, 0, 0, NULL }
4156 };
4157
4158 static int
dissect_z3950_TermInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4159 dissect_z3950_TermInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4160 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4161 TermInfo_sequence, hf_index, ett_z3950_TermInfo);
4162
4163 return offset;
4164 }
4165
4166
4167 static const value_string z3950_Entry_vals[] = {
4168 { 1, "termInfo" },
4169 { 2, "surrogateDiagnostic" },
4170 { 0, NULL }
4171 };
4172
4173 static const ber_choice_t Entry_choice[] = {
4174 { 1, &hf_z3950_termInfo , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_TermInfo },
4175 { 2, &hf_z3950_surrogateDiagnostic, BER_CLASS_CON, 2, 0, dissect_z3950_DiagRec },
4176 { 0, NULL, 0, 0, 0, NULL }
4177 };
4178
4179 static int
dissect_z3950_Entry(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4180 dissect_z3950_Entry(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4181 offset = dissect_ber_choice(actx, tree, tvb, offset,
4182 Entry_choice, hf_index, ett_z3950_Entry,
4183 NULL);
4184
4185 return offset;
4186 }
4187
4188
4189 static const ber_sequence_t SEQUENCE_OF_Entry_sequence_of[1] = {
4190 { &hf_z3950_listEntries_entries_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_Entry },
4191 };
4192
4193 static int
dissect_z3950_SEQUENCE_OF_Entry(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4194 dissect_z3950_SEQUENCE_OF_Entry(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4195 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4196 SEQUENCE_OF_Entry_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_Entry);
4197
4198 return offset;
4199 }
4200
4201
4202 static const ber_sequence_t ListEntries_sequence[] = {
4203 { &hf_z3950_listEntries_entries, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_Entry },
4204 { &hf_z3950_nonsurrogateDiagnostics, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_DiagRec },
4205 { NULL, 0, 0, 0, NULL }
4206 };
4207
4208 static int
dissect_z3950_ListEntries(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4209 dissect_z3950_ListEntries(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4210 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4211 ListEntries_sequence, hf_index, ett_z3950_ListEntries);
4212
4213 return offset;
4214 }
4215
4216
4217 static const ber_sequence_t ScanResponse_sequence[] = {
4218 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
4219 { &hf_z3950_stepSize , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
4220 { &hf_z3950_scanStatus , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_T_scanStatus },
4221 { &hf_z3950_numberOfEntriesReturned, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
4222 { &hf_z3950_positionOfTerm, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
4223 { &hf_z3950_scanResponse_entries, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_ListEntries },
4224 { &hf_z3950_attributeSet , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_AttributeSetId },
4225 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
4226 { NULL, 0, 0, 0, NULL }
4227 };
4228
4229 static int
dissect_z3950_ScanResponse(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4230 dissect_z3950_ScanResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4231 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4232 ScanResponse_sequence, hf_index, ett_z3950_ScanResponse);
4233
4234 return offset;
4235 }
4236
4237
4238 static const ber_sequence_t SEQUENCE_OF_InternationalString_sequence_of[1] = {
4239 { &hf_z3950_inputResultSetNames_item, BER_CLASS_UNI, BER_UNI_TAG_GeneralString, BER_FLAGS_NOOWNTAG, dissect_z3950_InternationalString },
4240 };
4241
4242 static int
dissect_z3950_SEQUENCE_OF_InternationalString(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4243 dissect_z3950_SEQUENCE_OF_InternationalString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4244 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4245 SEQUENCE_OF_InternationalString_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_InternationalString);
4246
4247 return offset;
4248 }
4249
4250
4251 static const ber_sequence_t T_sortAttributes_sequence[] = {
4252 { &hf_z3950_sortAttributes_id, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeSetId },
4253 { &hf_z3950_sortAttributes_list, BER_CLASS_CON, 44, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeList },
4254 { NULL, 0, 0, 0, NULL }
4255 };
4256
4257 static int
dissect_z3950_T_sortAttributes(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4258 dissect_z3950_T_sortAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4259 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4260 T_sortAttributes_sequence, hf_index, ett_z3950_T_sortAttributes);
4261
4262 return offset;
4263 }
4264
4265
4266 static const value_string z3950_SortKey_vals[] = {
4267 { 0, "sortfield" },
4268 { 1, "elementSpec" },
4269 { 2, "sortAttributes" },
4270 { 0, NULL }
4271 };
4272
4273 static const ber_choice_t SortKey_choice[] = {
4274 { 0, &hf_z3950_sortfield , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4275 { 1, &hf_z3950_sortKey_elementSpec, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_Specification },
4276 { 2, &hf_z3950_sortAttributes, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_T_sortAttributes },
4277 { 0, NULL, 0, 0, 0, NULL }
4278 };
4279
4280 static int
dissect_z3950_SortKey(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4281 dissect_z3950_SortKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4282 offset = dissect_ber_choice(actx, tree, tvb, offset,
4283 SortKey_choice, hf_index, ett_z3950_SortKey,
4284 NULL);
4285
4286 return offset;
4287 }
4288
4289
4290 static const ber_sequence_t T_datbaseSpecific_item_sequence[] = {
4291 { &hf_z3950_databaseName , BER_CLASS_CON, 105, BER_FLAGS_NOOWNTAG, dissect_z3950_DatabaseName },
4292 { &hf_z3950_dbSort , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_SortKey },
4293 { NULL, 0, 0, 0, NULL }
4294 };
4295
4296 static int
dissect_z3950_T_datbaseSpecific_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4297 dissect_z3950_T_datbaseSpecific_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4298 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4299 T_datbaseSpecific_item_sequence, hf_index, ett_z3950_T_datbaseSpecific_item);
4300
4301 return offset;
4302 }
4303
4304
4305 static const ber_sequence_t T_datbaseSpecific_sequence_of[1] = {
4306 { &hf_z3950_datbaseSpecific_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_T_datbaseSpecific_item },
4307 };
4308
4309 static int
dissect_z3950_T_datbaseSpecific(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4310 dissect_z3950_T_datbaseSpecific(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4311 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4312 T_datbaseSpecific_sequence_of, hf_index, ett_z3950_T_datbaseSpecific);
4313
4314 return offset;
4315 }
4316
4317
4318 static const value_string z3950_SortElement_vals[] = {
4319 { 1, "generic" },
4320 { 2, "datbaseSpecific" },
4321 { 0, NULL }
4322 };
4323
4324 static const ber_choice_t SortElement_choice[] = {
4325 { 1, &hf_z3950_sortElement_generic, BER_CLASS_CON, 1, 0, dissect_z3950_SortKey },
4326 { 2, &hf_z3950_datbaseSpecific, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_T_datbaseSpecific },
4327 { 0, NULL, 0, 0, 0, NULL }
4328 };
4329
4330 static int
dissect_z3950_SortElement(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4331 dissect_z3950_SortElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4332 offset = dissect_ber_choice(actx, tree, tvb, offset,
4333 SortElement_choice, hf_index, ett_z3950_SortElement,
4334 NULL);
4335
4336 return offset;
4337 }
4338
4339
4340 static const value_string z3950_T_sortRelation_vals[] = {
4341 { 0, "ascending" },
4342 { 1, "descending" },
4343 { 3, "ascendingByFrequency" },
4344 { 4, "descendingByfrequency" },
4345 { 0, NULL }
4346 };
4347
4348
4349 static int
dissect_z3950_T_sortRelation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4350 dissect_z3950_T_sortRelation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4351 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4352 NULL);
4353
4354 return offset;
4355 }
4356
4357
4358 static const value_string z3950_T_caseSensitivity_vals[] = {
4359 { 0, "caseSensitive" },
4360 { 1, "caseInsensitive" },
4361 { 0, NULL }
4362 };
4363
4364
4365 static int
dissect_z3950_T_caseSensitivity(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4366 dissect_z3950_T_caseSensitivity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4367 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4368 NULL);
4369
4370 return offset;
4371 }
4372
4373
4374 static const value_string z3950_T_missingValueAction_vals[] = {
4375 { 1, "abort" },
4376 { 2, "null" },
4377 { 3, "missingValueData" },
4378 { 0, NULL }
4379 };
4380
4381 static const ber_choice_t T_missingValueAction_choice[] = {
4382 { 1, &hf_z3950_abort , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
4383 { 2, &hf_z3950_null , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
4384 { 3, &hf_z3950_missingValueData, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
4385 { 0, NULL, 0, 0, 0, NULL }
4386 };
4387
4388 static int
dissect_z3950_T_missingValueAction(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4389 dissect_z3950_T_missingValueAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4390 offset = dissect_ber_choice(actx, tree, tvb, offset,
4391 T_missingValueAction_choice, hf_index, ett_z3950_T_missingValueAction,
4392 NULL);
4393
4394 return offset;
4395 }
4396
4397
4398 static const ber_sequence_t SortKeySpec_sequence[] = {
4399 { &hf_z3950_sortElement , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_SortElement },
4400 { &hf_z3950_sortRelation , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_T_sortRelation },
4401 { &hf_z3950_caseSensitivity, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_T_caseSensitivity },
4402 { &hf_z3950_missingValueAction, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_z3950_T_missingValueAction },
4403 { NULL, 0, 0, 0, NULL }
4404 };
4405
4406 static int
dissect_z3950_SortKeySpec(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4407 dissect_z3950_SortKeySpec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4408 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4409 SortKeySpec_sequence, hf_index, ett_z3950_SortKeySpec);
4410
4411 return offset;
4412 }
4413
4414
4415 static const ber_sequence_t SEQUENCE_OF_SortKeySpec_sequence_of[1] = {
4416 { &hf_z3950_sortSequence_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_SortKeySpec },
4417 };
4418
4419 static int
dissect_z3950_SEQUENCE_OF_SortKeySpec(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4420 dissect_z3950_SEQUENCE_OF_SortKeySpec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4421 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4422 SEQUENCE_OF_SortKeySpec_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_SortKeySpec);
4423
4424 return offset;
4425 }
4426
4427
4428 static const ber_sequence_t SortRequest_sequence[] = {
4429 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
4430 { &hf_z3950_inputResultSetNames, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_InternationalString },
4431 { &hf_z3950_sortedResultSetName, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4432 { &hf_z3950_sortSequence , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_SortKeySpec },
4433 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
4434 { NULL, 0, 0, 0, NULL }
4435 };
4436
4437 static int
dissect_z3950_SortRequest(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4438 dissect_z3950_SortRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4439 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4440 SortRequest_sequence, hf_index, ett_z3950_SortRequest);
4441
4442 return offset;
4443 }
4444
4445
4446 static const value_string z3950_T_sortStatus_vals[] = {
4447 { 0, "success" },
4448 { 1, "partial-1" },
4449 { 2, "failure" },
4450 { 0, NULL }
4451 };
4452
4453
4454 static int
dissect_z3950_T_sortStatus(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4455 dissect_z3950_T_sortStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4456 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4457 NULL);
4458
4459 return offset;
4460 }
4461
4462
4463 static const value_string z3950_T_sort_resultSetStatus_vals[] = {
4464 { 1, "empty" },
4465 { 2, "interim" },
4466 { 3, "unchanged" },
4467 { 4, "none" },
4468 { 0, NULL }
4469 };
4470
4471
4472 static int
dissect_z3950_T_sort_resultSetStatus(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4473 dissect_z3950_T_sort_resultSetStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4474 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4475 NULL);
4476
4477 return offset;
4478 }
4479
4480
4481 static const ber_sequence_t SortResponse_sequence[] = {
4482 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
4483 { &hf_z3950_sortStatus , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_T_sortStatus },
4484 { &hf_z3950_sort_resultSetStatus, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_sort_resultSetStatus },
4485 { &hf_z3950_diagnostics , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_DiagRec },
4486 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
4487 { NULL, 0, 0, 0, NULL }
4488 };
4489
4490 static int
dissect_z3950_SortResponse(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4491 dissect_z3950_SortResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4492 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4493 SortResponse_sequence, hf_index, ett_z3950_SortResponse);
4494
4495 return offset;
4496 }
4497
4498
4499 static const ber_sequence_t Segment_sequence[] = {
4500 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
4501 { &hf_z3950_numberOfRecordsReturned, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
4502 { &hf_z3950_segmentRecords, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_NamePlusRecord },
4503 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
4504 { NULL, 0, 0, 0, NULL }
4505 };
4506
4507 static int
dissect_z3950_Segment(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4508 dissect_z3950_Segment(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4509 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4510 Segment_sequence, hf_index, ett_z3950_Segment);
4511
4512 return offset;
4513 }
4514
4515
4516 static const value_string z3950_T_function_vals[] = {
4517 { 1, "create" },
4518 { 2, "delete" },
4519 { 3, "modify" },
4520 { 0, NULL }
4521 };
4522
4523
4524 static int
dissect_z3950_T_function(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4525 dissect_z3950_T_function(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4526 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4527 NULL);
4528
4529 return offset;
4530 }
4531
4532
4533 static const value_string z3950_T_allowableFunctions_item_vals[] = {
4534 { 1, "delete" },
4535 { 2, "modifyContents" },
4536 { 3, "modifyPermissions" },
4537 { 4, "present" },
4538 { 5, "invoke" },
4539 { 0, NULL }
4540 };
4541
4542
4543 static int
dissect_z3950_T_allowableFunctions_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4544 dissect_z3950_T_allowableFunctions_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4545 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4546 NULL);
4547
4548 return offset;
4549 }
4550
4551
4552 static const ber_sequence_t T_allowableFunctions_sequence_of[1] = {
4553 { &hf_z3950_allowableFunctions_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_z3950_T_allowableFunctions_item },
4554 };
4555
4556 static int
dissect_z3950_T_allowableFunctions(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4557 dissect_z3950_T_allowableFunctions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4558 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4559 T_allowableFunctions_sequence_of, hf_index, ett_z3950_T_allowableFunctions);
4560
4561 return offset;
4562 }
4563
4564
4565 static const ber_sequence_t Permissions_item_sequence[] = {
4566 { &hf_z3950_userId , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4567 { &hf_z3950_allowableFunctions, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_T_allowableFunctions },
4568 { NULL, 0, 0, 0, NULL }
4569 };
4570
4571 static int
dissect_z3950_Permissions_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4572 dissect_z3950_Permissions_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4573 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4574 Permissions_item_sequence, hf_index, ett_z3950_Permissions_item);
4575
4576 return offset;
4577 }
4578
4579
4580 static const ber_sequence_t Permissions_sequence_of[1] = {
4581 { &hf_z3950_Permissions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_Permissions_item },
4582 };
4583
4584 static int
dissect_z3950_Permissions(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4585 dissect_z3950_Permissions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4586 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4587 Permissions_sequence_of, hf_index, ett_z3950_Permissions);
4588
4589 return offset;
4590 }
4591
4592
4593 static const value_string z3950_T_waitAction_vals[] = {
4594 { 1, "wait" },
4595 { 2, "waitIfPossible" },
4596 { 3, "dontWait" },
4597 { 4, "dontReturnPackage" },
4598 { 0, NULL }
4599 };
4600
4601
4602 static int
dissect_z3950_T_waitAction(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4603 dissect_z3950_T_waitAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4604 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4605 NULL);
4606
4607 return offset;
4608 }
4609
4610
4611 static const ber_sequence_t ExtendedServicesRequest_sequence[] = {
4612 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
4613 { &hf_z3950_function , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_T_function },
4614 { &hf_z3950_packageType , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
4615 { &hf_z3950_packageName , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4616 { &hf_z3950_userId , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4617 { &hf_z3950_retentionTime , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_IntUnit },
4618 { &hf_z3950_permissions , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_Permissions },
4619 { &hf_z3950_extendedServicesRequest_description, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4620 { &hf_z3950_taskSpecificParameters, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_EXTERNAL },
4621 { &hf_z3950_waitAction , BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_z3950_T_waitAction },
4622 { &hf_z3950_elements , BER_CLASS_CON, 103, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ElementSetName },
4623 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
4624 { NULL, 0, 0, 0, NULL }
4625 };
4626
4627 static int
dissect_z3950_ExtendedServicesRequest(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4628 dissect_z3950_ExtendedServicesRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4629 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4630 ExtendedServicesRequest_sequence, hf_index, ett_z3950_ExtendedServicesRequest);
4631
4632 return offset;
4633 }
4634
4635
4636 static const value_string z3950_T_operationStatus_vals[] = {
4637 { 1, "done" },
4638 { 2, "accepted" },
4639 { 3, "failure" },
4640 { 0, NULL }
4641 };
4642
4643
4644 static int
dissect_z3950_T_operationStatus(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4645 dissect_z3950_T_operationStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4646 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4647 NULL);
4648
4649 return offset;
4650 }
4651
4652
4653 static const ber_sequence_t ExtendedServicesResponse_sequence[] = {
4654 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
4655 { &hf_z3950_operationStatus, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_T_operationStatus },
4656 { &hf_z3950_diagnostics , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_DiagRec },
4657 { &hf_z3950_taskPackage , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_EXTERNAL },
4658 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
4659 { NULL, 0, 0, 0, NULL }
4660 };
4661
4662 static int
dissect_z3950_ExtendedServicesResponse(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4663 dissect_z3950_ExtendedServicesResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4664 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4665 ExtendedServicesResponse_sequence, hf_index, ett_z3950_ExtendedServicesResponse);
4666
4667 return offset;
4668 }
4669
4670
4671 static const value_string z3950_CloseReason_U_vals[] = {
4672 { 0, "finished" },
4673 { 1, "shutdown" },
4674 { 2, "systemProblem" },
4675 { 3, "costLimit" },
4676 { 4, "resources" },
4677 { 5, "securityViolation" },
4678 { 6, "protocolError" },
4679 { 7, "lackOfActivity" },
4680 { 8, "peerAbort" },
4681 { 9, "unspecified" },
4682 { 0, NULL }
4683 };
4684
4685
4686 static int
dissect_z3950_CloseReason_U(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4687 dissect_z3950_CloseReason_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4688 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4689 NULL);
4690
4691 return offset;
4692 }
4693
4694
4695
4696 static int
dissect_z3950_CloseReason(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4697 dissect_z3950_CloseReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4698 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4699 hf_index, BER_CLASS_CON, 211, TRUE, dissect_z3950_CloseReason_U);
4700
4701 return offset;
4702 }
4703
4704
4705 static const ber_sequence_t Close_sequence[] = {
4706 { &hf_z3950_referenceId , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_ReferenceId },
4707 { &hf_z3950_closeReason , BER_CLASS_CON, 211, BER_FLAGS_NOOWNTAG, dissect_z3950_CloseReason },
4708 { &hf_z3950_diagnosticInformation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4709 { &hf_z3950_resourceReportFormat, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_ResourceReportId },
4710 { &hf_z3950_resourceReport, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_z3950_ResourceReport },
4711 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
4712 { NULL, 0, 0, 0, NULL }
4713 };
4714
4715 static int
dissect_z3950_Close(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4716 dissect_z3950_Close(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4717 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4718 Close_sequence, hf_index, ett_z3950_Close);
4719
4720 return offset;
4721 }
4722
4723
4724 static const value_string z3950_PDU_vals[] = {
4725 { 20, "initRequest" },
4726 { 21, "initResponse" },
4727 { 22, "searchRequest" },
4728 { 23, "searchResponse" },
4729 { 24, "presentRequest" },
4730 { 25, "presentResponse" },
4731 { 26, "deleteResultSetRequest" },
4732 { 27, "deleteResultSetResponse" },
4733 { 28, "accessControlRequest" },
4734 { 29, "accessControlResponse" },
4735 { 30, "resourceControlRequest" },
4736 { 31, "resourceControlResponse" },
4737 { 32, "triggerResourceControlRequest" },
4738 { 33, "resourceReportRequest" },
4739 { 34, "resourceReportResponse" },
4740 { 35, "scanRequest" },
4741 { 36, "scanResponse" },
4742 { 43, "sortRequest" },
4743 { 44, "sortResponse" },
4744 { 45, "segmentRequest" },
4745 { 46, "extendedServicesRequest" },
4746 { 47, "extendedServicesResponse" },
4747 { 48, "close" },
4748 { 0, NULL }
4749 };
4750
4751 static const ber_choice_t PDU_choice[] = {
4752 { 20, &hf_z3950_initRequest , BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_z3950_InitializeRequest },
4753 { 21, &hf_z3950_initResponse , BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_z3950_InitializeResponse },
4754 { 22, &hf_z3950_searchRequest , BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_z3950_SearchRequest },
4755 { 23, &hf_z3950_searchResponse, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_z3950_SearchResponse },
4756 { 24, &hf_z3950_presentRequest, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_z3950_PresentRequest },
4757 { 25, &hf_z3950_presentResponse, BER_CLASS_CON, 25, BER_FLAGS_IMPLTAG, dissect_z3950_PresentResponse },
4758 { 26, &hf_z3950_deleteResultSetRequest, BER_CLASS_CON, 26, BER_FLAGS_IMPLTAG, dissect_z3950_DeleteResultSetRequest },
4759 { 27, &hf_z3950_deleteResultSetResponse, BER_CLASS_CON, 27, BER_FLAGS_IMPLTAG, dissect_z3950_DeleteResultSetResponse },
4760 { 28, &hf_z3950_accessControlRequest, BER_CLASS_CON, 28, BER_FLAGS_IMPLTAG, dissect_z3950_AccessControlRequest },
4761 { 29, &hf_z3950_accessControlResponse, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_z3950_AccessControlResponse },
4762 { 30, &hf_z3950_resourceControlRequest, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_z3950_ResourceControlRequest },
4763 { 31, &hf_z3950_resourceControlResponse, BER_CLASS_CON, 31, BER_FLAGS_IMPLTAG, dissect_z3950_ResourceControlResponse },
4764 { 32, &hf_z3950_triggerResourceControlRequest, BER_CLASS_CON, 32, BER_FLAGS_IMPLTAG, dissect_z3950_TriggerResourceControlRequest },
4765 { 33, &hf_z3950_resourceReportRequest, BER_CLASS_CON, 33, BER_FLAGS_IMPLTAG, dissect_z3950_ResourceReportRequest },
4766 { 34, &hf_z3950_resourceReportResponse, BER_CLASS_CON, 34, BER_FLAGS_IMPLTAG, dissect_z3950_ResourceReportResponse },
4767 { 35, &hf_z3950_scanRequest , BER_CLASS_CON, 35, BER_FLAGS_IMPLTAG, dissect_z3950_ScanRequest },
4768 { 36, &hf_z3950_scanResponse , BER_CLASS_CON, 36, BER_FLAGS_IMPLTAG, dissect_z3950_ScanResponse },
4769 { 43, &hf_z3950_sortRequest , BER_CLASS_CON, 43, BER_FLAGS_IMPLTAG, dissect_z3950_SortRequest },
4770 { 44, &hf_z3950_sortResponse , BER_CLASS_CON, 44, BER_FLAGS_IMPLTAG, dissect_z3950_SortResponse },
4771 { 45, &hf_z3950_segmentRequest, BER_CLASS_CON, 45, BER_FLAGS_IMPLTAG, dissect_z3950_Segment },
4772 { 46, &hf_z3950_extendedServicesRequest, BER_CLASS_CON, 46, BER_FLAGS_IMPLTAG, dissect_z3950_ExtendedServicesRequest },
4773 { 47, &hf_z3950_extendedServicesResponse, BER_CLASS_CON, 47, BER_FLAGS_IMPLTAG, dissect_z3950_ExtendedServicesResponse },
4774 { 48, &hf_z3950_close , BER_CLASS_CON, 48, BER_FLAGS_IMPLTAG, dissect_z3950_Close },
4775 { 0, NULL, 0, 0, 0, NULL }
4776 };
4777
4778 static int
dissect_z3950_PDU(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4779 dissect_z3950_PDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4780 #line 127 "./asn1/z3950/z3950.cnf"
4781 gint choice;
4782
4783 offset = dissect_ber_choice(actx, tree, tvb, offset,
4784 PDU_choice, hf_index, ett_z3950_PDU,
4785 &choice);
4786
4787 #line 130 "./asn1/z3950/z3950.cnf"
4788 if (choice >= 0) {
4789 packet_info *pinfo = actx->pinfo;
4790 gint32 tag = PDU_choice[choice].tag;
4791
4792 col_set_str(pinfo->cinfo, COL_INFO,
4793 val_to_str_const(tag, z3950_PDU_vals, "Unknown Z39.50 PDU"));
4794 }
4795
4796
4797 return offset;
4798 }
4799
4800
4801
4802 static int
dissect_z3950_DBName(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4803 dissect_z3950_DBName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4804 offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
4805 hf_index, BER_CLASS_CON, 2, TRUE, dissect_z3950_VisibleString);
4806
4807 return offset;
4808 }
4809
4810
4811 static const ber_sequence_t SEQUENCE_OF_DBName_sequence_of[1] = {
4812 { &hf_z3950_dblist_item , BER_CLASS_CON, 2, BER_FLAGS_NOOWNTAG, dissect_z3950_DBName },
4813 };
4814
4815 static int
dissect_z3950_SEQUENCE_OF_DBName(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4816 dissect_z3950_SEQUENCE_OF_DBName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4817 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4818 SEQUENCE_OF_DBName_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_DBName);
4819
4820 return offset;
4821 }
4822
4823
4824 static const ber_sequence_t OCLC_UserInformation_sequence[] = {
4825 { &hf_z3950_motd , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_VisibleString },
4826 { &hf_z3950_dblist , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_SEQUENCE_OF_DBName },
4827 { &hf_z3950_failReason , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
4828 { &hf_z3950_oCLC_UserInformation_text, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_VisibleString },
4829 { NULL, 0, 0, 0, NULL }
4830 };
4831
4832 static int
dissect_z3950_OCLC_UserInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4833 dissect_z3950_OCLC_UserInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4834 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4835 OCLC_UserInformation_sequence, hf_index, ett_z3950_OCLC_UserInformation);
4836
4837 return offset;
4838 }
4839
4840
4841
4842 static int
dissect_z3950_SutrsRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4843 dissect_z3950_SutrsRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4844 offset = dissect_z3950_InternationalString(implicit_tag, tvb, offset, actx, tree, hf_index);
4845
4846 return offset;
4847 }
4848
4849
4850 static const ber_sequence_t Volume_sequence[] = {
4851 { &hf_z3950_enumeration , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4852 { &hf_z3950_chronology , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4853 { &hf_z3950_enumAndChron , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4854 { NULL, 0, 0, 0, NULL }
4855 };
4856
4857 static int
dissect_z3950_Volume(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4858 dissect_z3950_Volume(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4859 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4860 Volume_sequence, hf_index, ett_z3950_Volume);
4861
4862 return offset;
4863 }
4864
4865
4866 static const ber_sequence_t SEQUENCE_OF_Volume_sequence_of[1] = {
4867 { &hf_z3950_volumes_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_Volume },
4868 };
4869
4870 static int
dissect_z3950_SEQUENCE_OF_Volume(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4871 dissect_z3950_SEQUENCE_OF_Volume(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4872 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4873 SEQUENCE_OF_Volume_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_Volume);
4874
4875 return offset;
4876 }
4877
4878
4879 static const ber_sequence_t CircRecord_sequence[] = {
4880 { &hf_z3950_availableNow , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
4881 { &hf_z3950_availablityDate, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4882 { &hf_z3950_availableThru , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4883 { &hf_z3950_circRecord_restrictions, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4884 { &hf_z3950_itemId , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4885 { &hf_z3950_renewable , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
4886 { &hf_z3950_onHold , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
4887 { &hf_z3950_enumAndChron , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4888 { &hf_z3950_midspine , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4889 { &hf_z3950_temporaryLocation, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4890 { NULL, 0, 0, 0, NULL }
4891 };
4892
4893 static int
dissect_z3950_CircRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4894 dissect_z3950_CircRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4895 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4896 CircRecord_sequence, hf_index, ett_z3950_CircRecord);
4897
4898 return offset;
4899 }
4900
4901
4902 static const ber_sequence_t SEQUENCE_OF_CircRecord_sequence_of[1] = {
4903 { &hf_z3950_circulationData_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_CircRecord },
4904 };
4905
4906 static int
dissect_z3950_SEQUENCE_OF_CircRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4907 dissect_z3950_SEQUENCE_OF_CircRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4908 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4909 SEQUENCE_OF_CircRecord_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_CircRecord);
4910
4911 return offset;
4912 }
4913
4914
4915 static const ber_sequence_t HoldingsAndCircData_sequence[] = {
4916 { &hf_z3950_typeOfRecord , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4917 { &hf_z3950_encodingLevel , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4918 { &hf_z3950_format , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4919 { &hf_z3950_receiptAcqStatus, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4920 { &hf_z3950_generalRetention, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4921 { &hf_z3950_completeness , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4922 { &hf_z3950_dateOfReport , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4923 { &hf_z3950_nucCode , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4924 { &hf_z3950_localLocation , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4925 { &hf_z3950_shelvingLocation, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4926 { &hf_z3950_callNumber , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4927 { &hf_z3950_shelvingData , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4928 { &hf_z3950_copyNumber , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4929 { &hf_z3950_publicNote , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4930 { &hf_z3950_reproductionNote, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4931 { &hf_z3950_termsUseRepro , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4932 { &hf_z3950_enumAndChron , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
4933 { &hf_z3950_volumes , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_Volume },
4934 { &hf_z3950_circulationData, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_CircRecord },
4935 { NULL, 0, 0, 0, NULL }
4936 };
4937
4938 static int
dissect_z3950_HoldingsAndCircData(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4939 dissect_z3950_HoldingsAndCircData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4940 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4941 HoldingsAndCircData_sequence, hf_index, ett_z3950_HoldingsAndCircData);
4942
4943 return offset;
4944 }
4945
4946
4947 static const value_string z3950_HoldingsRecord_vals[] = {
4948 { 1, "marcHoldingsRecord" },
4949 { 2, "holdingsAndCirc" },
4950 { 0, NULL }
4951 };
4952
4953 static const ber_choice_t HoldingsRecord_choice[] = {
4954 { 1, &hf_z3950_marcHoldingsRecord, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_EXTERNAL },
4955 { 2, &hf_z3950_holdingsAndCirc, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_HoldingsAndCircData },
4956 { 0, NULL, 0, 0, 0, NULL }
4957 };
4958
4959 static int
dissect_z3950_HoldingsRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4960 dissect_z3950_HoldingsRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4961 offset = dissect_ber_choice(actx, tree, tvb, offset,
4962 HoldingsRecord_choice, hf_index, ett_z3950_HoldingsRecord,
4963 NULL);
4964
4965 return offset;
4966 }
4967
4968
4969 static const ber_sequence_t SEQUENCE_OF_HoldingsRecord_sequence_of[1] = {
4970 { &hf_z3950_holdingsData_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_HoldingsRecord },
4971 };
4972
4973 static int
dissect_z3950_SEQUENCE_OF_HoldingsRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4974 dissect_z3950_SEQUENCE_OF_HoldingsRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4975 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4976 SEQUENCE_OF_HoldingsRecord_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_HoldingsRecord);
4977
4978 return offset;
4979 }
4980
4981
4982 static const ber_sequence_t OPACRecord_sequence[] = {
4983 { &hf_z3950_bibliographicRecord, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_EXTERNAL },
4984 { &hf_z3950_holdingsData , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_HoldingsRecord },
4985 { NULL, 0, 0, 0, NULL }
4986 };
4987
4988 static int
dissect_z3950_OPACRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)4989 dissect_z3950_OPACRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4990 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4991 OPACRecord_sequence, hf_index, ett_z3950_OPACRecord);
4992
4993 return offset;
4994 }
4995
4996
4997 static const value_string z3950_T_tooManyWhat_vals[] = {
4998 { 1, "argumentWords" },
4999 { 2, "truncatedWords" },
5000 { 3, "booleanOperators" },
5001 { 4, "incompleteSubfields" },
5002 { 5, "characters" },
5003 { 6, "recordsRetrieved" },
5004 { 7, "dataBasesSpecified" },
5005 { 8, "resultSetsCreated" },
5006 { 9, "indexTermsProcessed" },
5007 { 0, NULL }
5008 };
5009
5010
5011 static int
dissect_z3950_T_tooManyWhat(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5012 dissect_z3950_T_tooManyWhat(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5013 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5014 NULL);
5015
5016 return offset;
5017 }
5018
5019
5020 static const ber_sequence_t T_tooMany_sequence[] = {
5021 { &hf_z3950_tooManyWhat , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_T_tooManyWhat },
5022 { &hf_z3950_max , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
5023 { NULL, 0, 0, 0, NULL }
5024 };
5025
5026 static int
dissect_z3950_T_tooMany(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5027 dissect_z3950_T_tooMany(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5028 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5029 T_tooMany_sequence, hf_index, ett_z3950_T_tooMany);
5030
5031 return offset;
5032 }
5033
5034
5035 static const ber_sequence_t SEQUENCE_OF_Specification_sequence_of[1] = {
5036 { &hf_z3950_goodOnes_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_Specification },
5037 };
5038
5039 static int
dissect_z3950_SEQUENCE_OF_Specification(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5040 dissect_z3950_SEQUENCE_OF_Specification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5041 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5042 SEQUENCE_OF_Specification_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_Specification);
5043
5044 return offset;
5045 }
5046
5047
5048 static const ber_sequence_t T_badSpec_sequence[] = {
5049 { &hf_z3950_spec , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_Specification },
5050 { &hf_z3950_db , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_DatabaseName },
5051 { &hf_z3950_goodOnes , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_Specification },
5052 { NULL, 0, 0, 0, NULL }
5053 };
5054
5055 static int
dissect_z3950_T_badSpec(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5056 dissect_z3950_T_badSpec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5057 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5058 T_badSpec_sequence, hf_index, ett_z3950_T_badSpec);
5059
5060 return offset;
5061 }
5062
5063
5064 static const value_string z3950_T_reasonCode_vals[] = {
5065 { 0, "doesNotExist" },
5066 { 1, "existsButUnavail" },
5067 { 2, "locked" },
5068 { 3, "accessDenied" },
5069 { 0, NULL }
5070 };
5071
5072
5073 static int
dissect_z3950_T_reasonCode(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5074 dissect_z3950_T_reasonCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5075 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5076 NULL);
5077
5078 return offset;
5079 }
5080
5081
5082 static const ber_sequence_t T_why_sequence[] = {
5083 { &hf_z3950_reasonCode , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_reasonCode },
5084 { &hf_z3950_message , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5085 { NULL, 0, 0, 0, NULL }
5086 };
5087
5088 static int
dissect_z3950_T_why(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5089 dissect_z3950_T_why(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5090 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5091 T_why_sequence, hf_index, ett_z3950_T_why);
5092
5093 return offset;
5094 }
5095
5096
5097 static const ber_sequence_t T_dbUnavail_sequence[] = {
5098 { &hf_z3950_db , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_DatabaseName },
5099 { &hf_z3950_why , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_T_why },
5100 { NULL, 0, 0, 0, NULL }
5101 };
5102
5103 static int
dissect_z3950_T_dbUnavail(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5104 dissect_z3950_T_dbUnavail(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5105 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5106 T_dbUnavail_sequence, hf_index, ett_z3950_T_dbUnavail);
5107
5108 return offset;
5109 }
5110
5111
5112 static const value_string z3950_T_unSupOp_vals[] = {
5113 { 0, "and" },
5114 { 1, "or" },
5115 { 2, "and-not" },
5116 { 3, "prox" },
5117 { 0, NULL }
5118 };
5119
5120
5121 static int
dissect_z3950_T_unSupOp(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5122 dissect_z3950_T_unSupOp(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5123 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5124 NULL);
5125
5126 return offset;
5127 }
5128
5129
5130 static const ber_sequence_t T_attribute_sequence[] = {
5131 { &hf_z3950_id , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
5132 { &hf_z3950_type , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
5133 { &hf_z3950_value , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
5134 { &hf_z3950_term , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_Term },
5135 { NULL, 0, 0, 0, NULL }
5136 };
5137
5138 static int
dissect_z3950_T_attribute(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5139 dissect_z3950_T_attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5140 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5141 T_attribute_sequence, hf_index, ett_z3950_T_attribute);
5142
5143 return offset;
5144 }
5145
5146
5147 static const ber_sequence_t SEQUENCE_OF_AttributeList_sequence_of[1] = {
5148 { &hf_z3950_recommendedAlternatives_item, BER_CLASS_CON, 44, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeList },
5149 };
5150
5151 static int
dissect_z3950_SEQUENCE_OF_AttributeList(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5152 dissect_z3950_SEQUENCE_OF_AttributeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5153 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5154 SEQUENCE_OF_AttributeList_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_AttributeList);
5155
5156 return offset;
5157 }
5158
5159
5160 static const ber_sequence_t T_attCombo_sequence[] = {
5161 { &hf_z3950_unsupportedCombination, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_AttributeList },
5162 { &hf_z3950_recommendedAlternatives, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_AttributeList },
5163 { NULL, 0, 0, 0, NULL }
5164 };
5165
5166 static int
dissect_z3950_T_attCombo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5167 dissect_z3950_T_attCombo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5168 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5169 T_attCombo_sequence, hf_index, ett_z3950_T_attCombo);
5170
5171 return offset;
5172 }
5173
5174
5175 static const value_string z3950_T_problem_vals[] = {
5176 { 1, "codedValue" },
5177 { 2, "unparsable" },
5178 { 3, "tooShort" },
5179 { 4, "type" },
5180 { 0, NULL }
5181 };
5182
5183
5184 static int
dissect_z3950_T_problem(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5185 dissect_z3950_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5186 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5187 NULL);
5188
5189 return offset;
5190 }
5191
5192
5193 static const ber_sequence_t T_diagFormat_term_sequence[] = {
5194 { &hf_z3950_problem , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_problem },
5195 { &hf_z3950_term , BER_CLASS_CON, 2, BER_FLAGS_NOTCHKTAG, dissect_z3950_Term },
5196 { NULL, 0, 0, 0, NULL }
5197 };
5198
5199 static int
dissect_z3950_T_diagFormat_term(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5200 dissect_z3950_T_diagFormat_term(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5201 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5202 T_diagFormat_term_sequence, hf_index, ett_z3950_T_diagFormat_term);
5203
5204 return offset;
5205 }
5206
5207
5208 static const value_string z3950_T_diagFormat_proximity_vals[] = {
5209 { 1, "resultSets" },
5210 { 2, "badSet" },
5211 { 3, "relation" },
5212 { 4, "unit" },
5213 { 5, "distance" },
5214 { 6, "attributes" },
5215 { 7, "ordered" },
5216 { 8, "exclusion" },
5217 { 0, NULL }
5218 };
5219
5220 static const ber_choice_t T_diagFormat_proximity_choice[] = {
5221 { 1, &hf_z3950_resultSets , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5222 { 2, &hf_z3950_badSet , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5223 { 3, &hf_z3950_relation , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
5224 { 4, &hf_z3950_diagFormat_proximity_unit, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
5225 { 5, &hf_z3950_distance , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
5226 { 6, &hf_z3950_attributes , BER_CLASS_CON, 6, 0, dissect_z3950_AttributeList },
5227 { 7, &hf_z3950_diagFormat_proximity_ordered, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5228 { 8, &hf_z3950_diagFormat_proximity_exclusion, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5229 { 0, NULL, 0, 0, 0, NULL }
5230 };
5231
5232 static int
dissect_z3950_T_diagFormat_proximity(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5233 dissect_z3950_T_diagFormat_proximity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5234 offset = dissect_ber_choice(actx, tree, tvb, offset,
5235 T_diagFormat_proximity_choice, hf_index, ett_z3950_T_diagFormat_proximity,
5236 NULL);
5237
5238 return offset;
5239 }
5240
5241
5242 static const value_string z3950_T_posInResponse_vals[] = {
5243 { 1, "mustBeOne" },
5244 { 2, "mustBePositive" },
5245 { 3, "mustBeNonNegative" },
5246 { 4, "other" },
5247 { 0, NULL }
5248 };
5249
5250
5251 static int
dissect_z3950_T_posInResponse(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5252 dissect_z3950_T_posInResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5253 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5254 NULL);
5255
5256 return offset;
5257 }
5258
5259
5260 static const value_string z3950_T_scan_vals[] = {
5261 { 0, "nonZeroStepSize" },
5262 { 1, "specifiedStepSize" },
5263 { 3, "termList1" },
5264 { 4, "termList2" },
5265 { 5, "posInResponse" },
5266 { 6, "resources" },
5267 { 7, "endOfList" },
5268 { 0, NULL }
5269 };
5270
5271 static const ber_choice_t T_scan_choice[] = {
5272 { 0, &hf_z3950_nonZeroStepSize, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5273 { 1, &hf_z3950_specifiedStepSize, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5274 { 3, &hf_z3950_termList1 , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5275 { 4, &hf_z3950_termList2 , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_AttributeList },
5276 { 5, &hf_z3950_posInResponse , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_T_posInResponse },
5277 { 6, &hf_z3950_resources , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5278 { 7, &hf_z3950_endOfList , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5279 { 0, NULL, 0, 0, 0, NULL }
5280 };
5281
5282 static int
dissect_z3950_T_scan(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5283 dissect_z3950_T_scan(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5284 offset = dissect_ber_choice(actx, tree, tvb, offset,
5285 T_scan_choice, hf_index, ett_z3950_T_scan,
5286 NULL);
5287
5288 return offset;
5289 }
5290
5291
5292 static const value_string z3950_T_key_vals[] = {
5293 { 1, "tooMany" },
5294 { 2, "duplicate" },
5295 { 0, NULL }
5296 };
5297
5298
5299 static int
dissect_z3950_T_key(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5300 dissect_z3950_T_key(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5301 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5302 NULL);
5303
5304 return offset;
5305 }
5306
5307
5308 static const value_string z3950_T_illegal_vals[] = {
5309 { 1, "relation" },
5310 { 2, "case" },
5311 { 3, "action" },
5312 { 4, "sort" },
5313 { 0, NULL }
5314 };
5315
5316
5317 static int
dissect_z3950_T_illegal(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5318 dissect_z3950_T_illegal(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5319 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5320 NULL);
5321
5322 return offset;
5323 }
5324
5325
5326 static const value_string z3950_T_sort_vals[] = {
5327 { 0, "sequence" },
5328 { 1, "noRsName" },
5329 { 2, "tooMany" },
5330 { 3, "incompatible" },
5331 { 4, "generic" },
5332 { 5, "dbSpecific" },
5333 { 6, "sortElement" },
5334 { 7, "key" },
5335 { 8, "action" },
5336 { 9, "illegal" },
5337 { 10, "inputTooLarge" },
5338 { 11, "aggregateTooLarge" },
5339 { 0, NULL }
5340 };
5341
5342 static const ber_choice_t T_sort_choice[] = {
5343 { 0, &hf_z3950_sequence , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5344 { 1, &hf_z3950_noRsName , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5345 { 2, &hf_z3950_diagFormat_sort_tooMany, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
5346 { 3, &hf_z3950_incompatible , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5347 { 4, &hf_z3950_generic , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5348 { 5, &hf_z3950_diagFormat_sort_dbSpecific, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5349 { 6, &hf_z3950_sortElement , BER_CLASS_CON, 6, 0, dissect_z3950_SortElement },
5350 { 7, &hf_z3950_key , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_z3950_T_key },
5351 { 8, &hf_z3950_action , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5352 { 9, &hf_z3950_illegal , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_z3950_T_illegal },
5353 { 10, &hf_z3950_inputTooLarge , BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_InternationalString },
5354 { 11, &hf_z3950_aggregateTooLarge, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5355 { 0, NULL, 0, 0, 0, NULL }
5356 };
5357
5358 static int
dissect_z3950_T_sort(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5359 dissect_z3950_T_sort(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5360 offset = dissect_ber_choice(actx, tree, tvb, offset,
5361 T_sort_choice, hf_index, ett_z3950_T_sort,
5362 NULL);
5363
5364 return offset;
5365 }
5366
5367
5368 static const value_string z3950_T_segmentation_vals[] = {
5369 { 0, "segmentCount" },
5370 { 1, "segmentSize" },
5371 { 0, NULL }
5372 };
5373
5374 static const ber_choice_t T_segmentation_choice[] = {
5375 { 0, &hf_z3950_segmentCount , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5376 { 1, &hf_z3950_segmentSize , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
5377 { 0, NULL, 0, 0, 0, NULL }
5378 };
5379
5380 static int
dissect_z3950_T_segmentation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5381 dissect_z3950_T_segmentation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5382 offset = dissect_ber_choice(actx, tree, tvb, offset,
5383 T_segmentation_choice, hf_index, ett_z3950_T_segmentation,
5384 NULL);
5385
5386 return offset;
5387 }
5388
5389
5390 static const value_string z3950_T_req_vals[] = {
5391 { 1, "nameInUse" },
5392 { 2, "noSuchName" },
5393 { 3, "quota" },
5394 { 4, "type" },
5395 { 0, NULL }
5396 };
5397
5398
5399 static int
dissect_z3950_T_req(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5400 dissect_z3950_T_req(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5401 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5402 NULL);
5403
5404 return offset;
5405 }
5406
5407
5408 static const value_string z3950_T_permission_vals[] = {
5409 { 1, "id" },
5410 { 2, "modifyDelete" },
5411 { 0, NULL }
5412 };
5413
5414
5415 static int
dissect_z3950_T_permission(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5416 dissect_z3950_T_permission(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5417 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5418 NULL);
5419
5420 return offset;
5421 }
5422
5423
5424 static const value_string z3950_T_immediate_vals[] = {
5425 { 1, "failed" },
5426 { 2, "service" },
5427 { 3, "parameters" },
5428 { 0, NULL }
5429 };
5430
5431
5432 static int
dissect_z3950_T_immediate(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5433 dissect_z3950_T_immediate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5434 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5435 NULL);
5436
5437 return offset;
5438 }
5439
5440
5441 static const value_string z3950_T_extServices_vals[] = {
5442 { 1, "req" },
5443 { 2, "permission" },
5444 { 3, "immediate" },
5445 { 0, NULL }
5446 };
5447
5448 static const ber_choice_t T_extServices_choice[] = {
5449 { 1, &hf_z3950_req , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_T_req },
5450 { 2, &hf_z3950_permission , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_T_permission },
5451 { 3, &hf_z3950_immediate , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_T_immediate },
5452 { 0, NULL, 0, 0, 0, NULL }
5453 };
5454
5455 static int
dissect_z3950_T_extServices(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5456 dissect_z3950_T_extServices(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5457 offset = dissect_ber_choice(actx, tree, tvb, offset,
5458 T_extServices_choice, hf_index, ett_z3950_T_extServices,
5459 NULL);
5460
5461 return offset;
5462 }
5463
5464
5465 static const ber_sequence_t T_diagFormat_accessCtrl_oid_sequence_of[1] = {
5466 { &hf_z3950_diagFormat_accessCtrl_oid_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_OBJECT_IDENTIFIER },
5467 };
5468
5469 static int
dissect_z3950_T_diagFormat_accessCtrl_oid(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5470 dissect_z3950_T_diagFormat_accessCtrl_oid(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5471 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5472 T_diagFormat_accessCtrl_oid_sequence_of, hf_index, ett_z3950_T_diagFormat_accessCtrl_oid);
5473
5474 return offset;
5475 }
5476
5477
5478 static const ber_sequence_t T_alternative_sequence_of[1] = {
5479 { &hf_z3950_alternative_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_OBJECT_IDENTIFIER },
5480 };
5481
5482 static int
dissect_z3950_T_alternative(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5483 dissect_z3950_T_alternative(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5484 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5485 T_alternative_sequence_of, hf_index, ett_z3950_T_alternative);
5486
5487 return offset;
5488 }
5489
5490
5491 static const value_string z3950_T_accessCtrl_vals[] = {
5492 { 1, "noUser" },
5493 { 2, "refused" },
5494 { 3, "simple" },
5495 { 4, "oid" },
5496 { 5, "alternative" },
5497 { 6, "pwdInv" },
5498 { 7, "pwdExp" },
5499 { 0, NULL }
5500 };
5501
5502 static const ber_choice_t T_accessCtrl_choice[] = {
5503 { 1, &hf_z3950_noUser , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5504 { 2, &hf_z3950_refused , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5505 { 3, &hf_z3950_diagFormat_accessCtrl_simple, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5506 { 4, &hf_z3950_diagFormat_accessCtrl_oid, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_T_diagFormat_accessCtrl_oid },
5507 { 5, &hf_z3950_alternative , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_T_alternative },
5508 { 6, &hf_z3950_pwdInv , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5509 { 7, &hf_z3950_pwdExp , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
5510 { 0, NULL, 0, 0, 0, NULL }
5511 };
5512
5513 static int
dissect_z3950_T_accessCtrl(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5514 dissect_z3950_T_accessCtrl(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5515 offset = dissect_ber_choice(actx, tree, tvb, offset,
5516 T_accessCtrl_choice, hf_index, ett_z3950_T_accessCtrl,
5517 NULL);
5518
5519 return offset;
5520 }
5521
5522
5523 static const ber_sequence_t T_suggestedAlternatives_sequence_of[1] = {
5524 { &hf_z3950_suggestedAlternatives_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_OBJECT_IDENTIFIER },
5525 };
5526
5527 static int
dissect_z3950_T_suggestedAlternatives(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5528 dissect_z3950_T_suggestedAlternatives(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5529 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5530 T_suggestedAlternatives_sequence_of, hf_index, ett_z3950_T_suggestedAlternatives);
5531
5532 return offset;
5533 }
5534
5535
5536 static const ber_sequence_t T_diagFormat_recordSyntax_sequence[] = {
5537 { &hf_z3950_unsupportedSyntax, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
5538 { &hf_z3950_suggestedAlternatives, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_suggestedAlternatives },
5539 { NULL, 0, 0, 0, NULL }
5540 };
5541
5542 static int
dissect_z3950_T_diagFormat_recordSyntax(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5543 dissect_z3950_T_diagFormat_recordSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5544 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5545 T_diagFormat_recordSyntax_sequence, hf_index, ett_z3950_T_diagFormat_recordSyntax);
5546
5547 return offset;
5548 }
5549
5550
5551 static const value_string z3950_DiagFormat_vals[] = {
5552 { 1000, "tooMany" },
5553 { 1001, "badSpec" },
5554 { 1002, "dbUnavail" },
5555 { 1003, "unSupOp" },
5556 { 1004, "attribute" },
5557 { 1005, "attCombo" },
5558 { 1006, "term" },
5559 { 1007, "proximity" },
5560 { 1008, "scan" },
5561 { 1009, "sort" },
5562 { 1010, "segmentation" },
5563 { 1011, "extServices" },
5564 { 1012, "accessCtrl" },
5565 { 1013, "recordSyntax" },
5566 { 0, NULL }
5567 };
5568
5569 static const ber_choice_t DiagFormat_choice[] = {
5570 { 1000, &hf_z3950_tooMany , BER_CLASS_CON, 1000, BER_FLAGS_IMPLTAG, dissect_z3950_T_tooMany },
5571 { 1001, &hf_z3950_badSpec , BER_CLASS_CON, 1001, BER_FLAGS_IMPLTAG, dissect_z3950_T_badSpec },
5572 { 1002, &hf_z3950_dbUnavail , BER_CLASS_CON, 1002, BER_FLAGS_IMPLTAG, dissect_z3950_T_dbUnavail },
5573 { 1003, &hf_z3950_unSupOp , BER_CLASS_CON, 1003, BER_FLAGS_IMPLTAG, dissect_z3950_T_unSupOp },
5574 { 1004, &hf_z3950_attribute , BER_CLASS_CON, 1004, BER_FLAGS_IMPLTAG, dissect_z3950_T_attribute },
5575 { 1005, &hf_z3950_attCombo , BER_CLASS_CON, 1005, BER_FLAGS_IMPLTAG, dissect_z3950_T_attCombo },
5576 { 1006, &hf_z3950_diagFormat_term, BER_CLASS_CON, 1006, BER_FLAGS_IMPLTAG, dissect_z3950_T_diagFormat_term },
5577 { 1007, &hf_z3950_diagFormat_proximity, BER_CLASS_CON, 1007, 0, dissect_z3950_T_diagFormat_proximity },
5578 { 1008, &hf_z3950_scan , BER_CLASS_CON, 1008, 0, dissect_z3950_T_scan },
5579 { 1009, &hf_z3950_sort , BER_CLASS_CON, 1009, 0, dissect_z3950_T_sort },
5580 { 1010, &hf_z3950_segmentation , BER_CLASS_CON, 1010, 0, dissect_z3950_T_segmentation },
5581 { 1011, &hf_z3950_extServices , BER_CLASS_CON, 1011, 0, dissect_z3950_T_extServices },
5582 { 1012, &hf_z3950_accessCtrl , BER_CLASS_CON, 1012, 0, dissect_z3950_T_accessCtrl },
5583 { 1013, &hf_z3950_diagFormat_recordSyntax, BER_CLASS_CON, 1013, BER_FLAGS_IMPLTAG, dissect_z3950_T_diagFormat_recordSyntax },
5584 { 0, NULL, 0, 0, 0, NULL }
5585 };
5586
5587 static int
dissect_z3950_DiagFormat(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5588 dissect_z3950_DiagFormat(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5589 offset = dissect_ber_choice(actx, tree, tvb, offset,
5590 DiagFormat_choice, hf_index, ett_z3950_DiagFormat,
5591 NULL);
5592
5593 return offset;
5594 }
5595
5596
5597 static const value_string z3950_T_diagnosticFormat_item_diagnostic_vals[] = {
5598 { 1, "defaultDiagRec" },
5599 { 2, "explicitDiagnostic" },
5600 { 0, NULL }
5601 };
5602
5603 static const ber_choice_t T_diagnosticFormat_item_diagnostic_choice[] = {
5604 { 1, &hf_z3950_defaultDiagRec, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_DefaultDiagFormat },
5605 { 2, &hf_z3950_explicitDiagnostic, BER_CLASS_CON, 2, 0, dissect_z3950_DiagFormat },
5606 { 0, NULL, 0, 0, 0, NULL }
5607 };
5608
5609 static int
dissect_z3950_T_diagnosticFormat_item_diagnostic(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5610 dissect_z3950_T_diagnosticFormat_item_diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5611 offset = dissect_ber_choice(actx, tree, tvb, offset,
5612 T_diagnosticFormat_item_diagnostic_choice, hf_index, ett_z3950_T_diagnosticFormat_item_diagnostic,
5613 NULL);
5614
5615 return offset;
5616 }
5617
5618
5619 static const ber_sequence_t DiagnosticFormat_item_sequence[] = {
5620 { &hf_z3950_diagnosticFormat_item_diagnostic, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_z3950_T_diagnosticFormat_item_diagnostic },
5621 { &hf_z3950_message , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5622 { NULL, 0, 0, 0, NULL }
5623 };
5624
5625 static int
dissect_z3950_DiagnosticFormat_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5626 dissect_z3950_DiagnosticFormat_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5627 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5628 DiagnosticFormat_item_sequence, hf_index, ett_z3950_DiagnosticFormat_item);
5629
5630 return offset;
5631 }
5632
5633
5634 static const ber_sequence_t DiagnosticFormat_sequence_of[1] = {
5635 { &hf_z3950_DiagnosticFormat_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_DiagnosticFormat_item },
5636 };
5637
5638 static int
dissect_z3950_DiagnosticFormat(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5639 dissect_z3950_DiagnosticFormat(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5640 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5641 DiagnosticFormat_sequence_of, hf_index, ett_z3950_DiagnosticFormat);
5642
5643 return offset;
5644 }
5645
5646
5647
5648 static int
dissect_z3950_LanguageCode(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5649 dissect_z3950_LanguageCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5650 offset = dissect_z3950_InternationalString(implicit_tag, tvb, offset, actx, tree, hf_index);
5651
5652 return offset;
5653 }
5654
5655
5656 static const ber_sequence_t CommonInfo_sequence[] = {
5657 { &hf_z3950_dateAdded , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_GeneralizedTime },
5658 { &hf_z3950_dateChanged , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_GeneralizedTime },
5659 { &hf_z3950_expiry , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_GeneralizedTime },
5660 { &hf_z3950_humanString_Language, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_LanguageCode },
5661 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
5662 { NULL, 0, 0, 0, NULL }
5663 };
5664
5665 static int
dissect_z3950_CommonInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5666 dissect_z3950_CommonInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5667 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5668 CommonInfo_sequence, hf_index, ett_z3950_CommonInfo);
5669
5670 return offset;
5671 }
5672
5673
5674 static const ber_sequence_t HumanString_item_sequence[] = {
5675 { &hf_z3950_language , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_LanguageCode },
5676 { &hf_z3950_text , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5677 { NULL, 0, 0, 0, NULL }
5678 };
5679
5680 static int
dissect_z3950_HumanString_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5681 dissect_z3950_HumanString_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5682 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5683 HumanString_item_sequence, hf_index, ett_z3950_HumanString_item);
5684
5685 return offset;
5686 }
5687
5688
5689 static const ber_sequence_t HumanString_sequence_of[1] = {
5690 { &hf_z3950_HumanString_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_HumanString_item },
5691 };
5692
5693 static int
dissect_z3950_HumanString(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5694 dissect_z3950_HumanString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5695 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5696 HumanString_sequence_of, hf_index, ett_z3950_HumanString);
5697
5698 return offset;
5699 }
5700
5701
5702 static const value_string z3950_T_bodyType_vals[] = {
5703 { 1, "ianaType" },
5704 { 2, "z3950type" },
5705 { 3, "otherType" },
5706 { 0, NULL }
5707 };
5708
5709 static const ber_choice_t T_bodyType_choice[] = {
5710 { 1, &hf_z3950_ianaType , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5711 { 2, &hf_z3950_z3950type , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5712 { 3, &hf_z3950_otherType , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5713 { 0, NULL, 0, 0, 0, NULL }
5714 };
5715
5716 static int
dissect_z3950_T_bodyType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5717 dissect_z3950_T_bodyType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5718 offset = dissect_ber_choice(actx, tree, tvb, offset,
5719 T_bodyType_choice, hf_index, ett_z3950_T_bodyType,
5720 NULL);
5721
5722 return offset;
5723 }
5724
5725
5726 static const ber_sequence_t IconObject_item_sequence[] = {
5727 { &hf_z3950_bodyType , BER_CLASS_CON, 1, 0, dissect_z3950_T_bodyType },
5728 { &hf_z3950_content , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
5729 { NULL, 0, 0, 0, NULL }
5730 };
5731
5732 static int
dissect_z3950_IconObject_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5733 dissect_z3950_IconObject_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5734 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5735 IconObject_item_sequence, hf_index, ett_z3950_IconObject_item);
5736
5737 return offset;
5738 }
5739
5740
5741 static const ber_sequence_t IconObject_sequence_of[1] = {
5742 { &hf_z3950_IconObject_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_IconObject_item },
5743 };
5744
5745 static int
dissect_z3950_IconObject(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5746 dissect_z3950_IconObject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5747 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5748 IconObject_sequence_of, hf_index, ett_z3950_IconObject);
5749
5750 return offset;
5751 }
5752
5753
5754 static const ber_sequence_t ContactInfo_sequence[] = {
5755 { &hf_z3950_name , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5756 { &hf_z3950_description , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
5757 { &hf_z3950_address , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
5758 { &hf_z3950_email , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5759 { &hf_z3950_phone , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5760 { NULL, 0, 0, 0, NULL }
5761 };
5762
5763 static int
dissect_z3950_ContactInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5764 dissect_z3950_ContactInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5765 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5766 ContactInfo_sequence, hf_index, ett_z3950_ContactInfo);
5767
5768 return offset;
5769 }
5770
5771
5772 static const ber_sequence_t DatabaseList_sequence_of[1] = {
5773 { &hf_z3950_DatabaseList_item, BER_CLASS_CON, 105, BER_FLAGS_NOOWNTAG, dissect_z3950_DatabaseName },
5774 };
5775
5776 static int
dissect_z3950_DatabaseList(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5777 dissect_z3950_DatabaseList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5778 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5779 DatabaseList_sequence_of, hf_index, ett_z3950_DatabaseList);
5780
5781 return offset;
5782 }
5783
5784
5785 static const ber_sequence_t SEQUENCE_OF_DatabaseList_sequence_of[1] = {
5786 { &hf_z3950_dbCombinations_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_DatabaseList },
5787 };
5788
5789 static int
dissect_z3950_SEQUENCE_OF_DatabaseList(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5790 dissect_z3950_SEQUENCE_OF_DatabaseList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5791 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5792 SEQUENCE_OF_DatabaseList_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_DatabaseList);
5793
5794 return offset;
5795 }
5796
5797
5798 static const ber_sequence_t T_internetAddress_sequence[] = {
5799 { &hf_z3950_hostAddress , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5800 { &hf_z3950_port , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
5801 { NULL, 0, 0, 0, NULL }
5802 };
5803
5804 static int
dissect_z3950_T_internetAddress(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5805 dissect_z3950_T_internetAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5806 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5807 T_internetAddress_sequence, hf_index, ett_z3950_T_internetAddress);
5808
5809 return offset;
5810 }
5811
5812
5813 static const ber_sequence_t T_osiPresentationAddress_sequence[] = {
5814 { &hf_z3950_pSel , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5815 { &hf_z3950_sSel , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5816 { &hf_z3950_tSel , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5817 { &hf_z3950_nSap , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5818 { NULL, 0, 0, 0, NULL }
5819 };
5820
5821 static int
dissect_z3950_T_osiPresentationAddress(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5822 dissect_z3950_T_osiPresentationAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5823 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5824 T_osiPresentationAddress_sequence, hf_index, ett_z3950_T_osiPresentationAddress);
5825
5826 return offset;
5827 }
5828
5829
5830 static const ber_sequence_t T_networkAddress_other_sequence[] = {
5831 { &hf_z3950_networkAddress_other_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5832 { &hf_z3950_networkAddress_other_address, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5833 { NULL, 0, 0, 0, NULL }
5834 };
5835
5836 static int
dissect_z3950_T_networkAddress_other(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5837 dissect_z3950_T_networkAddress_other(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5838 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5839 T_networkAddress_other_sequence, hf_index, ett_z3950_T_networkAddress_other);
5840
5841 return offset;
5842 }
5843
5844
5845 static const value_string z3950_NetworkAddress_vals[] = {
5846 { 0, "internetAddress" },
5847 { 1, "osiPresentationAddress" },
5848 { 2, "other" },
5849 { 0, NULL }
5850 };
5851
5852 static const ber_choice_t NetworkAddress_choice[] = {
5853 { 0, &hf_z3950_internetAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_T_internetAddress },
5854 { 1, &hf_z3950_osiPresentationAddress, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_T_osiPresentationAddress },
5855 { 2, &hf_z3950_networkAddress_other, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_T_networkAddress_other },
5856 { 0, NULL, 0, 0, 0, NULL }
5857 };
5858
5859 static int
dissect_z3950_NetworkAddress(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5860 dissect_z3950_NetworkAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5861 offset = dissect_ber_choice(actx, tree, tvb, offset,
5862 NetworkAddress_choice, hf_index, ett_z3950_NetworkAddress,
5863 NULL);
5864
5865 return offset;
5866 }
5867
5868
5869 static const ber_sequence_t SEQUENCE_OF_NetworkAddress_sequence_of[1] = {
5870 { &hf_z3950_addresses_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_NetworkAddress },
5871 };
5872
5873 static int
dissect_z3950_SEQUENCE_OF_NetworkAddress(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5874 dissect_z3950_SEQUENCE_OF_NetworkAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5875 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5876 SEQUENCE_OF_NetworkAddress_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_NetworkAddress);
5877
5878 return offset;
5879 }
5880
5881
5882 static const ber_sequence_t T_privateCapabilities_operators_item_sequence[] = {
5883 { &hf_z3950_operator , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5884 { &hf_z3950_description , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
5885 { NULL, 0, 0, 0, NULL }
5886 };
5887
5888 static int
dissect_z3950_T_privateCapabilities_operators_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5889 dissect_z3950_T_privateCapabilities_operators_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5890 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5891 T_privateCapabilities_operators_item_sequence, hf_index, ett_z3950_T_privateCapabilities_operators_item);
5892
5893 return offset;
5894 }
5895
5896
5897 static const ber_sequence_t T_privateCapabilities_operators_sequence_of[1] = {
5898 { &hf_z3950_privateCapabilities_operators_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_T_privateCapabilities_operators_item },
5899 };
5900
5901 static int
dissect_z3950_T_privateCapabilities_operators(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5902 dissect_z3950_T_privateCapabilities_operators(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5903 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5904 T_privateCapabilities_operators_sequence_of, hf_index, ett_z3950_T_privateCapabilities_operators);
5905
5906 return offset;
5907 }
5908
5909
5910 static const ber_sequence_t SearchKey_sequence[] = {
5911 { &hf_z3950_searchKey , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
5912 { &hf_z3950_description , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
5913 { NULL, 0, 0, 0, NULL }
5914 };
5915
5916 static int
dissect_z3950_SearchKey(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5917 dissect_z3950_SearchKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5918 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5919 SearchKey_sequence, hf_index, ett_z3950_SearchKey);
5920
5921 return offset;
5922 }
5923
5924
5925 static const ber_sequence_t SEQUENCE_OF_SearchKey_sequence_of[1] = {
5926 { &hf_z3950_searchKeys_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_SearchKey },
5927 };
5928
5929 static int
dissect_z3950_SEQUENCE_OF_SearchKey(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5930 dissect_z3950_SEQUENCE_OF_SearchKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5931 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5932 SEQUENCE_OF_SearchKey_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_SearchKey);
5933
5934 return offset;
5935 }
5936
5937
5938 static const ber_sequence_t SEQUENCE_OF_HumanString_sequence_of[1] = {
5939 { &hf_z3950_keywords_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_HumanString },
5940 };
5941
5942 static int
dissect_z3950_SEQUENCE_OF_HumanString(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5943 dissect_z3950_SEQUENCE_OF_HumanString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5944 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5945 SEQUENCE_OF_HumanString_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_HumanString);
5946
5947 return offset;
5948 }
5949
5950
5951 static const ber_sequence_t PrivateCapabilities_sequence[] = {
5952 { &hf_z3950_privateCapabilities_operators, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_privateCapabilities_operators },
5953 { &hf_z3950_searchKeys , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_SearchKey },
5954 { &hf_z3950_privateCapabilities_description, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_HumanString },
5955 { NULL, 0, 0, 0, NULL }
5956 };
5957
5958 static int
dissect_z3950_PrivateCapabilities(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5959 dissect_z3950_PrivateCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5960 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5961 PrivateCapabilities_sequence, hf_index, ett_z3950_PrivateCapabilities);
5962
5963 return offset;
5964 }
5965
5966
5967 static const ber_sequence_t T_operators_sequence_of[1] = {
5968 { &hf_z3950_operators_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_z3950_INTEGER },
5969 };
5970
5971 static int
dissect_z3950_T_operators(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5972 dissect_z3950_T_operators(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5973 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5974 T_operators_sequence_of, hf_index, ett_z3950_T_operators);
5975
5976 return offset;
5977 }
5978
5979
5980 static const ber_sequence_t T_proximitySupport_unitsSupported_item_private_sequence[] = {
5981 { &hf_z3950_proximitySupport_unitsSupported_item_private_unit, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
5982 { &hf_z3950_description , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_z3950_HumanString },
5983 { NULL, 0, 0, 0, NULL }
5984 };
5985
5986 static int
dissect_z3950_T_proximitySupport_unitsSupported_item_private(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)5987 dissect_z3950_T_proximitySupport_unitsSupported_item_private(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5988 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5989 T_proximitySupport_unitsSupported_item_private_sequence, hf_index, ett_z3950_T_proximitySupport_unitsSupported_item_private);
5990
5991 return offset;
5992 }
5993
5994
5995 static const value_string z3950_T_unitsSupported_item_vals[] = {
5996 { 1, "known" },
5997 { 2, "private" },
5998 { 0, NULL }
5999 };
6000
6001 static const ber_choice_t T_unitsSupported_item_choice[] = {
6002 { 1, &hf_z3950_proximitySupport_unitsSupported_item_known, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
6003 { 2, &hf_z3950_proximitySupport_unitsSupported_item_private, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_T_proximitySupport_unitsSupported_item_private },
6004 { 0, NULL, 0, 0, 0, NULL }
6005 };
6006
6007 static int
dissect_z3950_T_unitsSupported_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6008 dissect_z3950_T_unitsSupported_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6009 offset = dissect_ber_choice(actx, tree, tvb, offset,
6010 T_unitsSupported_item_choice, hf_index, ett_z3950_T_unitsSupported_item,
6011 NULL);
6012
6013 return offset;
6014 }
6015
6016
6017 static const ber_sequence_t T_unitsSupported_sequence_of[1] = {
6018 { &hf_z3950_unitsSupported_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_T_unitsSupported_item },
6019 };
6020
6021 static int
dissect_z3950_T_unitsSupported(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6022 dissect_z3950_T_unitsSupported(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6023 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6024 T_unitsSupported_sequence_of, hf_index, ett_z3950_T_unitsSupported);
6025
6026 return offset;
6027 }
6028
6029
6030 static const ber_sequence_t ProximitySupport_sequence[] = {
6031 { &hf_z3950_anySupport , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6032 { &hf_z3950_unitsSupported, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_unitsSupported },
6033 { NULL, 0, 0, 0, NULL }
6034 };
6035
6036 static int
dissect_z3950_ProximitySupport(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6037 dissect_z3950_ProximitySupport(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6038 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6039 ProximitySupport_sequence, hf_index, ett_z3950_ProximitySupport);
6040
6041 return offset;
6042 }
6043
6044
6045 static const ber_sequence_t RpnCapabilities_sequence[] = {
6046 { &hf_z3950_operators , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_operators },
6047 { &hf_z3950_resultSetAsOperandSupported, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6048 { &hf_z3950_restrictionOperandSupported, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6049 { &hf_z3950_proximity , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_ProximitySupport },
6050 { NULL, 0, 0, 0, NULL }
6051 };
6052
6053 static int
dissect_z3950_RpnCapabilities(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6054 dissect_z3950_RpnCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6055 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6056 RpnCapabilities_sequence, hf_index, ett_z3950_RpnCapabilities);
6057
6058 return offset;
6059 }
6060
6061
6062 static const ber_sequence_t Iso8777Capabilities_sequence[] = {
6063 { &hf_z3950_searchKeys , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_SearchKey },
6064 { &hf_z3950_restrictions , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6065 { NULL, 0, 0, 0, NULL }
6066 };
6067
6068 static int
dissect_z3950_Iso8777Capabilities(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6069 dissect_z3950_Iso8777Capabilities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6070 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6071 Iso8777Capabilities_sequence, hf_index, ett_z3950_Iso8777Capabilities);
6072
6073 return offset;
6074 }
6075
6076
6077 static const value_string z3950_QueryTypeDetails_vals[] = {
6078 { 0, "private" },
6079 { 1, "rpn" },
6080 { 2, "iso8777" },
6081 { 100, "z39-58" },
6082 { 101, "erpn" },
6083 { 102, "rankedList" },
6084 { 0, NULL }
6085 };
6086
6087 static const ber_choice_t QueryTypeDetails_choice[] = {
6088 { 0, &hf_z3950_queryTypeDetails_private, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_PrivateCapabilities },
6089 { 1, &hf_z3950_queryTypeDetails_rpn, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_RpnCapabilities },
6090 { 2, &hf_z3950_iso8777 , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_Iso8777Capabilities },
6091 { 100, &hf_z3950_z39_58 , BER_CLASS_CON, 100, BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6092 { 101, &hf_z3950_erpn , BER_CLASS_CON, 101, BER_FLAGS_IMPLTAG, dissect_z3950_RpnCapabilities },
6093 { 102, &hf_z3950_rankedList , BER_CLASS_CON, 102, BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6094 { 0, NULL, 0, 0, 0, NULL }
6095 };
6096
6097 static int
dissect_z3950_QueryTypeDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6098 dissect_z3950_QueryTypeDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6099 offset = dissect_ber_choice(actx, tree, tvb, offset,
6100 QueryTypeDetails_choice, hf_index, ett_z3950_QueryTypeDetails,
6101 NULL);
6102
6103 return offset;
6104 }
6105
6106
6107 static const ber_sequence_t SEQUENCE_OF_QueryTypeDetails_sequence_of[1] = {
6108 { &hf_z3950_queryTypesSupported_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_QueryTypeDetails },
6109 };
6110
6111 static int
dissect_z3950_SEQUENCE_OF_QueryTypeDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6112 dissect_z3950_SEQUENCE_OF_QueryTypeDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6113 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6114 SEQUENCE_OF_QueryTypeDetails_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_QueryTypeDetails);
6115
6116 return offset;
6117 }
6118
6119
6120 static const ber_sequence_t T_diagnosticsSets_sequence_of[1] = {
6121 { &hf_z3950_diagnosticsSets_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_OBJECT_IDENTIFIER },
6122 };
6123
6124 static int
dissect_z3950_T_diagnosticsSets(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6125 dissect_z3950_T_diagnosticsSets(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6126 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6127 T_diagnosticsSets_sequence_of, hf_index, ett_z3950_T_diagnosticsSets);
6128
6129 return offset;
6130 }
6131
6132
6133 static const ber_sequence_t SEQUENCE_OF_AttributeSetId_sequence_of[1] = {
6134 { &hf_z3950_attributeSetIds_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeSetId },
6135 };
6136
6137 static int
dissect_z3950_SEQUENCE_OF_AttributeSetId(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6138 dissect_z3950_SEQUENCE_OF_AttributeSetId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6139 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6140 SEQUENCE_OF_AttributeSetId_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_AttributeSetId);
6141
6142 return offset;
6143 }
6144
6145
6146 static const ber_sequence_t T_schemas_sequence_of[1] = {
6147 { &hf_z3950_schemas_item , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_OBJECT_IDENTIFIER },
6148 };
6149
6150 static int
dissect_z3950_T_schemas(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6151 dissect_z3950_T_schemas(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6152 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6153 T_schemas_sequence_of, hf_index, ett_z3950_T_schemas);
6154
6155 return offset;
6156 }
6157
6158
6159 static const ber_sequence_t T_recordSyntaxes_sequence_of[1] = {
6160 { &hf_z3950_recordSyntaxes_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_OBJECT_IDENTIFIER },
6161 };
6162
6163 static int
dissect_z3950_T_recordSyntaxes(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6164 dissect_z3950_T_recordSyntaxes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6165 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6166 T_recordSyntaxes_sequence_of, hf_index, ett_z3950_T_recordSyntaxes);
6167
6168 return offset;
6169 }
6170
6171
6172 static const ber_sequence_t T_resourceChallenges_sequence_of[1] = {
6173 { &hf_z3950_resourceChallenges_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_OBJECT_IDENTIFIER },
6174 };
6175
6176 static int
dissect_z3950_T_resourceChallenges(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6177 dissect_z3950_T_resourceChallenges(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6178 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6179 T_resourceChallenges_sequence_of, hf_index, ett_z3950_T_resourceChallenges);
6180
6181 return offset;
6182 }
6183
6184
6185 static const value_string z3950_T_accessType_vals[] = {
6186 { 0, "any" },
6187 { 1, "search" },
6188 { 2, "present" },
6189 { 3, "specific-elements" },
6190 { 4, "extended-services" },
6191 { 5, "by-database" },
6192 { 0, NULL }
6193 };
6194
6195
6196 static int
dissect_z3950_T_accessType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6197 dissect_z3950_T_accessType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6198 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6199 NULL);
6200
6201 return offset;
6202 }
6203
6204
6205 static const ber_sequence_t T_accessChallenges_sequence_of[1] = {
6206 { &hf_z3950_accessChallenges_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_OBJECT_IDENTIFIER },
6207 };
6208
6209 static int
dissect_z3950_T_accessChallenges(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6210 dissect_z3950_T_accessChallenges(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6211 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6212 T_accessChallenges_sequence_of, hf_index, ett_z3950_T_accessChallenges);
6213
6214 return offset;
6215 }
6216
6217
6218 static const ber_sequence_t AccessRestrictions_item_sequence[] = {
6219 { &hf_z3950_accessType , BER_CLASS_CON, 0, 0, dissect_z3950_T_accessType },
6220 { &hf_z3950_accessText , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6221 { &hf_z3950_accessChallenges, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_accessChallenges },
6222 { NULL, 0, 0, 0, NULL }
6223 };
6224
6225 static int
dissect_z3950_AccessRestrictions_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6226 dissect_z3950_AccessRestrictions_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6227 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6228 AccessRestrictions_item_sequence, hf_index, ett_z3950_AccessRestrictions_item);
6229
6230 return offset;
6231 }
6232
6233
6234 static const ber_sequence_t AccessRestrictions_sequence_of[1] = {
6235 { &hf_z3950_AccessRestrictions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_AccessRestrictions_item },
6236 };
6237
6238 static int
dissect_z3950_AccessRestrictions(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6239 dissect_z3950_AccessRestrictions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6240 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6241 AccessRestrictions_sequence_of, hf_index, ett_z3950_AccessRestrictions);
6242
6243 return offset;
6244 }
6245
6246
6247 static const ber_sequence_t Charge_sequence[] = {
6248 { &hf_z3950_cost , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_IntUnit },
6249 { &hf_z3950_perWhat , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_Unit },
6250 { &hf_z3950_charge_text , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6251 { NULL, 0, 0, 0, NULL }
6252 };
6253
6254 static int
dissect_z3950_Charge(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6255 dissect_z3950_Charge(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6256 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6257 Charge_sequence, hf_index, ett_z3950_Charge);
6258
6259 return offset;
6260 }
6261
6262
6263 static const ber_sequence_t T_otherCharges_item_sequence[] = {
6264 { &hf_z3950_forWhat , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6265 { &hf_z3950_charge , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_Charge },
6266 { NULL, 0, 0, 0, NULL }
6267 };
6268
6269 static int
dissect_z3950_T_otherCharges_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6270 dissect_z3950_T_otherCharges_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6271 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6272 T_otherCharges_item_sequence, hf_index, ett_z3950_T_otherCharges_item);
6273
6274 return offset;
6275 }
6276
6277
6278 static const ber_sequence_t T_otherCharges_sequence_of[1] = {
6279 { &hf_z3950_otherCharges_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_T_otherCharges_item },
6280 };
6281
6282 static int
dissect_z3950_T_otherCharges(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6283 dissect_z3950_T_otherCharges(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6284 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6285 T_otherCharges_sequence_of, hf_index, ett_z3950_T_otherCharges);
6286
6287 return offset;
6288 }
6289
6290
6291 static const ber_sequence_t Costs_sequence[] = {
6292 { &hf_z3950_connectCharge , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_Charge },
6293 { &hf_z3950_connectTime , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_Charge },
6294 { &hf_z3950_displayCharge , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_Charge },
6295 { &hf_z3950_searchCharge , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_Charge },
6296 { &hf_z3950_subscriptCharge, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_Charge },
6297 { &hf_z3950_otherCharges , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_otherCharges },
6298 { NULL, 0, 0, 0, NULL }
6299 };
6300
6301 static int
dissect_z3950_Costs(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6302 dissect_z3950_Costs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6303 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6304 Costs_sequence, hf_index, ett_z3950_Costs);
6305
6306 return offset;
6307 }
6308
6309
6310 static const ber_sequence_t T_variantSets_sequence_of[1] = {
6311 { &hf_z3950_variantSets_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_OBJECT_IDENTIFIER },
6312 };
6313
6314 static int
dissect_z3950_T_variantSets(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6315 dissect_z3950_T_variantSets(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6316 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6317 T_variantSets_sequence_of, hf_index, ett_z3950_T_variantSets);
6318
6319 return offset;
6320 }
6321
6322
6323 static const ber_sequence_t SEQUENCE_OF_ElementSetName_sequence_of[1] = {
6324 { &hf_z3950_elementSetNames_item, BER_CLASS_CON, 103, BER_FLAGS_NOOWNTAG, dissect_z3950_ElementSetName },
6325 };
6326
6327 static int
dissect_z3950_SEQUENCE_OF_ElementSetName(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6328 dissect_z3950_SEQUENCE_OF_ElementSetName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6329 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6330 SEQUENCE_OF_ElementSetName_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_ElementSetName);
6331
6332 return offset;
6333 }
6334
6335
6336 static const ber_sequence_t AccessInfo_sequence[] = {
6337 { &hf_z3950_queryTypesSupported, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_QueryTypeDetails },
6338 { &hf_z3950_diagnosticsSets, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_diagnosticsSets },
6339 { &hf_z3950_attributeSetIds, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_AttributeSetId },
6340 { &hf_z3950_schemas , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_schemas },
6341 { &hf_z3950_recordSyntaxes, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_recordSyntaxes },
6342 { &hf_z3950_resourceChallenges, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_resourceChallenges },
6343 { &hf_z3950_restrictedAccess, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_AccessRestrictions },
6344 { &hf_z3950_costInfo , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_Costs },
6345 { &hf_z3950_variantSets , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_variantSets },
6346 { &hf_z3950_elementSetNames, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_ElementSetName },
6347 { &hf_z3950_unitSystems , BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_InternationalString },
6348 { NULL, 0, 0, 0, NULL }
6349 };
6350
6351 static int
dissect_z3950_AccessInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6352 dissect_z3950_AccessInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6353 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6354 AccessInfo_sequence, hf_index, ett_z3950_AccessInfo);
6355
6356 return offset;
6357 }
6358
6359
6360 static const ber_sequence_t TargetInfo_sequence[] = {
6361 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
6362 { &hf_z3950_name , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
6363 { &hf_z3950_recent_news , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6364 { &hf_z3950_icon , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_IconObject },
6365 { &hf_z3950_namedResultSets, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6366 { &hf_z3950_multipleDBsearch, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6367 { &hf_z3950_maxResultSets , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
6368 { &hf_z3950_maxResultSize , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
6369 { &hf_z3950_maxTerms , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
6370 { &hf_z3950_timeoutInterval, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_IntUnit },
6371 { &hf_z3950_welcomeMessage, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6372 { &hf_z3950_contactInfo , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_ContactInfo },
6373 { &hf_z3950_description , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6374 { &hf_z3950_nicknames , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_InternationalString },
6375 { &hf_z3950_usage_restrictions, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6376 { &hf_z3950_paymentAddr , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6377 { &hf_z3950_hours , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6378 { &hf_z3950_dbCombinations, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_DatabaseList },
6379 { &hf_z3950_addresses , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_NetworkAddress },
6380 { &hf_z3950_languages , BER_CLASS_CON, 101, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_InternationalString },
6381 { &hf_z3950_commonAccessInfo, BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_AccessInfo },
6382 { NULL, 0, 0, 0, NULL }
6383 };
6384
6385 static int
dissect_z3950_TargetInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6386 dissect_z3950_TargetInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6387 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6388 TargetInfo_sequence, hf_index, ett_z3950_TargetInfo);
6389
6390 return offset;
6391 }
6392
6393
6394 static const value_string z3950_T_recordCount_vals[] = {
6395 { 0, "actualNumber" },
6396 { 1, "approxNumber" },
6397 { 0, NULL }
6398 };
6399
6400 static const ber_choice_t T_recordCount_choice[] = {
6401 { 0, &hf_z3950_actualNumber , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
6402 { 1, &hf_z3950_approxNumber , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
6403 { 0, NULL, 0, 0, 0, NULL }
6404 };
6405
6406 static int
dissect_z3950_T_recordCount(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6407 dissect_z3950_T_recordCount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6408 offset = dissect_ber_choice(actx, tree, tvb, offset,
6409 T_recordCount_choice, hf_index, ett_z3950_T_recordCount,
6410 NULL);
6411
6412 return offset;
6413 }
6414
6415
6416 static const ber_sequence_t DatabaseInfo_sequence[] = {
6417 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
6418 { &hf_z3950_databaseInfo_name, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_DatabaseName },
6419 { &hf_z3950_explainDatabase, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
6420 { &hf_z3950_databaseInfo_nicknames, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_DatabaseName },
6421 { &hf_z3950_icon , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_IconObject },
6422 { &hf_z3950_user_fee , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6423 { &hf_z3950_available , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6424 { &hf_z3950_titleString , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6425 { &hf_z3950_keywords , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_HumanString },
6426 { &hf_z3950_description , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6427 { &hf_z3950_associatedDbs , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_DatabaseList },
6428 { &hf_z3950_subDbs , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_DatabaseList },
6429 { &hf_z3950_disclaimers , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6430 { &hf_z3950_news , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6431 { &hf_z3950_recordCount , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_z3950_T_recordCount },
6432 { &hf_z3950_defaultOrder , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6433 { &hf_z3950_avRecordSize , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
6434 { &hf_z3950_maxRecordSize , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
6435 { &hf_z3950_hours , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6436 { &hf_z3950_bestTime , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6437 { &hf_z3950_lastUpdate , BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_GeneralizedTime },
6438 { &hf_z3950_updateInterval, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_IntUnit },
6439 { &hf_z3950_coverage , BER_CLASS_CON, 22, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6440 { &hf_z3950_proprietary , BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6441 { &hf_z3950_copyrightText , BER_CLASS_CON, 24, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6442 { &hf_z3950_copyrightNotice, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6443 { &hf_z3950_producerContactInfo, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_ContactInfo },
6444 { &hf_z3950_supplierContactInfo, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_ContactInfo },
6445 { &hf_z3950_submissionContactInfo, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_ContactInfo },
6446 { &hf_z3950_accessInfo , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_AccessInfo },
6447 { NULL, 0, 0, 0, NULL }
6448 };
6449
6450 static int
dissect_z3950_DatabaseInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6451 dissect_z3950_DatabaseInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6452 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6453 DatabaseInfo_sequence, hf_index, ett_z3950_DatabaseInfo);
6454
6455 return offset;
6456 }
6457
6458
6459 static const ber_sequence_t T_tagTypeMapping_item_sequence[] = {
6460 { &hf_z3950_tagType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
6461 { &hf_z3950_tagSet , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
6462 { &hf_z3950_defaultTagType, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
6463 { NULL, 0, 0, 0, NULL }
6464 };
6465
6466 static int
dissect_z3950_T_tagTypeMapping_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6467 dissect_z3950_T_tagTypeMapping_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6468 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6469 T_tagTypeMapping_item_sequence, hf_index, ett_z3950_T_tagTypeMapping_item);
6470
6471 return offset;
6472 }
6473
6474
6475 static const ber_sequence_t T_tagTypeMapping_sequence_of[1] = {
6476 { &hf_z3950_tagTypeMapping_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_T_tagTypeMapping_item },
6477 };
6478
6479 static int
dissect_z3950_T_tagTypeMapping(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6480 dissect_z3950_T_tagTypeMapping(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6481 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6482 T_tagTypeMapping_sequence_of, hf_index, ett_z3950_T_tagTypeMapping);
6483
6484 return offset;
6485 }
6486
6487
6488 static const ber_sequence_t Path_item_sequence[] = {
6489 { &hf_z3950_tagType , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
6490 { &hf_z3950_tagValue , BER_CLASS_CON, 2, BER_FLAGS_NOTCHKTAG, dissect_z3950_StringOrNumeric },
6491 { NULL, 0, 0, 0, NULL }
6492 };
6493
6494 static int
dissect_z3950_Path_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6495 dissect_z3950_Path_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6496 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6497 Path_item_sequence, hf_index, ett_z3950_Path_item);
6498
6499 return offset;
6500 }
6501
6502
6503 static const ber_sequence_t Path_sequence_of[1] = {
6504 { &hf_z3950_Path_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_Path_item },
6505 };
6506
6507 static int
dissect_z3950_Path(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6508 dissect_z3950_Path(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6509 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6510 Path_sequence_of, hf_index, ett_z3950_Path);
6511
6512 return offset;
6513 }
6514
6515
6516 static const value_string z3950_PrimitiveDataType_vals[] = {
6517 { 0, "octetString" },
6518 { 1, "numeric" },
6519 { 2, "date" },
6520 { 3, "external" },
6521 { 4, "string" },
6522 { 5, "trueOrFalse" },
6523 { 6, "oid" },
6524 { 7, "intUnit" },
6525 { 8, "empty" },
6526 { 100, "noneOfTheAbove" },
6527 { 0, NULL }
6528 };
6529
6530
6531 static int
dissect_z3950_PrimitiveDataType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6532 dissect_z3950_PrimitiveDataType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6533 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6534 NULL);
6535
6536 return offset;
6537 }
6538
6539
6540 static const ber_sequence_t SEQUENCE_OF_ElementInfo_sequence_of[1] = {
6541 { &hf_z3950_recordStructure_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_ElementInfo },
6542 };
6543
6544 static int
dissect_z3950_SEQUENCE_OF_ElementInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6545 dissect_z3950_SEQUENCE_OF_ElementInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6546 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6547 SEQUENCE_OF_ElementInfo_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_ElementInfo);
6548
6549 return offset;
6550 }
6551
6552
6553 static const value_string z3950_ElementDataType_vals[] = {
6554 { 0, "primitive" },
6555 { 1, "structured" },
6556 { 0, NULL }
6557 };
6558
6559 static const ber_choice_t ElementDataType_choice[] = {
6560 { 0, &hf_z3950_primitive , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_PrimitiveDataType },
6561 { 1, &hf_z3950_structured , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_ElementInfo },
6562 { 0, NULL, 0, 0, 0, NULL }
6563 };
6564
6565 static int
dissect_z3950_ElementDataType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6566 dissect_z3950_ElementDataType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6567 offset = dissect_ber_choice(actx, tree, tvb, offset,
6568 ElementDataType_choice, hf_index, ett_z3950_ElementDataType,
6569 NULL);
6570
6571 return offset;
6572 }
6573
6574
6575 static const ber_sequence_t ElementInfo_sequence[] = {
6576 { &hf_z3950_elementName , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
6577 { &hf_z3950_elementTagPath, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_Path },
6578 { &hf_z3950_elementInfo_dataType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_ElementDataType },
6579 { &hf_z3950_required , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6580 { &hf_z3950_repeatable , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6581 { &hf_z3950_description , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6582 { NULL, 0, 0, 0, NULL }
6583 };
6584
6585 static int
dissect_z3950_ElementInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6586 dissect_z3950_ElementInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6587 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6588 ElementInfo_sequence, hf_index, ett_z3950_ElementInfo);
6589
6590 return offset;
6591 }
6592
6593
6594 static const ber_sequence_t SchemaInfo_sequence[] = {
6595 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
6596 { &hf_z3950_schema , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
6597 { &hf_z3950_name , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
6598 { &hf_z3950_description , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6599 { &hf_z3950_tagTypeMapping, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_tagTypeMapping },
6600 { &hf_z3950_recordStructure, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_ElementInfo },
6601 { NULL, 0, 0, 0, NULL }
6602 };
6603
6604 static int
dissect_z3950_SchemaInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6605 dissect_z3950_SchemaInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6606 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6607 SchemaInfo_sequence, hf_index, ett_z3950_SchemaInfo);
6608
6609 return offset;
6610 }
6611
6612
6613 static const ber_sequence_t T_tagSetInfo_elements_item_sequence[] = {
6614 { &hf_z3950_elementname , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
6615 { &hf_z3950_nicknames , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_InternationalString },
6616 { &hf_z3950_elementTag , BER_CLASS_CON, 3, BER_FLAGS_NOTCHKTAG, dissect_z3950_StringOrNumeric },
6617 { &hf_z3950_description , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6618 { &hf_z3950_dataType , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_z3950_PrimitiveDataType },
6619 { &hf_z3950_otherTagInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
6620 { NULL, 0, 0, 0, NULL }
6621 };
6622
6623 static int
dissect_z3950_T_tagSetInfo_elements_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6624 dissect_z3950_T_tagSetInfo_elements_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6625 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6626 T_tagSetInfo_elements_item_sequence, hf_index, ett_z3950_T_tagSetInfo_elements_item);
6627
6628 return offset;
6629 }
6630
6631
6632 static const ber_sequence_t T_tagSetInfo_elements_sequence_of[1] = {
6633 { &hf_z3950_tagSetInfo_elements_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_T_tagSetInfo_elements_item },
6634 };
6635
6636 static int
dissect_z3950_T_tagSetInfo_elements(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6637 dissect_z3950_T_tagSetInfo_elements(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6638 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6639 T_tagSetInfo_elements_sequence_of, hf_index, ett_z3950_T_tagSetInfo_elements);
6640
6641 return offset;
6642 }
6643
6644
6645 static const ber_sequence_t TagSetInfo_sequence[] = {
6646 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
6647 { &hf_z3950_tagSet , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
6648 { &hf_z3950_name , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
6649 { &hf_z3950_description , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6650 { &hf_z3950_tagSetInfo_elements, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_tagSetInfo_elements },
6651 { NULL, 0, 0, 0, NULL }
6652 };
6653
6654 static int
dissect_z3950_TagSetInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6655 dissect_z3950_TagSetInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6656 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6657 TagSetInfo_sequence, hf_index, ett_z3950_TagSetInfo);
6658
6659 return offset;
6660 }
6661
6662
6663 static const ber_sequence_t T_transferSyntaxes_sequence_of[1] = {
6664 { &hf_z3950_transferSyntaxes_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_OBJECT_IDENTIFIER },
6665 };
6666
6667 static int
dissect_z3950_T_transferSyntaxes(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6668 dissect_z3950_T_transferSyntaxes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6669 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6670 T_transferSyntaxes_sequence_of, hf_index, ett_z3950_T_transferSyntaxes);
6671
6672 return offset;
6673 }
6674
6675
6676 static const ber_sequence_t RecordSyntaxInfo_sequence[] = {
6677 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
6678 { &hf_z3950_recordSyntax , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
6679 { &hf_z3950_name , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
6680 { &hf_z3950_transferSyntaxes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_transferSyntaxes },
6681 { &hf_z3950_description , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6682 { &hf_z3950_asn1Module , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
6683 { &hf_z3950_abstractStructure, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_ElementInfo },
6684 { NULL, 0, 0, 0, NULL }
6685 };
6686
6687 static int
dissect_z3950_RecordSyntaxInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6688 dissect_z3950_RecordSyntaxInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6689 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6690 RecordSyntaxInfo_sequence, hf_index, ett_z3950_RecordSyntaxInfo);
6691
6692 return offset;
6693 }
6694
6695
6696 static const ber_sequence_t AttributeDescription_sequence[] = {
6697 { &hf_z3950_name , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
6698 { &hf_z3950_description , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6699 { &hf_z3950_attributeDescription_attributeValue, BER_CLASS_CON, 2, BER_FLAGS_NOTCHKTAG, dissect_z3950_StringOrNumeric },
6700 { &hf_z3950_equivalentAttributes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_StringOrNumeric },
6701 { NULL, 0, 0, 0, NULL }
6702 };
6703
6704 static int
dissect_z3950_AttributeDescription(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6705 dissect_z3950_AttributeDescription(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6706 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6707 AttributeDescription_sequence, hf_index, ett_z3950_AttributeDescription);
6708
6709 return offset;
6710 }
6711
6712
6713 static const ber_sequence_t SEQUENCE_OF_AttributeDescription_sequence_of[1] = {
6714 { &hf_z3950_attributeValues_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeDescription },
6715 };
6716
6717 static int
dissect_z3950_SEQUENCE_OF_AttributeDescription(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6718 dissect_z3950_SEQUENCE_OF_AttributeDescription(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6719 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6720 SEQUENCE_OF_AttributeDescription_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_AttributeDescription);
6721
6722 return offset;
6723 }
6724
6725
6726 static const ber_sequence_t AttributeType_sequence[] = {
6727 { &hf_z3950_name , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
6728 { &hf_z3950_description , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6729 { &hf_z3950_attributeType , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
6730 { &hf_z3950_attributeValues, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_AttributeDescription },
6731 { NULL, 0, 0, 0, NULL }
6732 };
6733
6734 static int
dissect_z3950_AttributeType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6735 dissect_z3950_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6736 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6737 AttributeType_sequence, hf_index, ett_z3950_AttributeType);
6738
6739 return offset;
6740 }
6741
6742
6743 static const ber_sequence_t SEQUENCE_OF_AttributeType_sequence_of[1] = {
6744 { &hf_z3950_attributeSetInfo_attributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeType },
6745 };
6746
6747 static int
dissect_z3950_SEQUENCE_OF_AttributeType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6748 dissect_z3950_SEQUENCE_OF_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6749 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6750 SEQUENCE_OF_AttributeType_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_AttributeType);
6751
6752 return offset;
6753 }
6754
6755
6756 static const ber_sequence_t AttributeSetInfo_sequence[] = {
6757 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
6758 { &hf_z3950_attributeSet , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_AttributeSetId },
6759 { &hf_z3950_name , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
6760 { &hf_z3950_attributeSetInfo_attributes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_AttributeType },
6761 { &hf_z3950_description , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6762 { NULL, 0, 0, 0, NULL }
6763 };
6764
6765 static int
dissect_z3950_AttributeSetInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6766 dissect_z3950_AttributeSetInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6767 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6768 AttributeSetInfo_sequence, hf_index, ett_z3950_AttributeSetInfo);
6769
6770 return offset;
6771 }
6772
6773
6774 static const value_string z3950_T_searchCost_vals[] = {
6775 { 0, "optimized" },
6776 { 1, "normal" },
6777 { 2, "expensive" },
6778 { 3, "filter" },
6779 { 0, NULL }
6780 };
6781
6782
6783 static int
dissect_z3950_T_searchCost(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6784 dissect_z3950_T_searchCost(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6785 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6786 NULL);
6787
6788 return offset;
6789 }
6790
6791
6792 static const ber_sequence_t T_termLists_item_sequence[] = {
6793 { &hf_z3950_name , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
6794 { &hf_z3950_title , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6795 { &hf_z3950_searchCost , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_searchCost },
6796 { &hf_z3950_scanable , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6797 { &hf_z3950_broader , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_InternationalString },
6798 { &hf_z3950_narrower , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_InternationalString },
6799 { NULL, 0, 0, 0, NULL }
6800 };
6801
6802 static int
dissect_z3950_T_termLists_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6803 dissect_z3950_T_termLists_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6804 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6805 T_termLists_item_sequence, hf_index, ett_z3950_T_termLists_item);
6806
6807 return offset;
6808 }
6809
6810
6811 static const ber_sequence_t T_termLists_sequence_of[1] = {
6812 { &hf_z3950_termLists_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_T_termLists_item },
6813 };
6814
6815 static int
dissect_z3950_T_termLists(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6816 dissect_z3950_T_termLists(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6817 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6818 T_termLists_sequence_of, hf_index, ett_z3950_T_termLists);
6819
6820 return offset;
6821 }
6822
6823
6824 static const ber_sequence_t TermListInfo_sequence[] = {
6825 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
6826 { &hf_z3950_databaseName , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_DatabaseName },
6827 { &hf_z3950_termLists , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_T_termLists },
6828 { NULL, 0, 0, 0, NULL }
6829 };
6830
6831 static int
dissect_z3950_TermListInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6832 dissect_z3950_TermListInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6833 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6834 TermListInfo_sequence, hf_index, ett_z3950_TermListInfo);
6835
6836 return offset;
6837 }
6838
6839
6840 static const value_string z3950_T_extendedServicesInfo_waitAction_vals[] = {
6841 { 1, "waitSupported" },
6842 { 2, "waitAlways" },
6843 { 3, "waitNotSupported" },
6844 { 4, "depends" },
6845 { 5, "notSaying" },
6846 { 0, NULL }
6847 };
6848
6849
6850 static int
dissect_z3950_T_extendedServicesInfo_waitAction(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6851 dissect_z3950_T_extendedServicesInfo_waitAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6852 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6853 NULL);
6854
6855 return offset;
6856 }
6857
6858
6859 static const ber_sequence_t ExtendedServicesInfo_sequence[] = {
6860 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
6861 { &hf_z3950_extendedServicesInfo_type, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
6862 { &hf_z3950_name , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
6863 { &hf_z3950_privateType , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6864 { &hf_z3950_restrictionsApply, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6865 { &hf_z3950_feeApply , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6866 { &hf_z3950_available , BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6867 { &hf_z3950_retentionSupported, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
6868 { &hf_z3950_extendedServicesInfo_waitAction, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_z3950_T_extendedServicesInfo_waitAction },
6869 { &hf_z3950_description , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6870 { &hf_z3950_specificExplain, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_EXTERNAL },
6871 { &hf_z3950_esASN , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
6872 { NULL, 0, 0, 0, NULL }
6873 };
6874
6875 static int
dissect_z3950_ExtendedServicesInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6876 dissect_z3950_ExtendedServicesInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6877 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6878 ExtendedServicesInfo_sequence, hf_index, ett_z3950_ExtendedServicesInfo);
6879
6880 return offset;
6881 }
6882
6883
6884 static const ber_sequence_t OmittedAttributeInterpretation_sequence[] = {
6885 { &hf_z3950_defaultValue , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_StringOrNumeric },
6886 { &hf_z3950_defaultDescription, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6887 { NULL, 0, 0, 0, NULL }
6888 };
6889
6890 static int
dissect_z3950_OmittedAttributeInterpretation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6891 dissect_z3950_OmittedAttributeInterpretation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6892 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6893 OmittedAttributeInterpretation_sequence, hf_index, ett_z3950_OmittedAttributeInterpretation);
6894
6895 return offset;
6896 }
6897
6898
6899 static const ber_sequence_t AttributeValue_sequence[] = {
6900 { &hf_z3950_attributeValue_value, BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_z3950_StringOrNumeric },
6901 { &hf_z3950_description , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
6902 { &hf_z3950_subAttributes , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_StringOrNumeric },
6903 { &hf_z3950_superAttributes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_StringOrNumeric },
6904 { &hf_z3950_partialSupport, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
6905 { NULL, 0, 0, 0, NULL }
6906 };
6907
6908 static int
dissect_z3950_AttributeValue(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6909 dissect_z3950_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6910 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6911 AttributeValue_sequence, hf_index, ett_z3950_AttributeValue);
6912
6913 return offset;
6914 }
6915
6916
6917 static const ber_sequence_t SEQUENCE_OF_AttributeValue_sequence_of[1] = {
6918 { &hf_z3950_attributeTypeDetails_attributeValues_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeValue },
6919 };
6920
6921 static int
dissect_z3950_SEQUENCE_OF_AttributeValue(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6922 dissect_z3950_SEQUENCE_OF_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6923 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6924 SEQUENCE_OF_AttributeValue_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_AttributeValue);
6925
6926 return offset;
6927 }
6928
6929
6930 static const ber_sequence_t AttributeTypeDetails_sequence[] = {
6931 { &hf_z3950_attributeType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
6932 { &hf_z3950_defaultIfOmitted, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OmittedAttributeInterpretation },
6933 { &hf_z3950_attributeTypeDetails_attributeValues, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_AttributeValue },
6934 { NULL, 0, 0, 0, NULL }
6935 };
6936
6937 static int
dissect_z3950_AttributeTypeDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6938 dissect_z3950_AttributeTypeDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6939 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6940 AttributeTypeDetails_sequence, hf_index, ett_z3950_AttributeTypeDetails);
6941
6942 return offset;
6943 }
6944
6945
6946 static const ber_sequence_t SEQUENCE_OF_AttributeTypeDetails_sequence_of[1] = {
6947 { &hf_z3950_attributesByType_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeTypeDetails },
6948 };
6949
6950 static int
dissect_z3950_SEQUENCE_OF_AttributeTypeDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6951 dissect_z3950_SEQUENCE_OF_AttributeTypeDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6952 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6953 SEQUENCE_OF_AttributeTypeDetails_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_AttributeTypeDetails);
6954
6955 return offset;
6956 }
6957
6958
6959 static const ber_sequence_t AttributeSetDetails_sequence[] = {
6960 { &hf_z3950_attributeSet , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_AttributeSetId },
6961 { &hf_z3950_attributesByType, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_AttributeTypeDetails },
6962 { NULL, 0, 0, 0, NULL }
6963 };
6964
6965 static int
dissect_z3950_AttributeSetDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6966 dissect_z3950_AttributeSetDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6967 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6968 AttributeSetDetails_sequence, hf_index, ett_z3950_AttributeSetDetails);
6969
6970 return offset;
6971 }
6972
6973
6974 static const ber_sequence_t SEQUENCE_OF_AttributeSetDetails_sequence_of[1] = {
6975 { &hf_z3950_attributesBySet_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeSetDetails },
6976 };
6977
6978 static int
dissect_z3950_SEQUENCE_OF_AttributeSetDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)6979 dissect_z3950_SEQUENCE_OF_AttributeSetDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6980 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
6981 SEQUENCE_OF_AttributeSetDetails_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_AttributeSetDetails);
6982
6983 return offset;
6984 }
6985
6986
6987 static const value_string z3950_T_attributeOccurrence_attributeValues_vals[] = {
6988 { 3, "any-or-none" },
6989 { 4, "specific" },
6990 { 0, NULL }
6991 };
6992
6993 static const ber_choice_t T_attributeOccurrence_attributeValues_choice[] = {
6994 { 3, &hf_z3950_any_or_none , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
6995 { 4, &hf_z3950_specific , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_StringOrNumeric },
6996 { 0, NULL, 0, 0, 0, NULL }
6997 };
6998
6999 static int
dissect_z3950_T_attributeOccurrence_attributeValues(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7000 dissect_z3950_T_attributeOccurrence_attributeValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7001 offset = dissect_ber_choice(actx, tree, tvb, offset,
7002 T_attributeOccurrence_attributeValues_choice, hf_index, ett_z3950_T_attributeOccurrence_attributeValues,
7003 NULL);
7004
7005 return offset;
7006 }
7007
7008
7009 static const ber_sequence_t AttributeOccurrence_sequence[] = {
7010 { &hf_z3950_attributeSet , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_AttributeSetId },
7011 { &hf_z3950_attributeType , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7012 { &hf_z3950_mustBeSupplied, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
7013 { &hf_z3950_attributeOccurrence_attributeValues, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_T_attributeOccurrence_attributeValues },
7014 { NULL, 0, 0, 0, NULL }
7015 };
7016
7017 static int
dissect_z3950_AttributeOccurrence(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7018 dissect_z3950_AttributeOccurrence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7019 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7020 AttributeOccurrence_sequence, hf_index, ett_z3950_AttributeOccurrence);
7021
7022 return offset;
7023 }
7024
7025
7026 static const ber_sequence_t AttributeCombination_sequence_of[1] = {
7027 { &hf_z3950_AttributeCombination_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeOccurrence },
7028 };
7029
7030 static int
dissect_z3950_AttributeCombination(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7031 dissect_z3950_AttributeCombination(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7032 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7033 AttributeCombination_sequence_of, hf_index, ett_z3950_AttributeCombination);
7034
7035 return offset;
7036 }
7037
7038
7039 static const ber_sequence_t SEQUENCE_OF_AttributeCombination_sequence_of[1] = {
7040 { &hf_z3950_legalCombinations_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_AttributeCombination },
7041 };
7042
7043 static int
dissect_z3950_SEQUENCE_OF_AttributeCombination(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7044 dissect_z3950_SEQUENCE_OF_AttributeCombination(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7045 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7046 SEQUENCE_OF_AttributeCombination_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_AttributeCombination);
7047
7048 return offset;
7049 }
7050
7051
7052 static const ber_sequence_t AttributeCombinations_sequence[] = {
7053 { &hf_z3950_defaultAttributeSet, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_AttributeSetId },
7054 { &hf_z3950_legalCombinations, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_AttributeCombination },
7055 { NULL, 0, 0, 0, NULL }
7056 };
7057
7058 static int
dissect_z3950_AttributeCombinations(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7059 dissect_z3950_AttributeCombinations(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7060 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7061 AttributeCombinations_sequence, hf_index, ett_z3950_AttributeCombinations);
7062
7063 return offset;
7064 }
7065
7066
7067 static const ber_sequence_t AttributeDetails_sequence[] = {
7068 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
7069 { &hf_z3950_databaseName , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_DatabaseName },
7070 { &hf_z3950_attributesBySet, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_AttributeSetDetails },
7071 { &hf_z3950_attributeCombinations, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_AttributeCombinations },
7072 { NULL, 0, 0, 0, NULL }
7073 };
7074
7075 static int
dissect_z3950_AttributeDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7076 dissect_z3950_AttributeDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7077 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7078 AttributeDetails_sequence, hf_index, ett_z3950_AttributeDetails);
7079
7080 return offset;
7081 }
7082
7083
7084 static const ber_sequence_t T_scanInfo_sequence[] = {
7085 { &hf_z3950_maxStepSize , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7086 { &hf_z3950_collatingSequence, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7087 { &hf_z3950_increasing , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
7088 { NULL, 0, 0, 0, NULL }
7089 };
7090
7091 static int
dissect_z3950_T_scanInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7092 dissect_z3950_T_scanInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7093 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7094 T_scanInfo_sequence, hf_index, ett_z3950_T_scanInfo);
7095
7096 return offset;
7097 }
7098
7099
7100 static const ber_sequence_t SEQUENCE_OF_Term_sequence_of[1] = {
7101 { &hf_z3950_sampleTerms_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_Term },
7102 };
7103
7104 static int
dissect_z3950_SEQUENCE_OF_Term(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7105 dissect_z3950_SEQUENCE_OF_Term(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7106 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7107 SEQUENCE_OF_Term_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_Term);
7108
7109 return offset;
7110 }
7111
7112
7113 static const ber_sequence_t TermListDetails_sequence[] = {
7114 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
7115 { &hf_z3950_termListName , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7116 { &hf_z3950_description , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7117 { &hf_z3950_termListDetails_attributes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_AttributeCombinations },
7118 { &hf_z3950_scanInfo , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_scanInfo },
7119 { &hf_z3950_estNumberTerms, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7120 { &hf_z3950_sampleTerms , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_Term },
7121 { NULL, 0, 0, 0, NULL }
7122 };
7123
7124 static int
dissect_z3950_TermListDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7125 dissect_z3950_TermListDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7126 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7127 TermListDetails_sequence, hf_index, ett_z3950_TermListDetails);
7128
7129 return offset;
7130 }
7131
7132
7133 static const ber_sequence_t RecordTag_sequence[] = {
7134 { &hf_z3950_qualifier , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_StringOrNumeric },
7135 { &hf_z3950_tagValue , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_z3950_StringOrNumeric },
7136 { NULL, 0, 0, 0, NULL }
7137 };
7138
7139 static int
dissect_z3950_RecordTag(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7140 dissect_z3950_RecordTag(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7141 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7142 RecordTag_sequence, hf_index, ett_z3950_RecordTag);
7143
7144 return offset;
7145 }
7146
7147
7148 static const ber_sequence_t SEQUENCE_OF_Path_sequence_of[1] = {
7149 { &hf_z3950_schemaTags_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_Path },
7150 };
7151
7152 static int
dissect_z3950_SEQUENCE_OF_Path(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7153 dissect_z3950_SEQUENCE_OF_Path(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7154 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7155 SEQUENCE_OF_Path_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_Path);
7156
7157 return offset;
7158 }
7159
7160
7161 static const ber_sequence_t PerElementDetails_sequence[] = {
7162 { &hf_z3950_name , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7163 { &hf_z3950_recordTag , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_RecordTag },
7164 { &hf_z3950_schemaTags , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_Path },
7165 { &hf_z3950_maxSize , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7166 { &hf_z3950_minSize , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7167 { &hf_z3950_avgSize , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7168 { &hf_z3950_fixedSize , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7169 { &hf_z3950_repeatable , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
7170 { &hf_z3950_required , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
7171 { &hf_z3950_description , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7172 { &hf_z3950_contents , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7173 { &hf_z3950_billingInfo , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7174 { &hf_z3950_restrictions , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7175 { &hf_z3950_alternateNames, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_InternationalString },
7176 { &hf_z3950_genericNames , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_InternationalString },
7177 { &hf_z3950_searchAccess , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_AttributeCombinations },
7178 { NULL, 0, 0, 0, NULL }
7179 };
7180
7181 static int
dissect_z3950_PerElementDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7182 dissect_z3950_PerElementDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7183 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7184 PerElementDetails_sequence, hf_index, ett_z3950_PerElementDetails);
7185
7186 return offset;
7187 }
7188
7189
7190 static const ber_sequence_t SEQUENCE_OF_PerElementDetails_sequence_of[1] = {
7191 { &hf_z3950_detailsPerElement_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_PerElementDetails },
7192 };
7193
7194 static int
dissect_z3950_SEQUENCE_OF_PerElementDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7195 dissect_z3950_SEQUENCE_OF_PerElementDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7196 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7197 SEQUENCE_OF_PerElementDetails_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_PerElementDetails);
7198
7199 return offset;
7200 }
7201
7202
7203 static const ber_sequence_t ElementSetDetails_sequence[] = {
7204 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
7205 { &hf_z3950_databaseName , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_DatabaseName },
7206 { &hf_z3950_elementSetDetails_elementSetName, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_ElementSetName },
7207 { &hf_z3950_recordSyntax , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
7208 { &hf_z3950_schema , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
7209 { &hf_z3950_description , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7210 { &hf_z3950_detailsPerElement, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_PerElementDetails },
7211 { NULL, 0, 0, 0, NULL }
7212 };
7213
7214 static int
dissect_z3950_ElementSetDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7215 dissect_z3950_ElementSetDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7216 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7217 ElementSetDetails_sequence, hf_index, ett_z3950_ElementSetDetails);
7218
7219 return offset;
7220 }
7221
7222
7223 static const ber_sequence_t RetrievalRecordDetails_sequence[] = {
7224 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
7225 { &hf_z3950_databaseName , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_DatabaseName },
7226 { &hf_z3950_schema , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
7227 { &hf_z3950_recordSyntax , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
7228 { &hf_z3950_description , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7229 { &hf_z3950_detailsPerElement, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_PerElementDetails },
7230 { NULL, 0, 0, 0, NULL }
7231 };
7232
7233 static int
dissect_z3950_RetrievalRecordDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7234 dissect_z3950_RetrievalRecordDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7235 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7236 RetrievalRecordDetails_sequence, hf_index, ett_z3950_RetrievalRecordDetails);
7237
7238 return offset;
7239 }
7240
7241
7242 static const value_string z3950_T_sortType_vals[] = {
7243 { 0, "character" },
7244 { 1, "numeric" },
7245 { 2, "structured" },
7246 { 0, NULL }
7247 };
7248
7249 static const ber_choice_t T_sortType_choice[] = {
7250 { 0, &hf_z3950_character , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
7251 { 1, &hf_z3950_sortKeyDetails_sortType_numeric, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
7252 { 2, &hf_z3950_sortKeyDetails_sortType_structured, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7253 { 0, NULL, 0, 0, 0, NULL }
7254 };
7255
7256 static int
dissect_z3950_T_sortType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7257 dissect_z3950_T_sortType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7258 offset = dissect_ber_choice(actx, tree, tvb, offset,
7259 T_sortType_choice, hf_index, ett_z3950_T_sortType,
7260 NULL);
7261
7262 return offset;
7263 }
7264
7265
7266 static const value_string z3950_T_sortKeyDetails_caseSensitivity_vals[] = {
7267 { 0, "always" },
7268 { 1, "never" },
7269 { 2, "default-yes" },
7270 { 3, "default-no" },
7271 { 0, NULL }
7272 };
7273
7274
7275 static int
dissect_z3950_T_sortKeyDetails_caseSensitivity(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7276 dissect_z3950_T_sortKeyDetails_caseSensitivity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7277 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7278 NULL);
7279
7280 return offset;
7281 }
7282
7283
7284 static const ber_sequence_t SortKeyDetails_sequence[] = {
7285 { &hf_z3950_description , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7286 { &hf_z3950_elementSpecifications, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_Specification },
7287 { &hf_z3950_attributeSpecifications, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_AttributeCombinations },
7288 { &hf_z3950_sortType , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_z3950_T_sortType },
7289 { &hf_z3950_sortKeyDetails_caseSensitivity, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_sortKeyDetails_caseSensitivity },
7290 { NULL, 0, 0, 0, NULL }
7291 };
7292
7293 static int
dissect_z3950_SortKeyDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7294 dissect_z3950_SortKeyDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7295 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7296 SortKeyDetails_sequence, hf_index, ett_z3950_SortKeyDetails);
7297
7298 return offset;
7299 }
7300
7301
7302 static const ber_sequence_t SEQUENCE_OF_SortKeyDetails_sequence_of[1] = {
7303 { &hf_z3950_sortKeys_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_SortKeyDetails },
7304 };
7305
7306 static int
dissect_z3950_SEQUENCE_OF_SortKeyDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7307 dissect_z3950_SEQUENCE_OF_SortKeyDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7308 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7309 SEQUENCE_OF_SortKeyDetails_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_SortKeyDetails);
7310
7311 return offset;
7312 }
7313
7314
7315 static const ber_sequence_t SortDetails_sequence[] = {
7316 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
7317 { &hf_z3950_databaseName , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_DatabaseName },
7318 { &hf_z3950_sortKeys , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_SortKeyDetails },
7319 { NULL, 0, 0, 0, NULL }
7320 };
7321
7322 static int
dissect_z3950_SortDetails(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7323 dissect_z3950_SortDetails(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7324 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7325 SortDetails_sequence, hf_index, ett_z3950_SortDetails);
7326
7327 return offset;
7328 }
7329
7330
7331 static const value_string z3950_T_processingContext_vals[] = {
7332 { 0, "access" },
7333 { 1, "search" },
7334 { 2, "retrieval" },
7335 { 3, "record-presentation" },
7336 { 4, "record-handling" },
7337 { 0, NULL }
7338 };
7339
7340
7341 static int
dissect_z3950_T_processingContext(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7342 dissect_z3950_T_processingContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7343 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7344 NULL);
7345
7346 return offset;
7347 }
7348
7349
7350 static const ber_sequence_t ProcessingInformation_sequence[] = {
7351 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
7352 { &hf_z3950_databaseName , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_DatabaseName },
7353 { &hf_z3950_processingContext, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_T_processingContext },
7354 { &hf_z3950_name , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7355 { &hf_z3950_oid , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
7356 { &hf_z3950_description , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7357 { &hf_z3950_instructions , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_EXTERNAL },
7358 { NULL, 0, 0, 0, NULL }
7359 };
7360
7361 static int
dissect_z3950_ProcessingInformation(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7362 dissect_z3950_ProcessingInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7363 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7364 ProcessingInformation_sequence, hf_index, ett_z3950_ProcessingInformation);
7365
7366 return offset;
7367 }
7368
7369
7370 static const value_string z3950_ValueDescription_vals[] = {
7371 { 0, "integer" },
7372 { 1, "string" },
7373 { 2, "octets" },
7374 { 3, "oid" },
7375 { 4, "unit" },
7376 { 5, "valueAndUnit" },
7377 { 0, NULL }
7378 };
7379
7380 static const ber_choice_t ValueDescription_choice[] = {
7381 { 0, &hf_z3950_integer , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_z3950_INTEGER },
7382 { 1, &hf_z3950_string , BER_CLASS_UNI, BER_UNI_TAG_GeneralString, BER_FLAGS_NOOWNTAG, dissect_z3950_InternationalString },
7383 { 2, &hf_z3950_octets , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_z3950_OCTET_STRING },
7384 { 3, &hf_z3950_oid , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_OBJECT_IDENTIFIER },
7385 { 4, &hf_z3950_valueDescription_unit, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_Unit },
7386 { 5, &hf_z3950_valueAndUnit , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_IntUnit },
7387 { 0, NULL, 0, 0, 0, NULL }
7388 };
7389
7390 static int
dissect_z3950_ValueDescription(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7391 dissect_z3950_ValueDescription(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7392 offset = dissect_ber_choice(actx, tree, tvb, offset,
7393 ValueDescription_choice, hf_index, ett_z3950_ValueDescription,
7394 NULL);
7395
7396 return offset;
7397 }
7398
7399
7400 static const ber_sequence_t ValueRange_sequence[] = {
7401 { &hf_z3950_lower , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_ValueDescription },
7402 { &hf_z3950_upper , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_ValueDescription },
7403 { NULL, 0, 0, 0, NULL }
7404 };
7405
7406 static int
dissect_z3950_ValueRange(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7407 dissect_z3950_ValueRange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7408 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7409 ValueRange_sequence, hf_index, ett_z3950_ValueRange);
7410
7411 return offset;
7412 }
7413
7414
7415 static const ber_sequence_t SEQUENCE_OF_ValueDescription_sequence_of[1] = {
7416 { &hf_z3950_enumerated_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_ValueDescription },
7417 };
7418
7419 static int
dissect_z3950_SEQUENCE_OF_ValueDescription(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7420 dissect_z3950_SEQUENCE_OF_ValueDescription(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7421 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7422 SEQUENCE_OF_ValueDescription_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_ValueDescription);
7423
7424 return offset;
7425 }
7426
7427
7428 static const value_string z3950_ValueSet_vals[] = {
7429 { 0, "range" },
7430 { 1, "enumerated" },
7431 { 0, NULL }
7432 };
7433
7434 static const ber_choice_t ValueSet_choice[] = {
7435 { 0, &hf_z3950_range , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_ValueRange },
7436 { 1, &hf_z3950_enumerated , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_ValueDescription },
7437 { 0, NULL, 0, 0, 0, NULL }
7438 };
7439
7440 static int
dissect_z3950_ValueSet(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7441 dissect_z3950_ValueSet(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7442 offset = dissect_ber_choice(actx, tree, tvb, offset,
7443 ValueSet_choice, hf_index, ett_z3950_ValueSet,
7444 NULL);
7445
7446 return offset;
7447 }
7448
7449
7450 static const ber_sequence_t VariantValue_sequence[] = {
7451 { &hf_z3950_dataType , BER_CLASS_CON, 0, 0, dissect_z3950_PrimitiveDataType },
7452 { &hf_z3950_values , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_ValueSet },
7453 { NULL, 0, 0, 0, NULL }
7454 };
7455
7456 static int
dissect_z3950_VariantValue(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7457 dissect_z3950_VariantValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7458 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7459 VariantValue_sequence, hf_index, ett_z3950_VariantValue);
7460
7461 return offset;
7462 }
7463
7464
7465 static const ber_sequence_t VariantType_sequence[] = {
7466 { &hf_z3950_name , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7467 { &hf_z3950_description , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7468 { &hf_z3950_variantType , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7469 { &hf_z3950_variantValue , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_VariantValue },
7470 { NULL, 0, 0, 0, NULL }
7471 };
7472
7473 static int
dissect_z3950_VariantType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7474 dissect_z3950_VariantType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7475 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7476 VariantType_sequence, hf_index, ett_z3950_VariantType);
7477
7478 return offset;
7479 }
7480
7481
7482 static const ber_sequence_t SEQUENCE_OF_VariantType_sequence_of[1] = {
7483 { &hf_z3950_variantTypes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_VariantType },
7484 };
7485
7486 static int
dissect_z3950_SEQUENCE_OF_VariantType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7487 dissect_z3950_SEQUENCE_OF_VariantType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7488 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7489 SEQUENCE_OF_VariantType_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_VariantType);
7490
7491 return offset;
7492 }
7493
7494
7495 static const ber_sequence_t VariantClass_sequence[] = {
7496 { &hf_z3950_name , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7497 { &hf_z3950_description , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7498 { &hf_z3950_variantClass , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7499 { &hf_z3950_variantTypes , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_VariantType },
7500 { NULL, 0, 0, 0, NULL }
7501 };
7502
7503 static int
dissect_z3950_VariantClass(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7504 dissect_z3950_VariantClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7505 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7506 VariantClass_sequence, hf_index, ett_z3950_VariantClass);
7507
7508 return offset;
7509 }
7510
7511
7512 static const ber_sequence_t SEQUENCE_OF_VariantClass_sequence_of[1] = {
7513 { &hf_z3950_variantSetInfo_variants_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_VariantClass },
7514 };
7515
7516 static int
dissect_z3950_SEQUENCE_OF_VariantClass(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7517 dissect_z3950_SEQUENCE_OF_VariantClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7518 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7519 SEQUENCE_OF_VariantClass_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_VariantClass);
7520
7521 return offset;
7522 }
7523
7524
7525 static const ber_sequence_t VariantSetInfo_sequence[] = {
7526 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
7527 { &hf_z3950_variantSet , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
7528 { &hf_z3950_name , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7529 { &hf_z3950_variantSetInfo_variants, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_VariantClass },
7530 { NULL, 0, 0, 0, NULL }
7531 };
7532
7533 static int
dissect_z3950_VariantSetInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7534 dissect_z3950_VariantSetInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7535 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7536 VariantSetInfo_sequence, hf_index, ett_z3950_VariantSetInfo);
7537
7538 return offset;
7539 }
7540
7541
7542 static const ber_sequence_t Units_sequence[] = {
7543 { &hf_z3950_name , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7544 { &hf_z3950_description , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7545 { &hf_z3950_unit , BER_CLASS_CON, 2, BER_FLAGS_NOTCHKTAG, dissect_z3950_StringOrNumeric },
7546 { NULL, 0, 0, 0, NULL }
7547 };
7548
7549 static int
dissect_z3950_Units(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7550 dissect_z3950_Units(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7551 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7552 Units_sequence, hf_index, ett_z3950_Units);
7553
7554 return offset;
7555 }
7556
7557
7558 static const ber_sequence_t SEQUENCE_OF_Units_sequence_of[1] = {
7559 { &hf_z3950_unitType_units_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_Units },
7560 };
7561
7562 static int
dissect_z3950_SEQUENCE_OF_Units(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7563 dissect_z3950_SEQUENCE_OF_Units(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7564 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7565 SEQUENCE_OF_Units_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_Units);
7566
7567 return offset;
7568 }
7569
7570
7571 static const ber_sequence_t UnitType_sequence[] = {
7572 { &hf_z3950_name , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7573 { &hf_z3950_description , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7574 { &hf_z3950_unitType , BER_CLASS_CON, 2, BER_FLAGS_NOTCHKTAG, dissect_z3950_StringOrNumeric },
7575 { &hf_z3950_unitType_units, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_Units },
7576 { NULL, 0, 0, 0, NULL }
7577 };
7578
7579 static int
dissect_z3950_UnitType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7580 dissect_z3950_UnitType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7581 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7582 UnitType_sequence, hf_index, ett_z3950_UnitType);
7583
7584 return offset;
7585 }
7586
7587
7588 static const ber_sequence_t SEQUENCE_OF_UnitType_sequence_of[1] = {
7589 { &hf_z3950_unitInfo_units_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_UnitType },
7590 };
7591
7592 static int
dissect_z3950_SEQUENCE_OF_UnitType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7593 dissect_z3950_SEQUENCE_OF_UnitType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7594 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7595 SEQUENCE_OF_UnitType_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_UnitType);
7596
7597 return offset;
7598 }
7599
7600
7601 static const ber_sequence_t UnitInfo_sequence[] = {
7602 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
7603 { &hf_z3950_unitSystem , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7604 { &hf_z3950_description , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7605 { &hf_z3950_unitInfo_units, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_UnitType },
7606 { NULL, 0, 0, 0, NULL }
7607 };
7608
7609 static int
dissect_z3950_UnitInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7610 dissect_z3950_UnitInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7611 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7612 UnitInfo_sequence, hf_index, ett_z3950_UnitInfo);
7613
7614 return offset;
7615 }
7616
7617
7618 static const ber_sequence_t CategoryInfo_sequence[] = {
7619 { &hf_z3950_categoryInfo_category, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7620 { &hf_z3950_originalCategory, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7621 { &hf_z3950_description , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_HumanString },
7622 { &hf_z3950_asn1Module , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7623 { NULL, 0, 0, 0, NULL }
7624 };
7625
7626 static int
dissect_z3950_CategoryInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7627 dissect_z3950_CategoryInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7628 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7629 CategoryInfo_sequence, hf_index, ett_z3950_CategoryInfo);
7630
7631 return offset;
7632 }
7633
7634
7635 static const ber_sequence_t SEQUENCE_OF_CategoryInfo_sequence_of[1] = {
7636 { &hf_z3950_categories_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_CategoryInfo },
7637 };
7638
7639 static int
dissect_z3950_SEQUENCE_OF_CategoryInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7640 dissect_z3950_SEQUENCE_OF_CategoryInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7641 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7642 SEQUENCE_OF_CategoryInfo_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_CategoryInfo);
7643
7644 return offset;
7645 }
7646
7647
7648 static const ber_sequence_t CategoryList_sequence[] = {
7649 { &hf_z3950_commonInfo , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_CommonInfo },
7650 { &hf_z3950_categories , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_CategoryInfo },
7651 { NULL, 0, 0, 0, NULL }
7652 };
7653
7654 static int
dissect_z3950_CategoryList(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7655 dissect_z3950_CategoryList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7656 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7657 CategoryList_sequence, hf_index, ett_z3950_CategoryList);
7658
7659 return offset;
7660 }
7661
7662
7663 static const value_string z3950_Explain_Record_vals[] = {
7664 { 0, "targetInfo" },
7665 { 1, "databaseInfo" },
7666 { 2, "schemaInfo" },
7667 { 3, "tagSetInfo" },
7668 { 4, "recordSyntaxInfo" },
7669 { 5, "attributeSetInfo" },
7670 { 6, "termListInfo" },
7671 { 7, "extendedServicesInfo" },
7672 { 8, "attributeDetails" },
7673 { 9, "termListDetails" },
7674 { 10, "elementSetDetails" },
7675 { 11, "retrievalRecordDetails" },
7676 { 12, "sortDetails" },
7677 { 13, "processing" },
7678 { 14, "variants" },
7679 { 15, "units" },
7680 { 100, "categoryList" },
7681 { 0, NULL }
7682 };
7683
7684 static const ber_choice_t Explain_Record_choice[] = {
7685 { 0, &hf_z3950_targetInfo , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_z3950_TargetInfo },
7686 { 1, &hf_z3950_databaseInfo , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_DatabaseInfo },
7687 { 2, &hf_z3950_schemaInfo , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_SchemaInfo },
7688 { 3, &hf_z3950_tagSetInfo , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_TagSetInfo },
7689 { 4, &hf_z3950_recordSyntaxInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_RecordSyntaxInfo },
7690 { 5, &hf_z3950_attributeSetInfo, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_AttributeSetInfo },
7691 { 6, &hf_z3950_termListInfo , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_z3950_TermListInfo },
7692 { 7, &hf_z3950_extendedServicesInfo, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_z3950_ExtendedServicesInfo },
7693 { 8, &hf_z3950_attributeDetails, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_z3950_AttributeDetails },
7694 { 9, &hf_z3950_termListDetails, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_z3950_TermListDetails },
7695 { 10, &hf_z3950_elementSetDetails, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_z3950_ElementSetDetails },
7696 { 11, &hf_z3950_retrievalRecordDetails, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_z3950_RetrievalRecordDetails },
7697 { 12, &hf_z3950_sortDetails , BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_z3950_SortDetails },
7698 { 13, &hf_z3950_processing , BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_z3950_ProcessingInformation },
7699 { 14, &hf_z3950_variants , BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_z3950_VariantSetInfo },
7700 { 15, &hf_z3950_units , BER_CLASS_CON, 15, BER_FLAGS_IMPLTAG, dissect_z3950_UnitInfo },
7701 { 100, &hf_z3950_categoryList , BER_CLASS_CON, 100, BER_FLAGS_IMPLTAG, dissect_z3950_CategoryList },
7702 { 0, NULL, 0, 0, 0, NULL }
7703 };
7704
7705 static int
dissect_z3950_Explain_Record(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7706 dissect_z3950_Explain_Record(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7707 offset = dissect_ber_choice(actx, tree, tvb, offset,
7708 Explain_Record_choice, hf_index, ett_z3950_Explain_Record,
7709 NULL);
7710
7711 return offset;
7712 }
7713
7714
7715 static const ber_sequence_t FormatSpec_sequence[] = {
7716 { &hf_z3950_formatSpec_type, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7717 { &hf_z3950_size , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7718 { &hf_z3950_bestPosn , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7719 { NULL, 0, 0, 0, NULL }
7720 };
7721
7722 static int
dissect_z3950_FormatSpec(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7723 dissect_z3950_FormatSpec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7724 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7725 FormatSpec_sequence, hf_index, ett_z3950_FormatSpec);
7726
7727 return offset;
7728 }
7729
7730
7731 static const ber_sequence_t SEQUENCE_OF_FormatSpec_sequence_of[1] = {
7732 { &hf_z3950_briefBib_format_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_FormatSpec },
7733 };
7734
7735 static int
dissect_z3950_SEQUENCE_OF_FormatSpec(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7736 dissect_z3950_SEQUENCE_OF_FormatSpec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7737 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7738 SEQUENCE_OF_FormatSpec_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_FormatSpec);
7739
7740 return offset;
7741 }
7742
7743
7744 static const ber_sequence_t BriefBib_sequence[] = {
7745 { &hf_z3950_briefBib_title, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7746 { &hf_z3950_author , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7747 { &hf_z3950_callNumber , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7748 { &hf_z3950_recordType , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7749 { &hf_z3950_bibliographicLevel, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7750 { &hf_z3950_briefBib_format, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_FormatSpec },
7751 { &hf_z3950_publicationPlace, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7752 { &hf_z3950_publicationDate, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7753 { &hf_z3950_targetSystemKey, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7754 { &hf_z3950_satisfyingElement, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7755 { &hf_z3950_rank , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7756 { &hf_z3950_documentId , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7757 { &hf_z3950_abstract , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7758 { &hf_z3950_otherInfo , BER_CLASS_CON, 201, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_z3950_OtherInformation },
7759 { NULL, 0, 0, 0, NULL }
7760 };
7761
7762 static int
dissect_z3950_BriefBib(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7763 dissect_z3950_BriefBib(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7764 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7765 BriefBib_sequence, hf_index, ett_z3950_BriefBib);
7766
7767 return offset;
7768 }
7769
7770
7771 static const ber_sequence_t SEQUENCE_OF_TaggedElement_sequence_of[1] = {
7772 { &hf_z3950_subtree_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_TaggedElement },
7773 };
7774
7775 static int
dissect_z3950_SEQUENCE_OF_TaggedElement(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7776 dissect_z3950_SEQUENCE_OF_TaggedElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7777 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7778 SEQUENCE_OF_TaggedElement_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_TaggedElement);
7779
7780 return offset;
7781 }
7782
7783
7784 static const value_string z3950_ElementData_vals[] = {
7785 { 0, "octets" },
7786 { 1, "numeric" },
7787 { 2, "date" },
7788 { 3, "ext" },
7789 { 4, "string" },
7790 { 5, "trueOrFalse" },
7791 { 6, "oid" },
7792 { 7, "intUnit" },
7793 { 8, "elementNotThere" },
7794 { 9, "elementEmpty" },
7795 { 10, "noDataRequested" },
7796 { 11, "diagnostic" },
7797 { 12, "subtree" },
7798 { 0, NULL }
7799 };
7800
7801 static const ber_choice_t ElementData_choice[] = {
7802 { 0, &hf_z3950_octets , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_z3950_OCTET_STRING },
7803 { 1, &hf_z3950_numeric , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_z3950_INTEGER },
7804 { 2, &hf_z3950_date , BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_z3950_GeneralizedTime },
7805 { 3, &hf_z3950_ext , BER_CLASS_UNI, BER_UNI_TAG_EXTERNAL, BER_FLAGS_NOOWNTAG, dissect_z3950_EXTERNAL },
7806 { 4, &hf_z3950_string , BER_CLASS_UNI, BER_UNI_TAG_GeneralString, BER_FLAGS_NOOWNTAG, dissect_z3950_InternationalString },
7807 { 5, &hf_z3950_trueOrFalse , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_NOOWNTAG, dissect_z3950_BOOLEAN },
7808 { 6, &hf_z3950_oid , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_OBJECT_IDENTIFIER },
7809 { 7, &hf_z3950_intUnit , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_IntUnit },
7810 { 8, &hf_z3950_elementNotThere, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
7811 { 9, &hf_z3950_elementEmpty , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
7812 { 10, &hf_z3950_noDataRequested, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
7813 { 11, &hf_z3950_elementData_diagnostic, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_EXTERNAL },
7814 { 12, &hf_z3950_subtree , BER_CLASS_CON, 6, 0, dissect_z3950_SEQUENCE_OF_TaggedElement },
7815 { 0, NULL, 0, 0, 0, NULL }
7816 };
7817
7818 static int
dissect_z3950_ElementData(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7819 dissect_z3950_ElementData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7820 offset = dissect_ber_choice(actx, tree, tvb, offset,
7821 ElementData_choice, hf_index, ett_z3950_ElementData,
7822 NULL);
7823
7824 return offset;
7825 }
7826
7827
7828 static const ber_sequence_t Order_sequence[] = {
7829 { &hf_z3950_ascending , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
7830 { &hf_z3950_order , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7831 { NULL, 0, 0, 0, NULL }
7832 };
7833
7834 static int
dissect_z3950_Order(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7835 dissect_z3950_Order(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7836 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7837 Order_sequence, hf_index, ett_z3950_Order);
7838
7839 return offset;
7840 }
7841
7842
7843 static const value_string z3950_T_usage_type_vals[] = {
7844 { 1, "redistributable" },
7845 { 2, "restricted" },
7846 { 3, "licensePointer" },
7847 { 0, NULL }
7848 };
7849
7850
7851 static int
dissect_z3950_T_usage_type(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7852 dissect_z3950_T_usage_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7853 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
7854 NULL);
7855
7856 return offset;
7857 }
7858
7859
7860 static const ber_sequence_t Usage_sequence[] = {
7861 { &hf_z3950_usage_type , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_T_usage_type },
7862 { &hf_z3950_restriction , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
7863 { NULL, 0, 0, 0, NULL }
7864 };
7865
7866 static int
dissect_z3950_Usage(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7867 dissect_z3950_Usage(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7868 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7869 Usage_sequence, hf_index, ett_z3950_Usage);
7870
7871 return offset;
7872 }
7873
7874
7875 static const ber_sequence_t HitVector_sequence[] = {
7876 { &hf_z3950_satisfier , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_z3950_Term },
7877 { &hf_z3950_offsetIntoElement, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_IntUnit },
7878 { &hf_z3950_length , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_IntUnit },
7879 { &hf_z3950_hitRank , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7880 { &hf_z3950_targetToken , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
7881 { NULL, 0, 0, 0, NULL }
7882 };
7883
7884 static int
dissect_z3950_HitVector(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7885 dissect_z3950_HitVector(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7886 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7887 HitVector_sequence, hf_index, ett_z3950_HitVector);
7888
7889 return offset;
7890 }
7891
7892
7893 static const ber_sequence_t SEQUENCE_OF_HitVector_sequence_of[1] = {
7894 { &hf_z3950_hits_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_HitVector },
7895 };
7896
7897 static int
dissect_z3950_SEQUENCE_OF_HitVector(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7898 dissect_z3950_SEQUENCE_OF_HitVector(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7899 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7900 SEQUENCE_OF_HitVector_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_HitVector);
7901
7902 return offset;
7903 }
7904
7905
7906 static const value_string z3950_T_variant_triples_item_value_vals[] = {
7907 { 0, "integer" },
7908 { 1, "string" },
7909 { 2, "octetString" },
7910 { 3, "oid" },
7911 { 4, "boolean" },
7912 { 5, "null" },
7913 { 6, "unit" },
7914 { 7, "valueAndUnit" },
7915 { 0, NULL }
7916 };
7917
7918 static const ber_choice_t T_variant_triples_item_value_choice[] = {
7919 { 0, &hf_z3950_integer , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_z3950_INTEGER },
7920 { 1, &hf_z3950_string , BER_CLASS_UNI, BER_UNI_TAG_GeneralString, BER_FLAGS_NOOWNTAG, dissect_z3950_InternationalString },
7921 { 2, &hf_z3950_octetString , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_z3950_OCTET_STRING },
7922 { 3, &hf_z3950_oid , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_z3950_OBJECT_IDENTIFIER },
7923 { 4, &hf_z3950_boolean , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_NOOWNTAG, dissect_z3950_BOOLEAN },
7924 { 5, &hf_z3950_null , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_z3950_NULL },
7925 { 6, &hf_z3950_variant_triples_item_value_unit, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_Unit },
7926 { 7, &hf_z3950_valueAndUnit , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_IntUnit },
7927 { 0, NULL, 0, 0, 0, NULL }
7928 };
7929
7930 static int
dissect_z3950_T_variant_triples_item_value(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7931 dissect_z3950_T_variant_triples_item_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7932 offset = dissect_ber_choice(actx, tree, tvb, offset,
7933 T_variant_triples_item_value_choice, hf_index, ett_z3950_T_variant_triples_item_value,
7934 NULL);
7935
7936 return offset;
7937 }
7938
7939
7940 static const ber_sequence_t T_triples_item_sequence[] = {
7941 { &hf_z3950_variantSetId , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
7942 { &hf_z3950_class , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7943 { &hf_z3950_type , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
7944 { &hf_z3950_variant_triples_item_value, BER_CLASS_CON, 3, 0, dissect_z3950_T_variant_triples_item_value },
7945 { NULL, 0, 0, 0, NULL }
7946 };
7947
7948 static int
dissect_z3950_T_triples_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7949 dissect_z3950_T_triples_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7950 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7951 T_triples_item_sequence, hf_index, ett_z3950_T_triples_item);
7952
7953 return offset;
7954 }
7955
7956
7957 static const ber_sequence_t T_triples_sequence_of[1] = {
7958 { &hf_z3950_triples_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_T_triples_item },
7959 };
7960
7961 static int
dissect_z3950_T_triples(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7962 dissect_z3950_T_triples(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7963 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7964 T_triples_sequence_of, hf_index, ett_z3950_T_triples);
7965
7966 return offset;
7967 }
7968
7969
7970 static const ber_sequence_t Variant_sequence[] = {
7971 { &hf_z3950_globalVariantSetId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
7972 { &hf_z3950_triples , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_T_triples },
7973 { NULL, 0, 0, 0, NULL }
7974 };
7975
7976 static int
dissect_z3950_Variant(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7977 dissect_z3950_Variant(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7978 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
7979 Variant_sequence, hf_index, ett_z3950_Variant);
7980
7981 return offset;
7982 }
7983
7984
7985 static const ber_sequence_t SEQUENCE_OF_Variant_sequence_of[1] = {
7986 { &hf_z3950_supportedVariants_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_Variant },
7987 };
7988
7989 static int
dissect_z3950_SEQUENCE_OF_Variant(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)7990 dissect_z3950_SEQUENCE_OF_Variant(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7991 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
7992 SEQUENCE_OF_Variant_sequence_of, hf_index, ett_z3950_SEQUENCE_OF_Variant);
7993
7994 return offset;
7995 }
7996
7997
7998 static const ber_sequence_t TagPath_item_sequence[] = {
7999 { &hf_z3950_tagType , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
8000 { &hf_z3950_tagValue , BER_CLASS_CON, 2, BER_FLAGS_NOTCHKTAG, dissect_z3950_StringOrNumeric },
8001 { &hf_z3950_tagOccurrence , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
8002 { NULL, 0, 0, 0, NULL }
8003 };
8004
8005 static int
dissect_z3950_TagPath_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8006 dissect_z3950_TagPath_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8007 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8008 TagPath_item_sequence, hf_index, ett_z3950_TagPath_item);
8009
8010 return offset;
8011 }
8012
8013
8014 static const ber_sequence_t TagPath_sequence_of[1] = {
8015 { &hf_z3950_TagPath_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_TagPath_item },
8016 };
8017
8018 static int
dissect_z3950_TagPath(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8019 dissect_z3950_TagPath(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8020 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8021 TagPath_sequence_of, hf_index, ett_z3950_TagPath);
8022
8023 return offset;
8024 }
8025
8026
8027 static const ber_sequence_t ElementMetaData_sequence[] = {
8028 { &hf_z3950_seriesOrder , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_Order },
8029 { &hf_z3950_usageRight , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_Usage },
8030 { &hf_z3950_hits , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_HitVector },
8031 { &hf_z3950_displayName , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8032 { &hf_z3950_supportedVariants, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_Variant },
8033 { &hf_z3950_message , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8034 { &hf_z3950_elementDescriptor, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
8035 { &hf_z3950_surrogateFor , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_TagPath },
8036 { &hf_z3950_surrogateElement, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_TagPath },
8037 { &hf_z3950_other , BER_CLASS_CON, 99, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_EXTERNAL },
8038 { NULL, 0, 0, 0, NULL }
8039 };
8040
8041 static int
dissect_z3950_ElementMetaData(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8042 dissect_z3950_ElementMetaData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8043 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8044 ElementMetaData_sequence, hf_index, ett_z3950_ElementMetaData);
8045
8046 return offset;
8047 }
8048
8049
8050 static const ber_sequence_t TaggedElement_sequence[] = {
8051 { &hf_z3950_tagType , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
8052 { &hf_z3950_tagValue , BER_CLASS_CON, 2, BER_FLAGS_NOTCHKTAG, dissect_z3950_StringOrNumeric },
8053 { &hf_z3950_tagOccurrence , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
8054 { &hf_z3950_taggedElement_content, BER_CLASS_CON, 4, BER_FLAGS_NOTCHKTAG, dissect_z3950_ElementData },
8055 { &hf_z3950_metaData , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_ElementMetaData },
8056 { &hf_z3950_appliedVariant, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_Variant },
8057 { NULL, 0, 0, 0, NULL }
8058 };
8059
8060 static int
dissect_z3950_TaggedElement(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8061 dissect_z3950_TaggedElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8062 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8063 TaggedElement_sequence, hf_index, ett_z3950_TaggedElement);
8064
8065 return offset;
8066 }
8067
8068
8069 static const ber_sequence_t GenericRecord_sequence_of[1] = {
8070 { &hf_z3950_GenericRecord_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_TaggedElement },
8071 };
8072
8073 static int
dissect_z3950_GenericRecord(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8074 dissect_z3950_GenericRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8075 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8076 GenericRecord_sequence_of, hf_index, ett_z3950_GenericRecord);
8077
8078 return offset;
8079 }
8080
8081
8082 static const value_string z3950_T_taskStatus_vals[] = {
8083 { 0, "pending" },
8084 { 1, "active" },
8085 { 2, "complete" },
8086 { 3, "aborted" },
8087 { 0, NULL }
8088 };
8089
8090
8091 static int
dissect_z3950_T_taskStatus(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8092 dissect_z3950_T_taskStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8093 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8094 NULL);
8095
8096 return offset;
8097 }
8098
8099
8100 static const ber_sequence_t TaskPackage_sequence[] = {
8101 { &hf_z3950_packageType , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_OBJECT_IDENTIFIER },
8102 { &hf_z3950_packageName , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8103 { &hf_z3950_userId , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8104 { &hf_z3950_retentionTime , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_IntUnit },
8105 { &hf_z3950_permissions , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_Permissions },
8106 { &hf_z3950_taskPackage_description, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8107 { &hf_z3950_targetReference, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
8108 { &hf_z3950_creationDateTime, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_GeneralizedTime },
8109 { &hf_z3950_taskStatus , BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_z3950_T_taskStatus },
8110 { &hf_z3950_packageDiagnostics, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_DiagRec },
8111 { &hf_z3950_taskSpecificParameters, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_z3950_EXTERNAL },
8112 { NULL, 0, 0, 0, NULL }
8113 };
8114
8115 static int
dissect_z3950_TaskPackage(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8116 dissect_z3950_TaskPackage(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8117 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8118 TaskPackage_sequence, hf_index, ett_z3950_TaskPackage);
8119
8120 return offset;
8121 }
8122
8123
8124 static const value_string z3950_T_promptId_enummeratedPrompt_type_vals[] = {
8125 { 0, "groupId" },
8126 { 1, "userId" },
8127 { 2, "password" },
8128 { 3, "newPassword" },
8129 { 4, "copyright" },
8130 { 5, "sessionId" },
8131 { 0, NULL }
8132 };
8133
8134
8135 static int
dissect_z3950_T_promptId_enummeratedPrompt_type(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8136 dissect_z3950_T_promptId_enummeratedPrompt_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8137 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8138 NULL);
8139
8140 return offset;
8141 }
8142
8143
8144 static const ber_sequence_t T_enummeratedPrompt_sequence[] = {
8145 { &hf_z3950_promptId_enummeratedPrompt_type, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_T_promptId_enummeratedPrompt_type },
8146 { &hf_z3950_suggestedString, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8147 { NULL, 0, 0, 0, NULL }
8148 };
8149
8150 static int
dissect_z3950_T_enummeratedPrompt(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8151 dissect_z3950_T_enummeratedPrompt(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8152 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8153 T_enummeratedPrompt_sequence, hf_index, ett_z3950_T_enummeratedPrompt);
8154
8155 return offset;
8156 }
8157
8158
8159 static const value_string z3950_PromptId_vals[] = {
8160 { 1, "enummeratedPrompt" },
8161 { 2, "nonEnumeratedPrompt" },
8162 { 0, NULL }
8163 };
8164
8165 static const ber_choice_t PromptId_choice[] = {
8166 { 1, &hf_z3950_enummeratedPrompt, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_T_enummeratedPrompt },
8167 { 2, &hf_z3950_nonEnumeratedPrompt, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8168 { 0, NULL, 0, 0, 0, NULL }
8169 };
8170
8171 static int
dissect_z3950_PromptId(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8172 dissect_z3950_PromptId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8173 offset = dissect_ber_choice(actx, tree, tvb, offset,
8174 PromptId_choice, hf_index, ett_z3950_PromptId,
8175 NULL);
8176
8177 return offset;
8178 }
8179
8180
8181 static const ber_sequence_t Encryption_sequence[] = {
8182 { &hf_z3950_cryptType , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
8183 { &hf_z3950_credential , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
8184 { &hf_z3950_data , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
8185 { NULL, 0, 0, 0, NULL }
8186 };
8187
8188 static int
dissect_z3950_Encryption(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8189 dissect_z3950_Encryption(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8190 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8191 Encryption_sequence, hf_index, ett_z3950_Encryption);
8192
8193 return offset;
8194 }
8195
8196
8197 static const value_string z3950_T_promptInfo_vals[] = {
8198 { 1, "character" },
8199 { 2, "encrypted" },
8200 { 0, NULL }
8201 };
8202
8203 static const ber_choice_t T_promptInfo_choice[] = {
8204 { 1, &hf_z3950_challenge_item_promptInfo_character, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8205 { 2, &hf_z3950_encrypted , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_Encryption },
8206 { 0, NULL, 0, 0, 0, NULL }
8207 };
8208
8209 static int
dissect_z3950_T_promptInfo(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8210 dissect_z3950_T_promptInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8211 offset = dissect_ber_choice(actx, tree, tvb, offset,
8212 T_promptInfo_choice, hf_index, ett_z3950_T_promptInfo,
8213 NULL);
8214
8215 return offset;
8216 }
8217
8218
8219 static const value_string z3950_T_challenge_item_dataType_vals[] = {
8220 { 1, "integer" },
8221 { 2, "date" },
8222 { 3, "float" },
8223 { 4, "alphaNumeric" },
8224 { 5, "url-urn" },
8225 { 6, "boolean" },
8226 { 0, NULL }
8227 };
8228
8229
8230 static int
dissect_z3950_T_challenge_item_dataType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8231 dissect_z3950_T_challenge_item_dataType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8232 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
8233 NULL);
8234
8235 return offset;
8236 }
8237
8238
8239 static const ber_sequence_t Challenge_item_sequence[] = {
8240 { &hf_z3950_promptId , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_z3950_PromptId },
8241 { &hf_z3950_defaultResponse, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8242 { &hf_z3950_promptInfo , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_z3950_T_promptInfo },
8243 { &hf_z3950_regExpr , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8244 { &hf_z3950_responseRequired, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
8245 { &hf_z3950_allowedValues , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_InternationalString },
8246 { &hf_z3950_shouldSave , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
8247 { &hf_z3950_challenge_item_dataType, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_T_challenge_item_dataType },
8248 { &hf_z3950_challenge_item_diagnostic, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_EXTERNAL },
8249 { NULL, 0, 0, 0, NULL }
8250 };
8251
8252 static int
dissect_z3950_Challenge_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8253 dissect_z3950_Challenge_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8254 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8255 Challenge_item_sequence, hf_index, ett_z3950_Challenge_item);
8256
8257 return offset;
8258 }
8259
8260
8261 static const ber_sequence_t Challenge_sequence_of[1] = {
8262 { &hf_z3950_Challenge_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_Challenge_item },
8263 };
8264
8265 static int
dissect_z3950_Challenge(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8266 dissect_z3950_Challenge(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8267 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8268 Challenge_sequence_of, hf_index, ett_z3950_Challenge);
8269
8270 return offset;
8271 }
8272
8273
8274 static const value_string z3950_T_promptResponse_vals[] = {
8275 { 1, "string" },
8276 { 2, "accept" },
8277 { 3, "acknowledge" },
8278 { 4, "diagnostic" },
8279 { 5, "encrypted" },
8280 { 0, NULL }
8281 };
8282
8283 static const ber_choice_t T_promptResponse_choice[] = {
8284 { 1, &hf_z3950_string , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8285 { 2, &hf_z3950_accept , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
8286 { 3, &hf_z3950_acknowledge , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
8287 { 4, &hf_z3950_diagnostic , BER_CLASS_CON, 4, 0, dissect_z3950_DiagRec },
8288 { 5, &hf_z3950_encrypted , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_z3950_Encryption },
8289 { 0, NULL, 0, 0, 0, NULL }
8290 };
8291
8292 static int
dissect_z3950_T_promptResponse(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8293 dissect_z3950_T_promptResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8294 offset = dissect_ber_choice(actx, tree, tvb, offset,
8295 T_promptResponse_choice, hf_index, ett_z3950_T_promptResponse,
8296 NULL);
8297
8298 return offset;
8299 }
8300
8301
8302 static const ber_sequence_t Response_item_sequence[] = {
8303 { &hf_z3950_promptId , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_z3950_PromptId },
8304 { &hf_z3950_promptResponse, BER_CLASS_CON, 2, 0, dissect_z3950_T_promptResponse },
8305 { NULL, 0, 0, 0, NULL }
8306 };
8307
8308 static int
dissect_z3950_Response_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8309 dissect_z3950_Response_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8310 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8311 Response_item_sequence, hf_index, ett_z3950_Response_item);
8312
8313 return offset;
8314 }
8315
8316
8317 static const ber_sequence_t Response_sequence_of[1] = {
8318 { &hf_z3950_Response_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_Response_item },
8319 };
8320
8321 static int
dissect_z3950_Response(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8322 dissect_z3950_Response(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8323 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8324 Response_sequence_of, hf_index, ett_z3950_Response);
8325
8326 return offset;
8327 }
8328
8329
8330 static const value_string z3950_PromptObject_vals[] = {
8331 { 1, "challenge" },
8332 { 2, "response" },
8333 { 0, NULL }
8334 };
8335
8336 static const ber_choice_t PromptObject_choice[] = {
8337 { 1, &hf_z3950_challenge , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_Challenge },
8338 { 2, &hf_z3950_response , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_Response },
8339 { 0, NULL, 0, 0, 0, NULL }
8340 };
8341
8342 static int
dissect_z3950_PromptObject(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8343 dissect_z3950_PromptObject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8344 offset = dissect_ber_choice(actx, tree, tvb, offset,
8345 PromptObject_choice, hf_index, ett_z3950_PromptObject,
8346 NULL);
8347
8348 return offset;
8349 }
8350
8351
8352 static const ber_sequence_t DRNType_sequence[] = {
8353 { &hf_z3950_dRNType_userId, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
8354 { &hf_z3950_salt , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
8355 { &hf_z3950_randomNumber , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
8356 { NULL, 0, 0, 0, NULL }
8357 };
8358
8359 static int
dissect_z3950_DRNType(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8360 dissect_z3950_DRNType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8361 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8362 DRNType_sequence, hf_index, ett_z3950_DRNType);
8363
8364 return offset;
8365 }
8366
8367
8368 static const value_string z3950_DES_RN_Object_vals[] = {
8369 { 1, "challenge" },
8370 { 2, "response" },
8371 { 0, NULL }
8372 };
8373
8374 static const ber_choice_t DES_RN_Object_choice[] = {
8375 { 1, &hf_z3950_dES_RN_Object_challenge, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_DRNType },
8376 { 2, &hf_z3950_rES_RN_Object_response, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_DRNType },
8377 { 0, NULL, 0, 0, 0, NULL }
8378 };
8379
8380 static int
dissect_z3950_DES_RN_Object(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8381 dissect_z3950_DES_RN_Object(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8382 offset = dissect_ber_choice(actx, tree, tvb, offset,
8383 DES_RN_Object_choice, hf_index, ett_z3950_DES_RN_Object,
8384 NULL);
8385
8386 return offset;
8387 }
8388
8389
8390 static const ber_sequence_t KRBRequest_sequence[] = {
8391 { &hf_z3950_service , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8392 { &hf_z3950_instance , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8393 { &hf_z3950_realm , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8394 { NULL, 0, 0, 0, NULL }
8395 };
8396
8397 static int
dissect_z3950_KRBRequest(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8398 dissect_z3950_KRBRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8399 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8400 KRBRequest_sequence, hf_index, ett_z3950_KRBRequest);
8401
8402 return offset;
8403 }
8404
8405
8406 static const ber_sequence_t KRBResponse_sequence[] = {
8407 { &hf_z3950_userid , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8408 { &hf_z3950_ticket , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_OCTET_STRING },
8409 { NULL, 0, 0, 0, NULL }
8410 };
8411
8412 static int
dissect_z3950_KRBResponse(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8413 dissect_z3950_KRBResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8414 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8415 KRBResponse_sequence, hf_index, ett_z3950_KRBResponse);
8416
8417 return offset;
8418 }
8419
8420
8421 static const value_string z3950_KRBObject_vals[] = {
8422 { 1, "challenge" },
8423 { 2, "response" },
8424 { 0, NULL }
8425 };
8426
8427 static const ber_choice_t KRBObject_choice[] = {
8428 { 1, &hf_z3950_kRBObject_challenge, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_KRBRequest },
8429 { 2, &hf_z3950_kRBObject_response, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_KRBResponse },
8430 { 0, NULL, 0, 0, 0, NULL }
8431 };
8432
8433 static int
dissect_z3950_KRBObject(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8434 dissect_z3950_KRBObject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8435 offset = dissect_ber_choice(actx, tree, tvb, offset,
8436 KRBObject_choice, hf_index, ett_z3950_KRBObject,
8437 NULL);
8438
8439 return offset;
8440 }
8441
8442
8443 static const ber_sequence_t T_queryExpression_term_sequence[] = {
8444 { &hf_z3950_queryTerm , BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_z3950_Term },
8445 { &hf_z3950_termComment , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8446 { NULL, 0, 0, 0, NULL }
8447 };
8448
8449 static int
dissect_z3950_T_queryExpression_term(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8450 dissect_z3950_T_queryExpression_term(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8451 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8452 T_queryExpression_term_sequence, hf_index, ett_z3950_T_queryExpression_term);
8453
8454 return offset;
8455 }
8456
8457
8458 static const value_string z3950_QueryExpression_vals[] = {
8459 { 1, "term" },
8460 { 2, "query" },
8461 { 0, NULL }
8462 };
8463
8464 static const ber_choice_t QueryExpression_choice[] = {
8465 { 1, &hf_z3950_queryExpression_term, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_T_queryExpression_term },
8466 { 2, &hf_z3950_query , BER_CLASS_CON, 2, 0, dissect_z3950_Query },
8467 { 0, NULL, 0, 0, 0, NULL }
8468 };
8469
8470 static int
dissect_z3950_QueryExpression(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8471 dissect_z3950_QueryExpression(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8472 offset = dissect_ber_choice(actx, tree, tvb, offset,
8473 QueryExpression_choice, hf_index, ett_z3950_QueryExpression,
8474 NULL);
8475
8476 return offset;
8477 }
8478
8479
8480 static const value_string z3950_T_databases_vals[] = {
8481 { 1, "all" },
8482 { 2, "list" },
8483 { 0, NULL }
8484 };
8485
8486 static const ber_choice_t T_databases_choice[] = {
8487 { 1, &hf_z3950_all , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_z3950_NULL },
8488 { 2, &hf_z3950_list , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_SEQUENCE_OF_DatabaseName },
8489 { 0, NULL, 0, 0, 0, NULL }
8490 };
8491
8492 static int
dissect_z3950_T_databases(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8493 dissect_z3950_T_databases(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8494 offset = dissect_ber_choice(actx, tree, tvb, offset,
8495 T_databases_choice, hf_index, ett_z3950_T_databases,
8496 NULL);
8497
8498 return offset;
8499 }
8500
8501
8502 static const ber_sequence_t ResultsByDB_item_sequence[] = {
8503 { &hf_z3950_databases , BER_CLASS_CON, 1, 0, dissect_z3950_T_databases },
8504 { &hf_z3950_count , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
8505 { &hf_z3950_resultSetName , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8506 { NULL, 0, 0, 0, NULL }
8507 };
8508
8509 static int
dissect_z3950_ResultsByDB_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8510 dissect_z3950_ResultsByDB_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8511 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8512 ResultsByDB_item_sequence, hf_index, ett_z3950_ResultsByDB_item);
8513
8514 return offset;
8515 }
8516
8517
8518 static const ber_sequence_t ResultsByDB_sequence_of[1] = {
8519 { &hf_z3950_ResultsByDB_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_ResultsByDB_item },
8520 };
8521
8522 static int
dissect_z3950_ResultsByDB(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8523 dissect_z3950_ResultsByDB(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8524 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8525 ResultsByDB_sequence_of, hf_index, ett_z3950_ResultsByDB);
8526
8527 return offset;
8528 }
8529
8530
8531 static const ber_sequence_t SearchInfoReport_item_sequence[] = {
8532 { &hf_z3950_subqueryId , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_InternationalString },
8533 { &hf_z3950_fullQuery , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_z3950_BOOLEAN },
8534 { &hf_z3950_subqueryExpression, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_QueryExpression },
8535 { &hf_z3950_subqueryInterpretation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_QueryExpression },
8536 { &hf_z3950_subqueryRecommendation, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_z3950_QueryExpression },
8537 { &hf_z3950_subqueryCount , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_INTEGER },
8538 { &hf_z3950_subqueryWeight, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_IntUnit },
8539 { &hf_z3950_resultsByDB , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_z3950_ResultsByDB },
8540 { NULL, 0, 0, 0, NULL }
8541 };
8542
8543 static int
dissect_z3950_SearchInfoReport_item(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8544 dissect_z3950_SearchInfoReport_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8545 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
8546 SearchInfoReport_item_sequence, hf_index, ett_z3950_SearchInfoReport_item);
8547
8548 return offset;
8549 }
8550
8551
8552 static const ber_sequence_t SearchInfoReport_sequence_of[1] = {
8553 { &hf_z3950_SearchInfoReport_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_z3950_SearchInfoReport_item },
8554 };
8555
8556 static int
dissect_z3950_SearchInfoReport(gboolean implicit_tag _U_,tvbuff_t * tvb _U_,int offset _U_,asn1_ctx_t * actx _U_,proto_tree * tree _U_,int hf_index _U_)8557 dissect_z3950_SearchInfoReport(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8558 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
8559 SearchInfoReport_sequence_of, hf_index, ett_z3950_SearchInfoReport);
8560
8561 return offset;
8562 }
8563
8564 /*--- PDUs ---*/
8565
dissect_OCLC_UserInformation_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)8566 static int dissect_OCLC_UserInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8567 int offset = 0;
8568 asn1_ctx_t asn1_ctx;
8569 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8570 offset = dissect_z3950_OCLC_UserInformation(FALSE, tvb, offset, &asn1_ctx, tree, hf_z3950_OCLC_UserInformation_PDU);
8571 return offset;
8572 }
dissect_SutrsRecord_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)8573 static int dissect_SutrsRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8574 int offset = 0;
8575 asn1_ctx_t asn1_ctx;
8576 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8577 offset = dissect_z3950_SutrsRecord(FALSE, tvb, offset, &asn1_ctx, tree, hf_z3950_SutrsRecord_PDU);
8578 return offset;
8579 }
dissect_OPACRecord_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)8580 static int dissect_OPACRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8581 int offset = 0;
8582 asn1_ctx_t asn1_ctx;
8583 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8584 offset = dissect_z3950_OPACRecord(FALSE, tvb, offset, &asn1_ctx, tree, hf_z3950_OPACRecord_PDU);
8585 return offset;
8586 }
dissect_DiagnosticFormat_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)8587 static int dissect_DiagnosticFormat_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8588 int offset = 0;
8589 asn1_ctx_t asn1_ctx;
8590 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8591 offset = dissect_z3950_DiagnosticFormat(FALSE, tvb, offset, &asn1_ctx, tree, hf_z3950_DiagnosticFormat_PDU);
8592 return offset;
8593 }
dissect_Explain_Record_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)8594 static int dissect_Explain_Record_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8595 int offset = 0;
8596 asn1_ctx_t asn1_ctx;
8597 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8598 offset = dissect_z3950_Explain_Record(FALSE, tvb, offset, &asn1_ctx, tree, hf_z3950_Explain_Record_PDU);
8599 return offset;
8600 }
dissect_BriefBib_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)8601 static int dissect_BriefBib_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8602 int offset = 0;
8603 asn1_ctx_t asn1_ctx;
8604 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8605 offset = dissect_z3950_BriefBib(FALSE, tvb, offset, &asn1_ctx, tree, hf_z3950_BriefBib_PDU);
8606 return offset;
8607 }
dissect_GenericRecord_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)8608 static int dissect_GenericRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8609 int offset = 0;
8610 asn1_ctx_t asn1_ctx;
8611 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8612 offset = dissect_z3950_GenericRecord(FALSE, tvb, offset, &asn1_ctx, tree, hf_z3950_GenericRecord_PDU);
8613 return offset;
8614 }
dissect_TaskPackage_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)8615 static int dissect_TaskPackage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8616 int offset = 0;
8617 asn1_ctx_t asn1_ctx;
8618 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8619 offset = dissect_z3950_TaskPackage(FALSE, tvb, offset, &asn1_ctx, tree, hf_z3950_TaskPackage_PDU);
8620 return offset;
8621 }
dissect_PromptObject_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)8622 static int dissect_PromptObject_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8623 int offset = 0;
8624 asn1_ctx_t asn1_ctx;
8625 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8626 offset = dissect_z3950_PromptObject(FALSE, tvb, offset, &asn1_ctx, tree, hf_z3950_PromptObject_PDU);
8627 return offset;
8628 }
dissect_DES_RN_Object_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)8629 static int dissect_DES_RN_Object_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8630 int offset = 0;
8631 asn1_ctx_t asn1_ctx;
8632 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8633 offset = dissect_z3950_DES_RN_Object(FALSE, tvb, offset, &asn1_ctx, tree, hf_z3950_DES_RN_Object_PDU);
8634 return offset;
8635 }
dissect_KRBObject_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)8636 static int dissect_KRBObject_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8637 int offset = 0;
8638 asn1_ctx_t asn1_ctx;
8639 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8640 offset = dissect_z3950_KRBObject(FALSE, tvb, offset, &asn1_ctx, tree, hf_z3950_KRBObject_PDU);
8641 return offset;
8642 }
dissect_SearchInfoReport_PDU(tvbuff_t * tvb _U_,packet_info * pinfo _U_,proto_tree * tree _U_,void * data _U_)8643 static int dissect_SearchInfoReport_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
8644 int offset = 0;
8645 asn1_ctx_t asn1_ctx;
8646 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8647 offset = dissect_z3950_SearchInfoReport(FALSE, tvb, offset, &asn1_ctx, tree, hf_z3950_SearchInfoReport_PDU);
8648 return offset;
8649 }
8650
8651
8652 /*--- End of included file: packet-z3950-fn.c ---*/
8653 #line 921 "./asn1/z3950/packet-z3950-template.c"
8654
8655 static int
dissect_z3950(tvbuff_t * tvb,packet_info * pinfo,proto_tree * tree,void * data _U_)8656 dissect_z3950(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
8657 {
8658 proto_item *z3950_item = NULL;
8659 proto_tree *z3950_tree = NULL;
8660 int offset = 0;
8661 asn1_ctx_t asn1_ctx;
8662 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
8663
8664
8665 /* make entry in the Protocol column on summary display */
8666 col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
8667
8668 /* create the z3950 protocol tree */
8669 z3950_item = proto_tree_add_item(tree, proto_z3950, tvb, 0, -1, FALSE);
8670 z3950_tree = proto_item_add_subtree(z3950_item, ett_z3950);
8671
8672 return dissect_z3950_PDU(FALSE, tvb, offset, &asn1_ctx, z3950_tree, -1);
8673 }
8674
8675 static guint
get_z3950_pdu_len(packet_info * pinfo _U_,tvbuff_t * tvb,int offset,void * data _U_)8676 get_z3950_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _U_)
8677 {
8678 guint plen;
8679 guint ber_offset;
8680 TRY {
8681 /* Skip past identifier */
8682 ber_offset = get_ber_identifier(tvb, offset, NULL, NULL, NULL);
8683 ber_offset = get_ber_length(tvb, ber_offset, &plen, NULL);
8684 plen += (ber_offset - offset);
8685 }
8686 CATCH(ReportedBoundsError) {
8687 plen = 0;
8688 }
8689 ENDTRY;
8690
8691 return plen;
8692 }
8693
8694 static int
dissect_z3950_segment(tvbuff_t * tvb,packet_info * pinfo,proto_tree * tree,void * data _U_)8695 dissect_z3950_segment(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * data _U_)
8696 {
8697
8698 /* Min length of 8 assumes 3 for identifer and 5 for length. */
8699 tcp_dissect_pdus(tvb, pinfo, tree, z3950_desegment, 8, get_z3950_pdu_len, dissect_z3950, data);
8700 return tvb_captured_length(tvb);
8701 }
8702
8703 /*--- proto_register_z3950 -------------------------------------------*/
proto_register_z3950(void)8704 void proto_register_z3950(void) {
8705
8706 /* List of fields */
8707 static hf_register_info hf[] = {
8708
8709
8710 /*--- Included file: packet-z3950-hfarr.c ---*/
8711 #line 1 "./asn1/z3950/packet-z3950-hfarr.c"
8712 { &hf_z3950_OCLC_UserInformation_PDU,
8713 { "OCLC-UserInformation", "z3950.OCLC_UserInformation_element",
8714 FT_NONE, BASE_NONE, NULL, 0,
8715 NULL, HFILL }},
8716 { &hf_z3950_SutrsRecord_PDU,
8717 { "SutrsRecord", "z3950.SutrsRecord",
8718 FT_STRING, BASE_NONE, NULL, 0,
8719 NULL, HFILL }},
8720 { &hf_z3950_OPACRecord_PDU,
8721 { "OPACRecord", "z3950.OPACRecord_element",
8722 FT_NONE, BASE_NONE, NULL, 0,
8723 NULL, HFILL }},
8724 { &hf_z3950_DiagnosticFormat_PDU,
8725 { "DiagnosticFormat", "z3950.DiagnosticFormat",
8726 FT_UINT32, BASE_DEC, NULL, 0,
8727 NULL, HFILL }},
8728 { &hf_z3950_Explain_Record_PDU,
8729 { "Explain-Record", "z3950.Explain_Record",
8730 FT_UINT32, BASE_DEC, VALS(z3950_Explain_Record_vals), 0,
8731 NULL, HFILL }},
8732 { &hf_z3950_BriefBib_PDU,
8733 { "BriefBib", "z3950.BriefBib_element",
8734 FT_NONE, BASE_NONE, NULL, 0,
8735 NULL, HFILL }},
8736 { &hf_z3950_GenericRecord_PDU,
8737 { "GenericRecord", "z3950.GenericRecord",
8738 FT_UINT32, BASE_DEC, NULL, 0,
8739 NULL, HFILL }},
8740 { &hf_z3950_TaskPackage_PDU,
8741 { "TaskPackage", "z3950.TaskPackage_element",
8742 FT_NONE, BASE_NONE, NULL, 0,
8743 NULL, HFILL }},
8744 { &hf_z3950_PromptObject_PDU,
8745 { "PromptObject", "z3950.PromptObject",
8746 FT_UINT32, BASE_DEC, VALS(z3950_PromptObject_vals), 0,
8747 NULL, HFILL }},
8748 { &hf_z3950_DES_RN_Object_PDU,
8749 { "DES-RN-Object", "z3950.DES_RN_Object",
8750 FT_UINT32, BASE_DEC, VALS(z3950_DES_RN_Object_vals), 0,
8751 NULL, HFILL }},
8752 { &hf_z3950_KRBObject_PDU,
8753 { "KRBObject", "z3950.KRBObject",
8754 FT_UINT32, BASE_DEC, VALS(z3950_KRBObject_vals), 0,
8755 NULL, HFILL }},
8756 { &hf_z3950_SearchInfoReport_PDU,
8757 { "SearchInfoReport", "z3950.SearchInfoReport",
8758 FT_UINT32, BASE_DEC, NULL, 0,
8759 NULL, HFILL }},
8760 { &hf_z3950_initRequest,
8761 { "initRequest", "z3950.initRequest_element",
8762 FT_NONE, BASE_NONE, NULL, 0,
8763 "InitializeRequest", HFILL }},
8764 { &hf_z3950_initResponse,
8765 { "initResponse", "z3950.initResponse_element",
8766 FT_NONE, BASE_NONE, NULL, 0,
8767 "InitializeResponse", HFILL }},
8768 { &hf_z3950_searchRequest,
8769 { "searchRequest", "z3950.searchRequest_element",
8770 FT_NONE, BASE_NONE, NULL, 0,
8771 NULL, HFILL }},
8772 { &hf_z3950_searchResponse,
8773 { "searchResponse", "z3950.searchResponse_element",
8774 FT_NONE, BASE_NONE, NULL, 0,
8775 NULL, HFILL }},
8776 { &hf_z3950_presentRequest,
8777 { "presentRequest", "z3950.presentRequest_element",
8778 FT_NONE, BASE_NONE, NULL, 0,
8779 NULL, HFILL }},
8780 { &hf_z3950_presentResponse,
8781 { "presentResponse", "z3950.presentResponse_element",
8782 FT_NONE, BASE_NONE, NULL, 0,
8783 NULL, HFILL }},
8784 { &hf_z3950_deleteResultSetRequest,
8785 { "deleteResultSetRequest", "z3950.deleteResultSetRequest_element",
8786 FT_NONE, BASE_NONE, NULL, 0,
8787 NULL, HFILL }},
8788 { &hf_z3950_deleteResultSetResponse,
8789 { "deleteResultSetResponse", "z3950.deleteResultSetResponse_element",
8790 FT_NONE, BASE_NONE, NULL, 0,
8791 NULL, HFILL }},
8792 { &hf_z3950_accessControlRequest,
8793 { "accessControlRequest", "z3950.accessControlRequest_element",
8794 FT_NONE, BASE_NONE, NULL, 0,
8795 NULL, HFILL }},
8796 { &hf_z3950_accessControlResponse,
8797 { "accessControlResponse", "z3950.accessControlResponse_element",
8798 FT_NONE, BASE_NONE, NULL, 0,
8799 NULL, HFILL }},
8800 { &hf_z3950_resourceControlRequest,
8801 { "resourceControlRequest", "z3950.resourceControlRequest_element",
8802 FT_NONE, BASE_NONE, NULL, 0,
8803 NULL, HFILL }},
8804 { &hf_z3950_resourceControlResponse,
8805 { "resourceControlResponse", "z3950.resourceControlResponse_element",
8806 FT_NONE, BASE_NONE, NULL, 0,
8807 NULL, HFILL }},
8808 { &hf_z3950_triggerResourceControlRequest,
8809 { "triggerResourceControlRequest", "z3950.triggerResourceControlRequest_element",
8810 FT_NONE, BASE_NONE, NULL, 0,
8811 NULL, HFILL }},
8812 { &hf_z3950_resourceReportRequest,
8813 { "resourceReportRequest", "z3950.resourceReportRequest_element",
8814 FT_NONE, BASE_NONE, NULL, 0,
8815 NULL, HFILL }},
8816 { &hf_z3950_resourceReportResponse,
8817 { "resourceReportResponse", "z3950.resourceReportResponse_element",
8818 FT_NONE, BASE_NONE, NULL, 0,
8819 NULL, HFILL }},
8820 { &hf_z3950_scanRequest,
8821 { "scanRequest", "z3950.scanRequest_element",
8822 FT_NONE, BASE_NONE, NULL, 0,
8823 NULL, HFILL }},
8824 { &hf_z3950_scanResponse,
8825 { "scanResponse", "z3950.scanResponse_element",
8826 FT_NONE, BASE_NONE, NULL, 0,
8827 NULL, HFILL }},
8828 { &hf_z3950_sortRequest,
8829 { "sortRequest", "z3950.sortRequest_element",
8830 FT_NONE, BASE_NONE, NULL, 0,
8831 NULL, HFILL }},
8832 { &hf_z3950_sortResponse,
8833 { "sortResponse", "z3950.sortResponse_element",
8834 FT_NONE, BASE_NONE, NULL, 0,
8835 NULL, HFILL }},
8836 { &hf_z3950_segmentRequest,
8837 { "segmentRequest", "z3950.segmentRequest_element",
8838 FT_NONE, BASE_NONE, NULL, 0,
8839 "Segment", HFILL }},
8840 { &hf_z3950_extendedServicesRequest,
8841 { "extendedServicesRequest", "z3950.extendedServicesRequest_element",
8842 FT_NONE, BASE_NONE, NULL, 0,
8843 NULL, HFILL }},
8844 { &hf_z3950_extendedServicesResponse,
8845 { "extendedServicesResponse", "z3950.extendedServicesResponse_element",
8846 FT_NONE, BASE_NONE, NULL, 0,
8847 NULL, HFILL }},
8848 { &hf_z3950_close,
8849 { "close", "z3950.close_element",
8850 FT_NONE, BASE_NONE, NULL, 0,
8851 NULL, HFILL }},
8852 { &hf_z3950_referenceId,
8853 { "referenceId", "z3950.referenceId",
8854 FT_BYTES, BASE_NONE, NULL, 0,
8855 NULL, HFILL }},
8856 { &hf_z3950_protocolVersion,
8857 { "protocolVersion", "z3950.protocolVersion",
8858 FT_BYTES, BASE_NONE, NULL, 0,
8859 NULL, HFILL }},
8860 { &hf_z3950_options,
8861 { "options", "z3950.options",
8862 FT_BYTES, BASE_NONE, NULL, 0,
8863 NULL, HFILL }},
8864 { &hf_z3950_preferredMessageSize,
8865 { "preferredMessageSize", "z3950.preferredMessageSize",
8866 FT_INT32, BASE_DEC, NULL, 0,
8867 "INTEGER", HFILL }},
8868 { &hf_z3950_exceptionalRecordSize,
8869 { "exceptionalRecordSize", "z3950.exceptionalRecordSize",
8870 FT_INT32, BASE_DEC, NULL, 0,
8871 "INTEGER", HFILL }},
8872 { &hf_z3950_idAuthentication,
8873 { "idAuthentication", "z3950.idAuthentication",
8874 FT_UINT32, BASE_DEC, VALS(z3950_T_idAuthentication_vals), 0,
8875 NULL, HFILL }},
8876 { &hf_z3950_open,
8877 { "open", "z3950.open",
8878 FT_STRING, BASE_NONE, NULL, 0,
8879 "VisibleString", HFILL }},
8880 { &hf_z3950_idPass,
8881 { "idPass", "z3950.idPass_element",
8882 FT_NONE, BASE_NONE, NULL, 0,
8883 NULL, HFILL }},
8884 { &hf_z3950_groupId,
8885 { "groupId", "z3950.groupId",
8886 FT_STRING, BASE_NONE, NULL, 0,
8887 "InternationalString", HFILL }},
8888 { &hf_z3950_userId,
8889 { "userId", "z3950.userId",
8890 FT_STRING, BASE_NONE, NULL, 0,
8891 "InternationalString", HFILL }},
8892 { &hf_z3950_password,
8893 { "password", "z3950.password",
8894 FT_STRING, BASE_NONE, NULL, 0,
8895 "InternationalString", HFILL }},
8896 { &hf_z3950_anonymous,
8897 { "anonymous", "z3950.anonymous_element",
8898 FT_NONE, BASE_NONE, NULL, 0,
8899 NULL, HFILL }},
8900 { &hf_z3950_other,
8901 { "other", "z3950.other_element",
8902 FT_NONE, BASE_NONE, NULL, 0,
8903 "EXTERNAL", HFILL }},
8904 { &hf_z3950_implementationId,
8905 { "implementationId", "z3950.implementationId",
8906 FT_STRING, BASE_NONE, NULL, 0,
8907 "InternationalString", HFILL }},
8908 { &hf_z3950_implementationName,
8909 { "implementationName", "z3950.implementationName",
8910 FT_STRING, BASE_NONE, NULL, 0,
8911 "InternationalString", HFILL }},
8912 { &hf_z3950_implementationVersion,
8913 { "implementationVersion", "z3950.implementationVersion",
8914 FT_STRING, BASE_NONE, NULL, 0,
8915 "InternationalString", HFILL }},
8916 { &hf_z3950_userInformationField,
8917 { "userInformationField", "z3950.userInformationField_element",
8918 FT_NONE, BASE_NONE, NULL, 0,
8919 "EXTERNAL", HFILL }},
8920 { &hf_z3950_otherInfo,
8921 { "otherInfo", "z3950.otherInfo",
8922 FT_UINT32, BASE_DEC, NULL, 0,
8923 "OtherInformation", HFILL }},
8924 { &hf_z3950_result,
8925 { "result", "z3950.result",
8926 FT_BOOLEAN, BASE_NONE, NULL, 0,
8927 "BOOLEAN", HFILL }},
8928 { &hf_z3950_smallSetUpperBound,
8929 { "smallSetUpperBound", "z3950.smallSetUpperBound",
8930 FT_INT32, BASE_DEC, NULL, 0,
8931 "INTEGER", HFILL }},
8932 { &hf_z3950_largeSetLowerBound,
8933 { "largeSetLowerBound", "z3950.largeSetLowerBound",
8934 FT_INT32, BASE_DEC, NULL, 0,
8935 "INTEGER", HFILL }},
8936 { &hf_z3950_mediumSetPresentNumber,
8937 { "mediumSetPresentNumber", "z3950.mediumSetPresentNumber",
8938 FT_INT32, BASE_DEC, NULL, 0,
8939 "INTEGER", HFILL }},
8940 { &hf_z3950_replaceIndicator,
8941 { "replaceIndicator", "z3950.replaceIndicator",
8942 FT_BOOLEAN, BASE_NONE, NULL, 0,
8943 "BOOLEAN", HFILL }},
8944 { &hf_z3950_resultSetName,
8945 { "resultSetName", "z3950.resultSetName",
8946 FT_STRING, BASE_NONE, NULL, 0,
8947 "InternationalString", HFILL }},
8948 { &hf_z3950_databaseNames,
8949 { "databaseNames", "z3950.databaseNames",
8950 FT_UINT32, BASE_DEC, NULL, 0,
8951 "SEQUENCE_OF_DatabaseName", HFILL }},
8952 { &hf_z3950_databaseNames_item,
8953 { "DatabaseName", "z3950.DatabaseName",
8954 FT_STRING, BASE_NONE, NULL, 0,
8955 NULL, HFILL }},
8956 { &hf_z3950_smallSetElementSetNames,
8957 { "smallSetElementSetNames", "z3950.smallSetElementSetNames",
8958 FT_UINT32, BASE_DEC, VALS(z3950_ElementSetNames_vals), 0,
8959 "ElementSetNames", HFILL }},
8960 { &hf_z3950_mediumSetElementSetNames,
8961 { "mediumSetElementSetNames", "z3950.mediumSetElementSetNames",
8962 FT_UINT32, BASE_DEC, VALS(z3950_ElementSetNames_vals), 0,
8963 "ElementSetNames", HFILL }},
8964 { &hf_z3950_preferredRecordSyntax,
8965 { "preferredRecordSyntax", "z3950.preferredRecordSyntax",
8966 FT_OID, BASE_NONE, NULL, 0,
8967 "OBJECT_IDENTIFIER", HFILL }},
8968 { &hf_z3950_query,
8969 { "query", "z3950.query",
8970 FT_UINT32, BASE_DEC, VALS(z3950_Query_vals), 0,
8971 NULL, HFILL }},
8972 { &hf_z3950_additionalSearchInfo,
8973 { "additionalSearchInfo", "z3950.additionalSearchInfo",
8974 FT_UINT32, BASE_DEC, NULL, 0,
8975 "OtherInformation", HFILL }},
8976 { &hf_z3950_type_0,
8977 { "type-0", "z3950.type_0_element",
8978 FT_NONE, BASE_NONE, NULL, 0,
8979 NULL, HFILL }},
8980 { &hf_z3950_type_1,
8981 { "type-1", "z3950.type_1_element",
8982 FT_NONE, BASE_NONE, NULL, 0,
8983 "RPNQuery", HFILL }},
8984 { &hf_z3950_type_2,
8985 { "type-2", "z3950.type_2",
8986 FT_BYTES, BASE_NONE, NULL, 0,
8987 "OCTET_STRING", HFILL }},
8988 { &hf_z3950_type_100,
8989 { "type-100", "z3950.type_100",
8990 FT_BYTES, BASE_NONE, NULL, 0,
8991 "OCTET_STRING", HFILL }},
8992 { &hf_z3950_type_101,
8993 { "type-101", "z3950.type_101_element",
8994 FT_NONE, BASE_NONE, NULL, 0,
8995 "RPNQuery", HFILL }},
8996 { &hf_z3950_type_102,
8997 { "type-102", "z3950.type_102",
8998 FT_BYTES, BASE_NONE, NULL, 0,
8999 "OCTET_STRING", HFILL }},
9000 { &hf_z3950_attributeSet,
9001 { "attributeSet", "z3950.attributeSet",
9002 FT_OID, BASE_NONE, NULL, 0,
9003 "AttributeSetId", HFILL }},
9004 { &hf_z3950_rpn,
9005 { "rpn", "z3950.rpn",
9006 FT_UINT32, BASE_DEC, VALS(z3950_RPNStructure_vals), 0,
9007 "RPNStructure", HFILL }},
9008 { &hf_z3950_operandRpnOp,
9009 { "op", "z3950.op",
9010 FT_UINT32, BASE_DEC, VALS(z3950_Operand_vals), 0,
9011 "Operand", HFILL }},
9012 { &hf_z3950_rpnRpnOp,
9013 { "rpnRpnOp", "z3950.rpnRpnOp_element",
9014 FT_NONE, BASE_NONE, NULL, 0,
9015 NULL, HFILL }},
9016 { &hf_z3950_rpn1,
9017 { "rpn1", "z3950.rpn1",
9018 FT_UINT32, BASE_DEC, VALS(z3950_RPNStructure_vals), 0,
9019 "RPNStructure", HFILL }},
9020 { &hf_z3950_rpn2,
9021 { "rpn2", "z3950.rpn2",
9022 FT_UINT32, BASE_DEC, VALS(z3950_RPNStructure_vals), 0,
9023 "RPNStructure", HFILL }},
9024 { &hf_z3950_operatorRpnOp,
9025 { "op", "z3950.op",
9026 FT_UINT32, BASE_DEC, VALS(z3950_Operator_U_vals), 0,
9027 "Operator", HFILL }},
9028 { &hf_z3950_attrTerm,
9029 { "attrTerm", "z3950.attrTerm_element",
9030 FT_NONE, BASE_NONE, NULL, 0,
9031 "AttributesPlusTerm", HFILL }},
9032 { &hf_z3950_resultSet,
9033 { "resultSet", "z3950.resultSet",
9034 FT_STRING, BASE_NONE, NULL, 0,
9035 "ResultSetId", HFILL }},
9036 { &hf_z3950_resultAttr,
9037 { "resultAttr", "z3950.resultAttr_element",
9038 FT_NONE, BASE_NONE, NULL, 0,
9039 "ResultSetPlusAttributes", HFILL }},
9040 { &hf_z3950_attributes,
9041 { "attributes", "z3950.attributes",
9042 FT_UINT32, BASE_DEC, NULL, 0,
9043 "AttributeList", HFILL }},
9044 { &hf_z3950_term,
9045 { "term", "z3950.term",
9046 FT_UINT32, BASE_DEC, VALS(z3950_Term_vals), 0,
9047 NULL, HFILL }},
9048 { &hf_z3950_attributeList_item,
9049 { "AttributeElement", "z3950.AttributeElement_element",
9050 FT_NONE, BASE_NONE, NULL, 0,
9051 NULL, HFILL }},
9052 { &hf_z3950_general,
9053 { "general", "z3950.general",
9054 FT_BYTES, BASE_NONE, NULL, 0,
9055 NULL, HFILL }},
9056 { &hf_z3950_numeric,
9057 { "numeric", "z3950.numeric",
9058 FT_INT32, BASE_DEC, NULL, 0,
9059 "INTEGER", HFILL }},
9060 { &hf_z3950_characterString,
9061 { "characterString", "z3950.characterString",
9062 FT_STRING, BASE_NONE, NULL, 0,
9063 "InternationalString", HFILL }},
9064 { &hf_z3950_oid,
9065 { "oid", "z3950.oid",
9066 FT_OID, BASE_NONE, NULL, 0,
9067 "OBJECT_IDENTIFIER", HFILL }},
9068 { &hf_z3950_dateTime,
9069 { "dateTime", "z3950.dateTime",
9070 FT_STRING, BASE_NONE, NULL, 0,
9071 "GeneralizedTime", HFILL }},
9072 { &hf_z3950_external,
9073 { "external", "z3950.external_element",
9074 FT_NONE, BASE_NONE, NULL, 0,
9075 NULL, HFILL }},
9076 { &hf_z3950_integerAndUnit,
9077 { "integerAndUnit", "z3950.integerAndUnit_element",
9078 FT_NONE, BASE_NONE, NULL, 0,
9079 "IntUnit", HFILL }},
9080 { &hf_z3950_null,
9081 { "null", "z3950.null_element",
9082 FT_NONE, BASE_NONE, NULL, 0,
9083 NULL, HFILL }},
9084 { &hf_z3950_and,
9085 { "and", "z3950.and_element",
9086 FT_NONE, BASE_NONE, NULL, 0,
9087 NULL, HFILL }},
9088 { &hf_z3950_or,
9089 { "or", "z3950.or_element",
9090 FT_NONE, BASE_NONE, NULL, 0,
9091 NULL, HFILL }},
9092 { &hf_z3950_and_not,
9093 { "and-not", "z3950.and_not_element",
9094 FT_NONE, BASE_NONE, NULL, 0,
9095 NULL, HFILL }},
9096 { &hf_z3950_prox,
9097 { "prox", "z3950.prox_element",
9098 FT_NONE, BASE_NONE, NULL, 0,
9099 "ProximityOperator", HFILL }},
9100 { &hf_z3950_attributeElement_attributeType,
9101 { "attributeType", "z3950.attributeType",
9102 FT_INT32, BASE_DEC, NULL, 0,
9103 "T_attributeElement_attributeType", HFILL }},
9104 { &hf_z3950_attributeValue,
9105 { "attributeValue", "z3950.attributeValue",
9106 FT_UINT32, BASE_DEC, VALS(z3950_T_attributeValue_vals), 0,
9107 NULL, HFILL }},
9108 { &hf_z3950_attributeValue_numeric,
9109 { "numeric", "z3950.numeric",
9110 FT_INT32, BASE_DEC, NULL, 0,
9111 "T_attributeValue_numeric", HFILL }},
9112 { &hf_z3950_attributeValue_complex,
9113 { "complex", "z3950.complex_element",
9114 FT_NONE, BASE_NONE, NULL, 0,
9115 "T_attributeValue_complex", HFILL }},
9116 { &hf_z3950_attributeValue_complex_list,
9117 { "list", "z3950.list",
9118 FT_UINT32, BASE_DEC, NULL, 0,
9119 "SEQUENCE_OF_StringOrNumeric", HFILL }},
9120 { &hf_z3950_attributeValue_complex_list_item,
9121 { "StringOrNumeric", "z3950.StringOrNumeric",
9122 FT_UINT32, BASE_DEC, VALS(z3950_StringOrNumeric_vals), 0,
9123 NULL, HFILL }},
9124 { &hf_z3950_semanticAction,
9125 { "semanticAction", "z3950.semanticAction",
9126 FT_UINT32, BASE_DEC, NULL, 0,
9127 NULL, HFILL }},
9128 { &hf_z3950_semanticAction_item,
9129 { "semanticAction item", "z3950.semanticAction_item",
9130 FT_INT32, BASE_DEC, NULL, 0,
9131 "INTEGER", HFILL }},
9132 { &hf_z3950_exclusion,
9133 { "exclusion", "z3950.exclusion",
9134 FT_BOOLEAN, BASE_NONE, NULL, 0,
9135 "BOOLEAN", HFILL }},
9136 { &hf_z3950_distance,
9137 { "distance", "z3950.distance",
9138 FT_INT32, BASE_DEC, NULL, 0,
9139 "INTEGER", HFILL }},
9140 { &hf_z3950_ordered,
9141 { "ordered", "z3950.ordered",
9142 FT_BOOLEAN, BASE_NONE, NULL, 0,
9143 "BOOLEAN", HFILL }},
9144 { &hf_z3950_relationType,
9145 { "relationType", "z3950.relationType",
9146 FT_INT32, BASE_DEC, VALS(z3950_T_relationType_vals), 0,
9147 NULL, HFILL }},
9148 { &hf_z3950_proximityUnitCode,
9149 { "proximityUnitCode", "z3950.proximityUnitCode",
9150 FT_UINT32, BASE_DEC, VALS(z3950_T_proximityUnitCode_vals), 0,
9151 NULL, HFILL }},
9152 { &hf_z3950_known,
9153 { "known", "z3950.known",
9154 FT_INT32, BASE_DEC, VALS(z3950_KnownProximityUnit_vals), 0,
9155 "KnownProximityUnit", HFILL }},
9156 { &hf_z3950_private,
9157 { "private", "z3950.private",
9158 FT_INT32, BASE_DEC, NULL, 0,
9159 "INTEGER", HFILL }},
9160 { &hf_z3950_resultCount,
9161 { "resultCount", "z3950.resultCount",
9162 FT_INT32, BASE_DEC, NULL, 0,
9163 "INTEGER", HFILL }},
9164 { &hf_z3950_numberOfRecordsReturned,
9165 { "numberOfRecordsReturned", "z3950.numberOfRecordsReturned",
9166 FT_INT32, BASE_DEC, NULL, 0,
9167 "INTEGER", HFILL }},
9168 { &hf_z3950_nextResultSetPosition,
9169 { "nextResultSetPosition", "z3950.nextResultSetPosition",
9170 FT_INT32, BASE_DEC, NULL, 0,
9171 "INTEGER", HFILL }},
9172 { &hf_z3950_searchStatus,
9173 { "searchStatus", "z3950.searchStatus",
9174 FT_BOOLEAN, BASE_NONE, NULL, 0,
9175 "BOOLEAN", HFILL }},
9176 { &hf_z3950_search_resultSetStatus,
9177 { "resultSetStatus", "z3950.resultSetStatus",
9178 FT_INT32, BASE_DEC, VALS(z3950_T_search_resultSetStatus_vals), 0,
9179 "T_search_resultSetStatus", HFILL }},
9180 { &hf_z3950_presentStatus,
9181 { "presentStatus", "z3950.presentStatus",
9182 FT_INT32, BASE_DEC, VALS(z3950_PresentStatus_U_vals), 0,
9183 NULL, HFILL }},
9184 { &hf_z3950_records,
9185 { "records", "z3950.records",
9186 FT_UINT32, BASE_DEC, VALS(z3950_Records_vals), 0,
9187 NULL, HFILL }},
9188 { &hf_z3950_resultSetId,
9189 { "resultSetId", "z3950.resultSetId",
9190 FT_STRING, BASE_NONE, NULL, 0,
9191 NULL, HFILL }},
9192 { &hf_z3950_resultSetStartPoint,
9193 { "resultSetStartPoint", "z3950.resultSetStartPoint",
9194 FT_INT32, BASE_DEC, NULL, 0,
9195 "INTEGER", HFILL }},
9196 { &hf_z3950_numberOfRecordsRequested,
9197 { "numberOfRecordsRequested", "z3950.numberOfRecordsRequested",
9198 FT_INT32, BASE_DEC, NULL, 0,
9199 "INTEGER", HFILL }},
9200 { &hf_z3950_additionalRanges,
9201 { "additionalRanges", "z3950.additionalRanges",
9202 FT_UINT32, BASE_DEC, NULL, 0,
9203 "SEQUENCE_OF_Range", HFILL }},
9204 { &hf_z3950_additionalRanges_item,
9205 { "Range", "z3950.Range_element",
9206 FT_NONE, BASE_NONE, NULL, 0,
9207 NULL, HFILL }},
9208 { &hf_z3950_recordComposition,
9209 { "recordComposition", "z3950.recordComposition",
9210 FT_UINT32, BASE_DEC, VALS(z3950_T_recordComposition_vals), 0,
9211 NULL, HFILL }},
9212 { &hf_z3950_simple,
9213 { "simple", "z3950.simple",
9214 FT_UINT32, BASE_DEC, VALS(z3950_ElementSetNames_vals), 0,
9215 "ElementSetNames", HFILL }},
9216 { &hf_z3950_recordComposition_complex,
9217 { "complex", "z3950.complex_element",
9218 FT_NONE, BASE_NONE, NULL, 0,
9219 "CompSpec", HFILL }},
9220 { &hf_z3950_maxSegmentCount,
9221 { "maxSegmentCount", "z3950.maxSegmentCount",
9222 FT_INT32, BASE_DEC, NULL, 0,
9223 "INTEGER", HFILL }},
9224 { &hf_z3950_maxRecordSize,
9225 { "maxRecordSize", "z3950.maxRecordSize",
9226 FT_INT32, BASE_DEC, NULL, 0,
9227 "INTEGER", HFILL }},
9228 { &hf_z3950_maxSegmentSize,
9229 { "maxSegmentSize", "z3950.maxSegmentSize",
9230 FT_INT32, BASE_DEC, NULL, 0,
9231 "INTEGER", HFILL }},
9232 { &hf_z3950_segmentRecords,
9233 { "segmentRecords", "z3950.segmentRecords",
9234 FT_UINT32, BASE_DEC, NULL, 0,
9235 "SEQUENCE_OF_NamePlusRecord", HFILL }},
9236 { &hf_z3950_segmentRecords_item,
9237 { "NamePlusRecord", "z3950.NamePlusRecord_element",
9238 FT_NONE, BASE_NONE, NULL, 0,
9239 NULL, HFILL }},
9240 { &hf_z3950_responseRecords,
9241 { "responseRecords", "z3950.responseRecords",
9242 FT_UINT32, BASE_DEC, NULL, 0,
9243 "SEQUENCE_OF_NamePlusRecord", HFILL }},
9244 { &hf_z3950_responseRecords_item,
9245 { "NamePlusRecord", "z3950.NamePlusRecord_element",
9246 FT_NONE, BASE_NONE, NULL, 0,
9247 NULL, HFILL }},
9248 { &hf_z3950_nonSurrogateDiagnostic,
9249 { "nonSurrogateDiagnostic", "z3950.nonSurrogateDiagnostic_element",
9250 FT_NONE, BASE_NONE, NULL, 0,
9251 "DefaultDiagFormat", HFILL }},
9252 { &hf_z3950_multipleNonSurDiagnostics,
9253 { "multipleNonSurDiagnostics", "z3950.multipleNonSurDiagnostics",
9254 FT_UINT32, BASE_DEC, NULL, 0,
9255 "SEQUENCE_OF_DiagRec", HFILL }},
9256 { &hf_z3950_multipleNonSurDiagnostics_item,
9257 { "DiagRec", "z3950.DiagRec",
9258 FT_UINT32, BASE_DEC, VALS(z3950_DiagRec_vals), 0,
9259 NULL, HFILL }},
9260 { &hf_z3950_namePlusRecord_name,
9261 { "name", "z3950.name",
9262 FT_STRING, BASE_NONE, NULL, 0,
9263 "DatabaseName", HFILL }},
9264 { &hf_z3950_record,
9265 { "record", "z3950.record",
9266 FT_UINT32, BASE_DEC, VALS(z3950_T_record_vals), 0,
9267 NULL, HFILL }},
9268 { &hf_z3950_retrievalRecord,
9269 { "retrievalRecord", "z3950.retrievalRecord_element",
9270 FT_NONE, BASE_NONE, NULL, 0,
9271 "EXTERNAL", HFILL }},
9272 { &hf_z3950_surrogateDiagnostic,
9273 { "surrogateDiagnostic", "z3950.surrogateDiagnostic",
9274 FT_UINT32, BASE_DEC, VALS(z3950_DiagRec_vals), 0,
9275 "DiagRec", HFILL }},
9276 { &hf_z3950_startingFragment,
9277 { "startingFragment", "z3950.startingFragment",
9278 FT_UINT32, BASE_DEC, VALS(z3950_FragmentSyntax_vals), 0,
9279 "FragmentSyntax", HFILL }},
9280 { &hf_z3950_intermediateFragment,
9281 { "intermediateFragment", "z3950.intermediateFragment",
9282 FT_UINT32, BASE_DEC, VALS(z3950_FragmentSyntax_vals), 0,
9283 "FragmentSyntax", HFILL }},
9284 { &hf_z3950_finalFragment,
9285 { "finalFragment", "z3950.finalFragment",
9286 FT_UINT32, BASE_DEC, VALS(z3950_FragmentSyntax_vals), 0,
9287 "FragmentSyntax", HFILL }},
9288 { &hf_z3950_externallyTagged,
9289 { "externallyTagged", "z3950.externallyTagged_element",
9290 FT_NONE, BASE_NONE, NULL, 0,
9291 "EXTERNAL", HFILL }},
9292 { &hf_z3950_notExternallyTagged,
9293 { "notExternallyTagged", "z3950.notExternallyTagged",
9294 FT_BYTES, BASE_NONE, NULL, 0,
9295 "OCTET_STRING", HFILL }},
9296 { &hf_z3950_defaultFormat,
9297 { "defaultFormat", "z3950.defaultFormat_element",
9298 FT_NONE, BASE_NONE, NULL, 0,
9299 "DefaultDiagFormat", HFILL }},
9300 { &hf_z3950_externallyDefined,
9301 { "externallyDefined", "z3950.externallyDefined_element",
9302 FT_NONE, BASE_NONE, NULL, 0,
9303 "EXTERNAL", HFILL }},
9304 { &hf_z3950_diagnosticSetId,
9305 { "diagnosticSetId", "z3950.diagnosticSetId",
9306 FT_OID, BASE_NONE, NULL, 0,
9307 NULL, HFILL }},
9308 { &hf_z3950_condition,
9309 { "condition", "z3950.condition",
9310 FT_INT32, BASE_DEC, NULL, 0,
9311 NULL, HFILL }},
9312 { &hf_z3950_addinfo,
9313 { "addinfo", "z3950.addinfo",
9314 FT_UINT32, BASE_DEC, VALS(z3950_T_addinfo_vals), 0,
9315 NULL, HFILL }},
9316 { &hf_z3950_v2Addinfo,
9317 { "v2Addinfo", "z3950.v2Addinfo",
9318 FT_STRING, BASE_NONE, NULL, 0,
9319 "VisibleString", HFILL }},
9320 { &hf_z3950_v3Addinfo,
9321 { "v3Addinfo", "z3950.v3Addinfo",
9322 FT_STRING, BASE_NONE, NULL, 0,
9323 "InternationalString", HFILL }},
9324 { &hf_z3950_startingPosition,
9325 { "startingPosition", "z3950.startingPosition",
9326 FT_INT32, BASE_DEC, NULL, 0,
9327 "INTEGER", HFILL }},
9328 { &hf_z3950_numberOfRecords,
9329 { "numberOfRecords", "z3950.numberOfRecords",
9330 FT_INT32, BASE_DEC, NULL, 0,
9331 "INTEGER", HFILL }},
9332 { &hf_z3950_genericElementSetName,
9333 { "genericElementSetName", "z3950.genericElementSetName",
9334 FT_STRING, BASE_NONE, NULL, 0,
9335 "InternationalString", HFILL }},
9336 { &hf_z3950_databaseSpecific,
9337 { "databaseSpecific", "z3950.databaseSpecific",
9338 FT_UINT32, BASE_DEC, NULL, 0,
9339 NULL, HFILL }},
9340 { &hf_z3950_databaseSpecific_item,
9341 { "databaseSpecific item", "z3950.databaseSpecific_item_element",
9342 FT_NONE, BASE_NONE, NULL, 0,
9343 NULL, HFILL }},
9344 { &hf_z3950_dbName,
9345 { "dbName", "z3950.dbName",
9346 FT_STRING, BASE_NONE, NULL, 0,
9347 "DatabaseName", HFILL }},
9348 { &hf_z3950_esn,
9349 { "esn", "z3950.esn",
9350 FT_STRING, BASE_NONE, NULL, 0,
9351 "ElementSetName", HFILL }},
9352 { &hf_z3950_selectAlternativeSyntax,
9353 { "selectAlternativeSyntax", "z3950.selectAlternativeSyntax",
9354 FT_BOOLEAN, BASE_NONE, NULL, 0,
9355 "BOOLEAN", HFILL }},
9356 { &hf_z3950_compSpec_generic,
9357 { "generic", "z3950.generic_element",
9358 FT_NONE, BASE_NONE, NULL, 0,
9359 "Specification", HFILL }},
9360 { &hf_z3950_dbSpecific,
9361 { "dbSpecific", "z3950.dbSpecific",
9362 FT_UINT32, BASE_DEC, NULL, 0,
9363 NULL, HFILL }},
9364 { &hf_z3950_dbSpecific_item,
9365 { "dbSpecific item", "z3950.dbSpecific_item_element",
9366 FT_NONE, BASE_NONE, NULL, 0,
9367 NULL, HFILL }},
9368 { &hf_z3950_db,
9369 { "db", "z3950.db",
9370 FT_STRING, BASE_NONE, NULL, 0,
9371 "DatabaseName", HFILL }},
9372 { &hf_z3950_spec,
9373 { "spec", "z3950.spec_element",
9374 FT_NONE, BASE_NONE, NULL, 0,
9375 "Specification", HFILL }},
9376 { &hf_z3950_compSpec_recordSyntax,
9377 { "recordSyntax", "z3950.recordSyntax",
9378 FT_UINT32, BASE_DEC, NULL, 0,
9379 "T_compSpec_recordSyntax", HFILL }},
9380 { &hf_z3950_compSpec_recordSyntax_item,
9381 { "recordSyntax item", "z3950.recordSyntax_item",
9382 FT_OID, BASE_NONE, NULL, 0,
9383 "OBJECT_IDENTIFIER", HFILL }},
9384 { &hf_z3950_schema,
9385 { "schema", "z3950.schema",
9386 FT_OID, BASE_NONE, NULL, 0,
9387 "OBJECT_IDENTIFIER", HFILL }},
9388 { &hf_z3950_specification_elementSpec,
9389 { "elementSpec", "z3950.elementSpec",
9390 FT_UINT32, BASE_DEC, VALS(z3950_T_specification_elementSpec_vals), 0,
9391 "T_specification_elementSpec", HFILL }},
9392 { &hf_z3950_elementSetName,
9393 { "elementSetName", "z3950.elementSetName",
9394 FT_STRING, BASE_NONE, NULL, 0,
9395 "InternationalString", HFILL }},
9396 { &hf_z3950_externalEspec,
9397 { "externalEspec", "z3950.externalEspec_element",
9398 FT_NONE, BASE_NONE, NULL, 0,
9399 "EXTERNAL", HFILL }},
9400 { &hf_z3950_deleteFunction,
9401 { "deleteFunction", "z3950.deleteFunction",
9402 FT_INT32, BASE_DEC, VALS(z3950_T_deleteFunction_vals), 0,
9403 NULL, HFILL }},
9404 { &hf_z3950_resultSetList,
9405 { "resultSetList", "z3950.resultSetList",
9406 FT_UINT32, BASE_DEC, NULL, 0,
9407 "SEQUENCE_OF_ResultSetId", HFILL }},
9408 { &hf_z3950_resultSetList_item,
9409 { "ResultSetId", "z3950.ResultSetId",
9410 FT_STRING, BASE_NONE, NULL, 0,
9411 NULL, HFILL }},
9412 { &hf_z3950_deleteOperationStatus,
9413 { "deleteOperationStatus", "z3950.deleteOperationStatus",
9414 FT_INT32, BASE_DEC, VALS(z3950_DeleteSetStatus_U_vals), 0,
9415 "DeleteSetStatus", HFILL }},
9416 { &hf_z3950_deleteListStatuses,
9417 { "deleteListStatuses", "z3950.deleteListStatuses",
9418 FT_UINT32, BASE_DEC, NULL, 0,
9419 "ListStatuses", HFILL }},
9420 { &hf_z3950_numberNotDeleted,
9421 { "numberNotDeleted", "z3950.numberNotDeleted",
9422 FT_INT32, BASE_DEC, NULL, 0,
9423 "INTEGER", HFILL }},
9424 { &hf_z3950_bulkStatuses,
9425 { "bulkStatuses", "z3950.bulkStatuses",
9426 FT_UINT32, BASE_DEC, NULL, 0,
9427 "ListStatuses", HFILL }},
9428 { &hf_z3950_deleteMessage,
9429 { "deleteMessage", "z3950.deleteMessage",
9430 FT_STRING, BASE_NONE, NULL, 0,
9431 "InternationalString", HFILL }},
9432 { &hf_z3950_ListStatuses_item,
9433 { "ListStatuses item", "z3950.ListStatuses_item_element",
9434 FT_NONE, BASE_NONE, NULL, 0,
9435 NULL, HFILL }},
9436 { &hf_z3950_listStatuses_id,
9437 { "id", "z3950.id",
9438 FT_STRING, BASE_NONE, NULL, 0,
9439 "ResultSetId", HFILL }},
9440 { &hf_z3950_status,
9441 { "status", "z3950.status",
9442 FT_INT32, BASE_DEC, VALS(z3950_DeleteSetStatus_U_vals), 0,
9443 "DeleteSetStatus", HFILL }},
9444 { &hf_z3950_securityChallenge,
9445 { "securityChallenge", "z3950.securityChallenge",
9446 FT_UINT32, BASE_DEC, VALS(z3950_T_securityChallenge_vals), 0,
9447 NULL, HFILL }},
9448 { &hf_z3950_simpleForm,
9449 { "simpleForm", "z3950.simpleForm",
9450 FT_BYTES, BASE_NONE, NULL, 0,
9451 "OCTET_STRING", HFILL }},
9452 { &hf_z3950_securityChallengeResponse,
9453 { "securityChallengeResponse", "z3950.securityChallengeResponse",
9454 FT_UINT32, BASE_DEC, VALS(z3950_T_securityChallengeResponse_vals), 0,
9455 NULL, HFILL }},
9456 { &hf_z3950_diagnostic,
9457 { "diagnostic", "z3950.diagnostic",
9458 FT_UINT32, BASE_DEC, VALS(z3950_DiagRec_vals), 0,
9459 "DiagRec", HFILL }},
9460 { &hf_z3950_suspendedFlag,
9461 { "suspendedFlag", "z3950.suspendedFlag",
9462 FT_BOOLEAN, BASE_NONE, NULL, 0,
9463 "BOOLEAN", HFILL }},
9464 { &hf_z3950_resourceReport,
9465 { "resourceReport", "z3950.resourceReport_element",
9466 FT_NONE, BASE_NONE, NULL, 0,
9467 NULL, HFILL }},
9468 { &hf_z3950_partialResultsAvailable,
9469 { "partialResultsAvailable", "z3950.partialResultsAvailable",
9470 FT_INT32, BASE_DEC, VALS(z3950_T_partialResultsAvailable_vals), 0,
9471 NULL, HFILL }},
9472 { &hf_z3950_resourceControlRequest_responseRequired,
9473 { "responseRequired", "z3950.responseRequired",
9474 FT_BOOLEAN, BASE_NONE, NULL, 0,
9475 "BOOLEAN", HFILL }},
9476 { &hf_z3950_triggeredRequestFlag,
9477 { "triggeredRequestFlag", "z3950.triggeredRequestFlag",
9478 FT_BOOLEAN, BASE_NONE, NULL, 0,
9479 "BOOLEAN", HFILL }},
9480 { &hf_z3950_continueFlag,
9481 { "continueFlag", "z3950.continueFlag",
9482 FT_BOOLEAN, BASE_NONE, NULL, 0,
9483 "BOOLEAN", HFILL }},
9484 { &hf_z3950_resultSetWanted,
9485 { "resultSetWanted", "z3950.resultSetWanted",
9486 FT_BOOLEAN, BASE_NONE, NULL, 0,
9487 "BOOLEAN", HFILL }},
9488 { &hf_z3950_requestedAction,
9489 { "requestedAction", "z3950.requestedAction",
9490 FT_INT32, BASE_DEC, VALS(z3950_T_requestedAction_vals), 0,
9491 NULL, HFILL }},
9492 { &hf_z3950_prefResourceReportFormat,
9493 { "prefResourceReportFormat", "z3950.prefResourceReportFormat",
9494 FT_OID, BASE_NONE, NULL, 0,
9495 "ResourceReportId", HFILL }},
9496 { &hf_z3950_opId,
9497 { "opId", "z3950.opId",
9498 FT_BYTES, BASE_NONE, NULL, 0,
9499 "ReferenceId", HFILL }},
9500 { &hf_z3950_resourceReportStatus,
9501 { "resourceReportStatus", "z3950.resourceReportStatus",
9502 FT_INT32, BASE_DEC, VALS(z3950_T_resourceReportStatus_vals), 0,
9503 NULL, HFILL }},
9504 { &hf_z3950_termListAndStartPoint,
9505 { "termListAndStartPoint", "z3950.termListAndStartPoint_element",
9506 FT_NONE, BASE_NONE, NULL, 0,
9507 "AttributesPlusTerm", HFILL }},
9508 { &hf_z3950_stepSize,
9509 { "stepSize", "z3950.stepSize",
9510 FT_INT32, BASE_DEC, NULL, 0,
9511 "INTEGER", HFILL }},
9512 { &hf_z3950_numberOfTermsRequested,
9513 { "numberOfTermsRequested", "z3950.numberOfTermsRequested",
9514 FT_INT32, BASE_DEC, NULL, 0,
9515 "INTEGER", HFILL }},
9516 { &hf_z3950_preferredPositionInResponse,
9517 { "preferredPositionInResponse", "z3950.preferredPositionInResponse",
9518 FT_INT32, BASE_DEC, NULL, 0,
9519 "INTEGER", HFILL }},
9520 { &hf_z3950_scanStatus,
9521 { "scanStatus", "z3950.scanStatus",
9522 FT_INT32, BASE_DEC, VALS(z3950_T_scanStatus_vals), 0,
9523 NULL, HFILL }},
9524 { &hf_z3950_numberOfEntriesReturned,
9525 { "numberOfEntriesReturned", "z3950.numberOfEntriesReturned",
9526 FT_INT32, BASE_DEC, NULL, 0,
9527 "INTEGER", HFILL }},
9528 { &hf_z3950_positionOfTerm,
9529 { "positionOfTerm", "z3950.positionOfTerm",
9530 FT_INT32, BASE_DEC, NULL, 0,
9531 "INTEGER", HFILL }},
9532 { &hf_z3950_scanResponse_entries,
9533 { "entries", "z3950.entries_element",
9534 FT_NONE, BASE_NONE, NULL, 0,
9535 "ListEntries", HFILL }},
9536 { &hf_z3950_listEntries_entries,
9537 { "entries", "z3950.entries",
9538 FT_UINT32, BASE_DEC, NULL, 0,
9539 "SEQUENCE_OF_Entry", HFILL }},
9540 { &hf_z3950_listEntries_entries_item,
9541 { "Entry", "z3950.Entry",
9542 FT_UINT32, BASE_DEC, VALS(z3950_Entry_vals), 0,
9543 NULL, HFILL }},
9544 { &hf_z3950_nonsurrogateDiagnostics,
9545 { "nonsurrogateDiagnostics", "z3950.nonsurrogateDiagnostics",
9546 FT_UINT32, BASE_DEC, NULL, 0,
9547 "SEQUENCE_OF_DiagRec", HFILL }},
9548 { &hf_z3950_nonsurrogateDiagnostics_item,
9549 { "DiagRec", "z3950.DiagRec",
9550 FT_UINT32, BASE_DEC, VALS(z3950_DiagRec_vals), 0,
9551 NULL, HFILL }},
9552 { &hf_z3950_termInfo,
9553 { "termInfo", "z3950.termInfo_element",
9554 FT_NONE, BASE_NONE, NULL, 0,
9555 NULL, HFILL }},
9556 { &hf_z3950_displayTerm,
9557 { "displayTerm", "z3950.displayTerm",
9558 FT_STRING, BASE_NONE, NULL, 0,
9559 "InternationalString", HFILL }},
9560 { &hf_z3950_suggestedAttributes,
9561 { "suggestedAttributes", "z3950.suggestedAttributes",
9562 FT_UINT32, BASE_DEC, NULL, 0,
9563 "AttributeList", HFILL }},
9564 { &hf_z3950_alternativeTerm,
9565 { "alternativeTerm", "z3950.alternativeTerm",
9566 FT_UINT32, BASE_DEC, NULL, 0,
9567 "SEQUENCE_OF_AttributesPlusTerm", HFILL }},
9568 { &hf_z3950_alternativeTerm_item,
9569 { "AttributesPlusTerm", "z3950.AttributesPlusTerm_element",
9570 FT_NONE, BASE_NONE, NULL, 0,
9571 NULL, HFILL }},
9572 { &hf_z3950_globalOccurrences,
9573 { "globalOccurrences", "z3950.globalOccurrences",
9574 FT_INT32, BASE_DEC, NULL, 0,
9575 "INTEGER", HFILL }},
9576 { &hf_z3950_byAttributes,
9577 { "byAttributes", "z3950.byAttributes",
9578 FT_UINT32, BASE_DEC, NULL, 0,
9579 "OccurrenceByAttributes", HFILL }},
9580 { &hf_z3950_otherTermInfo,
9581 { "otherTermInfo", "z3950.otherTermInfo",
9582 FT_UINT32, BASE_DEC, NULL, 0,
9583 "OtherInformation", HFILL }},
9584 { &hf_z3950_OccurrenceByAttributes_item,
9585 { "OccurrenceByAttributes item", "z3950.OccurrenceByAttributes_item_element",
9586 FT_NONE, BASE_NONE, NULL, 0,
9587 NULL, HFILL }},
9588 { &hf_z3950_occurrences,
9589 { "occurrences", "z3950.occurrences",
9590 FT_UINT32, BASE_DEC, VALS(z3950_T_occurrences_vals), 0,
9591 NULL, HFILL }},
9592 { &hf_z3950_global,
9593 { "global", "z3950.global",
9594 FT_INT32, BASE_DEC, NULL, 0,
9595 "INTEGER", HFILL }},
9596 { &hf_z3950_byDatabase,
9597 { "byDatabase", "z3950.byDatabase",
9598 FT_UINT32, BASE_DEC, NULL, 0,
9599 NULL, HFILL }},
9600 { &hf_z3950_byDatabase_item,
9601 { "byDatabase item", "z3950.byDatabase_item_element",
9602 FT_NONE, BASE_NONE, NULL, 0,
9603 NULL, HFILL }},
9604 { &hf_z3950_num,
9605 { "num", "z3950.num",
9606 FT_INT32, BASE_DEC, NULL, 0,
9607 "INTEGER", HFILL }},
9608 { &hf_z3950_otherDbInfo,
9609 { "otherDbInfo", "z3950.otherDbInfo",
9610 FT_UINT32, BASE_DEC, NULL, 0,
9611 "OtherInformation", HFILL }},
9612 { &hf_z3950_otherOccurInfo,
9613 { "otherOccurInfo", "z3950.otherOccurInfo",
9614 FT_UINT32, BASE_DEC, NULL, 0,
9615 "OtherInformation", HFILL }},
9616 { &hf_z3950_inputResultSetNames,
9617 { "inputResultSetNames", "z3950.inputResultSetNames",
9618 FT_UINT32, BASE_DEC, NULL, 0,
9619 "SEQUENCE_OF_InternationalString", HFILL }},
9620 { &hf_z3950_inputResultSetNames_item,
9621 { "InternationalString", "z3950.InternationalString",
9622 FT_STRING, BASE_NONE, NULL, 0,
9623 NULL, HFILL }},
9624 { &hf_z3950_sortedResultSetName,
9625 { "sortedResultSetName", "z3950.sortedResultSetName",
9626 FT_STRING, BASE_NONE, NULL, 0,
9627 "InternationalString", HFILL }},
9628 { &hf_z3950_sortSequence,
9629 { "sortSequence", "z3950.sortSequence",
9630 FT_UINT32, BASE_DEC, NULL, 0,
9631 "SEQUENCE_OF_SortKeySpec", HFILL }},
9632 { &hf_z3950_sortSequence_item,
9633 { "SortKeySpec", "z3950.SortKeySpec_element",
9634 FT_NONE, BASE_NONE, NULL, 0,
9635 NULL, HFILL }},
9636 { &hf_z3950_sortStatus,
9637 { "sortStatus", "z3950.sortStatus",
9638 FT_INT32, BASE_DEC, VALS(z3950_T_sortStatus_vals), 0,
9639 NULL, HFILL }},
9640 { &hf_z3950_sort_resultSetStatus,
9641 { "resultSetStatus", "z3950.resultSetStatus",
9642 FT_INT32, BASE_DEC, VALS(z3950_T_sort_resultSetStatus_vals), 0,
9643 "T_sort_resultSetStatus", HFILL }},
9644 { &hf_z3950_diagnostics,
9645 { "diagnostics", "z3950.diagnostics",
9646 FT_UINT32, BASE_DEC, NULL, 0,
9647 "SEQUENCE_OF_DiagRec", HFILL }},
9648 { &hf_z3950_diagnostics_item,
9649 { "DiagRec", "z3950.DiagRec",
9650 FT_UINT32, BASE_DEC, VALS(z3950_DiagRec_vals), 0,
9651 NULL, HFILL }},
9652 { &hf_z3950_sortElement,
9653 { "sortElement", "z3950.sortElement",
9654 FT_UINT32, BASE_DEC, VALS(z3950_SortElement_vals), 0,
9655 NULL, HFILL }},
9656 { &hf_z3950_sortRelation,
9657 { "sortRelation", "z3950.sortRelation",
9658 FT_INT32, BASE_DEC, VALS(z3950_T_sortRelation_vals), 0,
9659 NULL, HFILL }},
9660 { &hf_z3950_caseSensitivity,
9661 { "caseSensitivity", "z3950.caseSensitivity",
9662 FT_INT32, BASE_DEC, VALS(z3950_T_caseSensitivity_vals), 0,
9663 NULL, HFILL }},
9664 { &hf_z3950_missingValueAction,
9665 { "missingValueAction", "z3950.missingValueAction",
9666 FT_UINT32, BASE_DEC, VALS(z3950_T_missingValueAction_vals), 0,
9667 NULL, HFILL }},
9668 { &hf_z3950_abort,
9669 { "abort", "z3950.abort_element",
9670 FT_NONE, BASE_NONE, NULL, 0,
9671 NULL, HFILL }},
9672 { &hf_z3950_missingValueData,
9673 { "missingValueData", "z3950.missingValueData",
9674 FT_BYTES, BASE_NONE, NULL, 0,
9675 "OCTET_STRING", HFILL }},
9676 { &hf_z3950_sortElement_generic,
9677 { "generic", "z3950.generic",
9678 FT_UINT32, BASE_DEC, VALS(z3950_SortKey_vals), 0,
9679 "SortKey", HFILL }},
9680 { &hf_z3950_datbaseSpecific,
9681 { "datbaseSpecific", "z3950.datbaseSpecific",
9682 FT_UINT32, BASE_DEC, NULL, 0,
9683 NULL, HFILL }},
9684 { &hf_z3950_datbaseSpecific_item,
9685 { "datbaseSpecific item", "z3950.datbaseSpecific_item_element",
9686 FT_NONE, BASE_NONE, NULL, 0,
9687 NULL, HFILL }},
9688 { &hf_z3950_databaseName,
9689 { "databaseName", "z3950.databaseName",
9690 FT_STRING, BASE_NONE, NULL, 0,
9691 NULL, HFILL }},
9692 { &hf_z3950_dbSort,
9693 { "dbSort", "z3950.dbSort",
9694 FT_UINT32, BASE_DEC, VALS(z3950_SortKey_vals), 0,
9695 "SortKey", HFILL }},
9696 { &hf_z3950_sortfield,
9697 { "sortfield", "z3950.sortfield",
9698 FT_STRING, BASE_NONE, NULL, 0,
9699 "InternationalString", HFILL }},
9700 { &hf_z3950_sortKey_elementSpec,
9701 { "elementSpec", "z3950.elementSpec_element",
9702 FT_NONE, BASE_NONE, NULL, 0,
9703 "Specification", HFILL }},
9704 { &hf_z3950_sortAttributes,
9705 { "sortAttributes", "z3950.sortAttributes_element",
9706 FT_NONE, BASE_NONE, NULL, 0,
9707 NULL, HFILL }},
9708 { &hf_z3950_sortAttributes_id,
9709 { "id", "z3950.id",
9710 FT_OID, BASE_NONE, NULL, 0,
9711 "AttributeSetId", HFILL }},
9712 { &hf_z3950_sortAttributes_list,
9713 { "list", "z3950.list",
9714 FT_UINT32, BASE_DEC, NULL, 0,
9715 "AttributeList", HFILL }},
9716 { &hf_z3950_function,
9717 { "function", "z3950.function",
9718 FT_INT32, BASE_DEC, VALS(z3950_T_function_vals), 0,
9719 NULL, HFILL }},
9720 { &hf_z3950_packageType,
9721 { "packageType", "z3950.packageType",
9722 FT_OID, BASE_NONE, NULL, 0,
9723 "OBJECT_IDENTIFIER", HFILL }},
9724 { &hf_z3950_packageName,
9725 { "packageName", "z3950.packageName",
9726 FT_STRING, BASE_NONE, NULL, 0,
9727 "InternationalString", HFILL }},
9728 { &hf_z3950_retentionTime,
9729 { "retentionTime", "z3950.retentionTime_element",
9730 FT_NONE, BASE_NONE, NULL, 0,
9731 "IntUnit", HFILL }},
9732 { &hf_z3950_permissions,
9733 { "permissions", "z3950.permissions",
9734 FT_UINT32, BASE_DEC, NULL, 0,
9735 NULL, HFILL }},
9736 { &hf_z3950_extendedServicesRequest_description,
9737 { "description", "z3950.description",
9738 FT_STRING, BASE_NONE, NULL, 0,
9739 "InternationalString", HFILL }},
9740 { &hf_z3950_taskSpecificParameters,
9741 { "taskSpecificParameters", "z3950.taskSpecificParameters_element",
9742 FT_NONE, BASE_NONE, NULL, 0,
9743 "EXTERNAL", HFILL }},
9744 { &hf_z3950_waitAction,
9745 { "waitAction", "z3950.waitAction",
9746 FT_INT32, BASE_DEC, VALS(z3950_T_waitAction_vals), 0,
9747 NULL, HFILL }},
9748 { &hf_z3950_elements,
9749 { "elements", "z3950.elements",
9750 FT_STRING, BASE_NONE, NULL, 0,
9751 "ElementSetName", HFILL }},
9752 { &hf_z3950_operationStatus,
9753 { "operationStatus", "z3950.operationStatus",
9754 FT_INT32, BASE_DEC, VALS(z3950_T_operationStatus_vals), 0,
9755 NULL, HFILL }},
9756 { &hf_z3950_taskPackage,
9757 { "taskPackage", "z3950.taskPackage_element",
9758 FT_NONE, BASE_NONE, NULL, 0,
9759 "EXTERNAL", HFILL }},
9760 { &hf_z3950_Permissions_item,
9761 { "Permissions item", "z3950.Permissions_item_element",
9762 FT_NONE, BASE_NONE, NULL, 0,
9763 NULL, HFILL }},
9764 { &hf_z3950_allowableFunctions,
9765 { "allowableFunctions", "z3950.allowableFunctions",
9766 FT_UINT32, BASE_DEC, NULL, 0,
9767 NULL, HFILL }},
9768 { &hf_z3950_allowableFunctions_item,
9769 { "allowableFunctions item", "z3950.allowableFunctions_item",
9770 FT_INT32, BASE_DEC, VALS(z3950_T_allowableFunctions_item_vals), 0,
9771 NULL, HFILL }},
9772 { &hf_z3950_closeReason,
9773 { "closeReason", "z3950.closeReason",
9774 FT_INT32, BASE_DEC, VALS(z3950_CloseReason_U_vals), 0,
9775 NULL, HFILL }},
9776 { &hf_z3950_diagnosticInformation,
9777 { "diagnosticInformation", "z3950.diagnosticInformation",
9778 FT_STRING, BASE_NONE, NULL, 0,
9779 "InternationalString", HFILL }},
9780 { &hf_z3950_resourceReportFormat,
9781 { "resourceReportFormat", "z3950.resourceReportFormat",
9782 FT_OID, BASE_NONE, NULL, 0,
9783 "ResourceReportId", HFILL }},
9784 { &hf_z3950_otherInformation_item,
9785 { "_untag item", "z3950._untag_item_element",
9786 FT_NONE, BASE_NONE, NULL, 0,
9787 NULL, HFILL }},
9788 { &hf_z3950_category,
9789 { "category", "z3950.category_element",
9790 FT_NONE, BASE_NONE, NULL, 0,
9791 "InfoCategory", HFILL }},
9792 { &hf_z3950_information,
9793 { "information", "z3950.information",
9794 FT_UINT32, BASE_DEC, VALS(z3950_T_information_vals), 0,
9795 NULL, HFILL }},
9796 { &hf_z3950_characterInfo,
9797 { "characterInfo", "z3950.characterInfo",
9798 FT_STRING, BASE_NONE, NULL, 0,
9799 "InternationalString", HFILL }},
9800 { &hf_z3950_binaryInfo,
9801 { "binaryInfo", "z3950.binaryInfo",
9802 FT_BYTES, BASE_NONE, NULL, 0,
9803 "OCTET_STRING", HFILL }},
9804 { &hf_z3950_externallyDefinedInfo,
9805 { "externallyDefinedInfo", "z3950.externallyDefinedInfo_element",
9806 FT_NONE, BASE_NONE, NULL, 0,
9807 "EXTERNAL", HFILL }},
9808 { &hf_z3950_categoryTypeId,
9809 { "categoryTypeId", "z3950.categoryTypeId",
9810 FT_OID, BASE_NONE, NULL, 0,
9811 "OBJECT_IDENTIFIER", HFILL }},
9812 { &hf_z3950_categoryValue,
9813 { "categoryValue", "z3950.categoryValue",
9814 FT_INT32, BASE_DEC, NULL, 0,
9815 "INTEGER", HFILL }},
9816 { &hf_z3950_value,
9817 { "value", "z3950.value",
9818 FT_INT32, BASE_DEC, NULL, 0,
9819 "INTEGER", HFILL }},
9820 { &hf_z3950_unitUsed,
9821 { "unitUsed", "z3950.unitUsed_element",
9822 FT_NONE, BASE_NONE, NULL, 0,
9823 "Unit", HFILL }},
9824 { &hf_z3950_unitSystem,
9825 { "unitSystem", "z3950.unitSystem",
9826 FT_STRING, BASE_NONE, NULL, 0,
9827 "InternationalString", HFILL }},
9828 { &hf_z3950_unitType,
9829 { "unitType", "z3950.unitType",
9830 FT_UINT32, BASE_DEC, VALS(z3950_StringOrNumeric_vals), 0,
9831 "StringOrNumeric", HFILL }},
9832 { &hf_z3950_unit,
9833 { "unit", "z3950.unit",
9834 FT_UINT32, BASE_DEC, VALS(z3950_StringOrNumeric_vals), 0,
9835 "StringOrNumeric", HFILL }},
9836 { &hf_z3950_scaleFactor,
9837 { "scaleFactor", "z3950.scaleFactor",
9838 FT_INT32, BASE_DEC, NULL, 0,
9839 "INTEGER", HFILL }},
9840 { &hf_z3950_string,
9841 { "string", "z3950.string",
9842 FT_STRING, BASE_NONE, NULL, 0,
9843 "InternationalString", HFILL }},
9844 { &hf_z3950_motd,
9845 { "motd", "z3950.motd",
9846 FT_STRING, BASE_NONE, NULL, 0,
9847 "VisibleString", HFILL }},
9848 { &hf_z3950_dblist,
9849 { "dblist", "z3950.dblist",
9850 FT_UINT32, BASE_DEC, NULL, 0,
9851 "SEQUENCE_OF_DBName", HFILL }},
9852 { &hf_z3950_dblist_item,
9853 { "DBName", "z3950.DBName",
9854 FT_STRING, BASE_NONE, NULL, 0,
9855 NULL, HFILL }},
9856 { &hf_z3950_failReason,
9857 { "failReason", "z3950.failReason",
9858 FT_BOOLEAN, BASE_NONE, NULL, 0,
9859 "BOOLEAN", HFILL }},
9860 { &hf_z3950_oCLC_UserInformation_text,
9861 { "text", "z3950.text",
9862 FT_STRING, BASE_NONE, NULL, 0,
9863 "VisibleString", HFILL }},
9864 { &hf_z3950_bibliographicRecord,
9865 { "bibliographicRecord", "z3950.bibliographicRecord_element",
9866 FT_NONE, BASE_NONE, NULL, 0,
9867 "EXTERNAL", HFILL }},
9868 { &hf_z3950_holdingsData,
9869 { "holdingsData", "z3950.holdingsData",
9870 FT_UINT32, BASE_DEC, NULL, 0,
9871 "SEQUENCE_OF_HoldingsRecord", HFILL }},
9872 { &hf_z3950_holdingsData_item,
9873 { "HoldingsRecord", "z3950.HoldingsRecord",
9874 FT_UINT32, BASE_DEC, VALS(z3950_HoldingsRecord_vals), 0,
9875 NULL, HFILL }},
9876 { &hf_z3950_marcHoldingsRecord,
9877 { "marcHoldingsRecord", "z3950.marcHoldingsRecord_element",
9878 FT_NONE, BASE_NONE, NULL, 0,
9879 "EXTERNAL", HFILL }},
9880 { &hf_z3950_holdingsAndCirc,
9881 { "holdingsAndCirc", "z3950.holdingsAndCirc_element",
9882 FT_NONE, BASE_NONE, NULL, 0,
9883 "HoldingsAndCircData", HFILL }},
9884 { &hf_z3950_typeOfRecord,
9885 { "typeOfRecord", "z3950.typeOfRecord",
9886 FT_STRING, BASE_NONE, NULL, 0,
9887 "InternationalString", HFILL }},
9888 { &hf_z3950_encodingLevel,
9889 { "encodingLevel", "z3950.encodingLevel",
9890 FT_STRING, BASE_NONE, NULL, 0,
9891 "InternationalString", HFILL }},
9892 { &hf_z3950_format,
9893 { "format", "z3950.format",
9894 FT_STRING, BASE_NONE, NULL, 0,
9895 "InternationalString", HFILL }},
9896 { &hf_z3950_receiptAcqStatus,
9897 { "receiptAcqStatus", "z3950.receiptAcqStatus",
9898 FT_STRING, BASE_NONE, NULL, 0,
9899 "InternationalString", HFILL }},
9900 { &hf_z3950_generalRetention,
9901 { "generalRetention", "z3950.generalRetention",
9902 FT_STRING, BASE_NONE, NULL, 0,
9903 "InternationalString", HFILL }},
9904 { &hf_z3950_completeness,
9905 { "completeness", "z3950.completeness",
9906 FT_STRING, BASE_NONE, NULL, 0,
9907 "InternationalString", HFILL }},
9908 { &hf_z3950_dateOfReport,
9909 { "dateOfReport", "z3950.dateOfReport",
9910 FT_STRING, BASE_NONE, NULL, 0,
9911 "InternationalString", HFILL }},
9912 { &hf_z3950_nucCode,
9913 { "nucCode", "z3950.nucCode",
9914 FT_STRING, BASE_NONE, NULL, 0,
9915 "InternationalString", HFILL }},
9916 { &hf_z3950_localLocation,
9917 { "localLocation", "z3950.localLocation",
9918 FT_STRING, BASE_NONE, NULL, 0,
9919 "InternationalString", HFILL }},
9920 { &hf_z3950_shelvingLocation,
9921 { "shelvingLocation", "z3950.shelvingLocation",
9922 FT_STRING, BASE_NONE, NULL, 0,
9923 "InternationalString", HFILL }},
9924 { &hf_z3950_callNumber,
9925 { "callNumber", "z3950.callNumber",
9926 FT_STRING, BASE_NONE, NULL, 0,
9927 "InternationalString", HFILL }},
9928 { &hf_z3950_shelvingData,
9929 { "shelvingData", "z3950.shelvingData",
9930 FT_STRING, BASE_NONE, NULL, 0,
9931 "InternationalString", HFILL }},
9932 { &hf_z3950_copyNumber,
9933 { "copyNumber", "z3950.copyNumber",
9934 FT_STRING, BASE_NONE, NULL, 0,
9935 "InternationalString", HFILL }},
9936 { &hf_z3950_publicNote,
9937 { "publicNote", "z3950.publicNote",
9938 FT_STRING, BASE_NONE, NULL, 0,
9939 "InternationalString", HFILL }},
9940 { &hf_z3950_reproductionNote,
9941 { "reproductionNote", "z3950.reproductionNote",
9942 FT_STRING, BASE_NONE, NULL, 0,
9943 "InternationalString", HFILL }},
9944 { &hf_z3950_termsUseRepro,
9945 { "termsUseRepro", "z3950.termsUseRepro",
9946 FT_STRING, BASE_NONE, NULL, 0,
9947 "InternationalString", HFILL }},
9948 { &hf_z3950_enumAndChron,
9949 { "enumAndChron", "z3950.enumAndChron",
9950 FT_STRING, BASE_NONE, NULL, 0,
9951 "InternationalString", HFILL }},
9952 { &hf_z3950_volumes,
9953 { "volumes", "z3950.volumes",
9954 FT_UINT32, BASE_DEC, NULL, 0,
9955 "SEQUENCE_OF_Volume", HFILL }},
9956 { &hf_z3950_volumes_item,
9957 { "Volume", "z3950.Volume_element",
9958 FT_NONE, BASE_NONE, NULL, 0,
9959 NULL, HFILL }},
9960 { &hf_z3950_circulationData,
9961 { "circulationData", "z3950.circulationData",
9962 FT_UINT32, BASE_DEC, NULL, 0,
9963 "SEQUENCE_OF_CircRecord", HFILL }},
9964 { &hf_z3950_circulationData_item,
9965 { "CircRecord", "z3950.CircRecord_element",
9966 FT_NONE, BASE_NONE, NULL, 0,
9967 NULL, HFILL }},
9968 { &hf_z3950_enumeration,
9969 { "enumeration", "z3950.enumeration",
9970 FT_STRING, BASE_NONE, NULL, 0,
9971 "InternationalString", HFILL }},
9972 { &hf_z3950_chronology,
9973 { "chronology", "z3950.chronology",
9974 FT_STRING, BASE_NONE, NULL, 0,
9975 "InternationalString", HFILL }},
9976 { &hf_z3950_availableNow,
9977 { "availableNow", "z3950.availableNow",
9978 FT_BOOLEAN, BASE_NONE, NULL, 0,
9979 "BOOLEAN", HFILL }},
9980 { &hf_z3950_availablityDate,
9981 { "availablityDate", "z3950.availablityDate",
9982 FT_STRING, BASE_NONE, NULL, 0,
9983 "InternationalString", HFILL }},
9984 { &hf_z3950_availableThru,
9985 { "availableThru", "z3950.availableThru",
9986 FT_STRING, BASE_NONE, NULL, 0,
9987 "InternationalString", HFILL }},
9988 { &hf_z3950_circRecord_restrictions,
9989 { "restrictions", "z3950.restrictions",
9990 FT_STRING, BASE_NONE, NULL, 0,
9991 "InternationalString", HFILL }},
9992 { &hf_z3950_itemId,
9993 { "itemId", "z3950.itemId",
9994 FT_STRING, BASE_NONE, NULL, 0,
9995 "InternationalString", HFILL }},
9996 { &hf_z3950_renewable,
9997 { "renewable", "z3950.renewable",
9998 FT_BOOLEAN, BASE_NONE, NULL, 0,
9999 "BOOLEAN", HFILL }},
10000 { &hf_z3950_onHold,
10001 { "onHold", "z3950.onHold",
10002 FT_BOOLEAN, BASE_NONE, NULL, 0,
10003 "BOOLEAN", HFILL }},
10004 { &hf_z3950_midspine,
10005 { "midspine", "z3950.midspine",
10006 FT_STRING, BASE_NONE, NULL, 0,
10007 "InternationalString", HFILL }},
10008 { &hf_z3950_temporaryLocation,
10009 { "temporaryLocation", "z3950.temporaryLocation",
10010 FT_STRING, BASE_NONE, NULL, 0,
10011 "InternationalString", HFILL }},
10012 { &hf_z3950_DiagnosticFormat_item,
10013 { "DiagnosticFormat item", "z3950.DiagnosticFormat_item_element",
10014 FT_NONE, BASE_NONE, NULL, 0,
10015 NULL, HFILL }},
10016 { &hf_z3950_diagnosticFormat_item_diagnostic,
10017 { "diagnostic", "z3950.diagnostic",
10018 FT_UINT32, BASE_DEC, VALS(z3950_T_diagnosticFormat_item_diagnostic_vals), 0,
10019 "T_diagnosticFormat_item_diagnostic", HFILL }},
10020 { &hf_z3950_defaultDiagRec,
10021 { "defaultDiagRec", "z3950.defaultDiagRec_element",
10022 FT_NONE, BASE_NONE, NULL, 0,
10023 "DefaultDiagFormat", HFILL }},
10024 { &hf_z3950_explicitDiagnostic,
10025 { "explicitDiagnostic", "z3950.explicitDiagnostic",
10026 FT_UINT32, BASE_DEC, VALS(z3950_DiagFormat_vals), 0,
10027 "DiagFormat", HFILL }},
10028 { &hf_z3950_message,
10029 { "message", "z3950.message",
10030 FT_STRING, BASE_NONE, NULL, 0,
10031 "InternationalString", HFILL }},
10032 { &hf_z3950_tooMany,
10033 { "tooMany", "z3950.tooMany_element",
10034 FT_NONE, BASE_NONE, NULL, 0,
10035 NULL, HFILL }},
10036 { &hf_z3950_tooManyWhat,
10037 { "tooManyWhat", "z3950.tooManyWhat",
10038 FT_INT32, BASE_DEC, VALS(z3950_T_tooManyWhat_vals), 0,
10039 NULL, HFILL }},
10040 { &hf_z3950_max,
10041 { "max", "z3950.max",
10042 FT_INT32, BASE_DEC, NULL, 0,
10043 "INTEGER", HFILL }},
10044 { &hf_z3950_badSpec,
10045 { "badSpec", "z3950.badSpec_element",
10046 FT_NONE, BASE_NONE, NULL, 0,
10047 NULL, HFILL }},
10048 { &hf_z3950_goodOnes,
10049 { "goodOnes", "z3950.goodOnes",
10050 FT_UINT32, BASE_DEC, NULL, 0,
10051 "SEQUENCE_OF_Specification", HFILL }},
10052 { &hf_z3950_goodOnes_item,
10053 { "Specification", "z3950.Specification_element",
10054 FT_NONE, BASE_NONE, NULL, 0,
10055 NULL, HFILL }},
10056 { &hf_z3950_dbUnavail,
10057 { "dbUnavail", "z3950.dbUnavail_element",
10058 FT_NONE, BASE_NONE, NULL, 0,
10059 NULL, HFILL }},
10060 { &hf_z3950_why,
10061 { "why", "z3950.why_element",
10062 FT_NONE, BASE_NONE, NULL, 0,
10063 NULL, HFILL }},
10064 { &hf_z3950_reasonCode,
10065 { "reasonCode", "z3950.reasonCode",
10066 FT_INT32, BASE_DEC, VALS(z3950_T_reasonCode_vals), 0,
10067 NULL, HFILL }},
10068 { &hf_z3950_unSupOp,
10069 { "unSupOp", "z3950.unSupOp",
10070 FT_INT32, BASE_DEC, VALS(z3950_T_unSupOp_vals), 0,
10071 NULL, HFILL }},
10072 { &hf_z3950_attribute,
10073 { "attribute", "z3950.attribute_element",
10074 FT_NONE, BASE_NONE, NULL, 0,
10075 NULL, HFILL }},
10076 { &hf_z3950_id,
10077 { "id", "z3950.id",
10078 FT_OID, BASE_NONE, NULL, 0,
10079 "OBJECT_IDENTIFIER", HFILL }},
10080 { &hf_z3950_type,
10081 { "type", "z3950.type",
10082 FT_INT32, BASE_DEC, NULL, 0,
10083 "INTEGER", HFILL }},
10084 { &hf_z3950_attCombo,
10085 { "attCombo", "z3950.attCombo_element",
10086 FT_NONE, BASE_NONE, NULL, 0,
10087 NULL, HFILL }},
10088 { &hf_z3950_unsupportedCombination,
10089 { "unsupportedCombination", "z3950.unsupportedCombination",
10090 FT_UINT32, BASE_DEC, NULL, 0,
10091 "AttributeList", HFILL }},
10092 { &hf_z3950_recommendedAlternatives,
10093 { "recommendedAlternatives", "z3950.recommendedAlternatives",
10094 FT_UINT32, BASE_DEC, NULL, 0,
10095 "SEQUENCE_OF_AttributeList", HFILL }},
10096 { &hf_z3950_recommendedAlternatives_item,
10097 { "AttributeList", "z3950.AttributeList",
10098 FT_UINT32, BASE_DEC, NULL, 0,
10099 NULL, HFILL }},
10100 { &hf_z3950_diagFormat_term,
10101 { "term", "z3950.term_element",
10102 FT_NONE, BASE_NONE, NULL, 0,
10103 "T_diagFormat_term", HFILL }},
10104 { &hf_z3950_problem,
10105 { "problem", "z3950.problem",
10106 FT_INT32, BASE_DEC, VALS(z3950_T_problem_vals), 0,
10107 NULL, HFILL }},
10108 { &hf_z3950_diagFormat_proximity,
10109 { "proximity", "z3950.proximity",
10110 FT_UINT32, BASE_DEC, VALS(z3950_T_diagFormat_proximity_vals), 0,
10111 "T_diagFormat_proximity", HFILL }},
10112 { &hf_z3950_resultSets,
10113 { "resultSets", "z3950.resultSets_element",
10114 FT_NONE, BASE_NONE, NULL, 0,
10115 NULL, HFILL }},
10116 { &hf_z3950_badSet,
10117 { "badSet", "z3950.badSet",
10118 FT_STRING, BASE_NONE, NULL, 0,
10119 "InternationalString", HFILL }},
10120 { &hf_z3950_relation,
10121 { "relation", "z3950.relation",
10122 FT_INT32, BASE_DEC, NULL, 0,
10123 "INTEGER", HFILL }},
10124 { &hf_z3950_diagFormat_proximity_unit,
10125 { "unit", "z3950.unit",
10126 FT_INT32, BASE_DEC, NULL, 0,
10127 "INTEGER", HFILL }},
10128 { &hf_z3950_diagFormat_proximity_ordered,
10129 { "ordered", "z3950.ordered_element",
10130 FT_NONE, BASE_NONE, NULL, 0,
10131 NULL, HFILL }},
10132 { &hf_z3950_diagFormat_proximity_exclusion,
10133 { "exclusion", "z3950.exclusion_element",
10134 FT_NONE, BASE_NONE, NULL, 0,
10135 NULL, HFILL }},
10136 { &hf_z3950_scan,
10137 { "scan", "z3950.scan",
10138 FT_UINT32, BASE_DEC, VALS(z3950_T_scan_vals), 0,
10139 NULL, HFILL }},
10140 { &hf_z3950_nonZeroStepSize,
10141 { "nonZeroStepSize", "z3950.nonZeroStepSize_element",
10142 FT_NONE, BASE_NONE, NULL, 0,
10143 NULL, HFILL }},
10144 { &hf_z3950_specifiedStepSize,
10145 { "specifiedStepSize", "z3950.specifiedStepSize_element",
10146 FT_NONE, BASE_NONE, NULL, 0,
10147 NULL, HFILL }},
10148 { &hf_z3950_termList1,
10149 { "termList1", "z3950.termList1_element",
10150 FT_NONE, BASE_NONE, NULL, 0,
10151 NULL, HFILL }},
10152 { &hf_z3950_termList2,
10153 { "termList2", "z3950.termList2",
10154 FT_UINT32, BASE_DEC, NULL, 0,
10155 "SEQUENCE_OF_AttributeList", HFILL }},
10156 { &hf_z3950_termList2_item,
10157 { "AttributeList", "z3950.AttributeList",
10158 FT_UINT32, BASE_DEC, NULL, 0,
10159 NULL, HFILL }},
10160 { &hf_z3950_posInResponse,
10161 { "posInResponse", "z3950.posInResponse",
10162 FT_INT32, BASE_DEC, VALS(z3950_T_posInResponse_vals), 0,
10163 NULL, HFILL }},
10164 { &hf_z3950_resources,
10165 { "resources", "z3950.resources_element",
10166 FT_NONE, BASE_NONE, NULL, 0,
10167 NULL, HFILL }},
10168 { &hf_z3950_endOfList,
10169 { "endOfList", "z3950.endOfList_element",
10170 FT_NONE, BASE_NONE, NULL, 0,
10171 NULL, HFILL }},
10172 { &hf_z3950_sort,
10173 { "sort", "z3950.sort",
10174 FT_UINT32, BASE_DEC, VALS(z3950_T_sort_vals), 0,
10175 NULL, HFILL }},
10176 { &hf_z3950_sequence,
10177 { "sequence", "z3950.sequence_element",
10178 FT_NONE, BASE_NONE, NULL, 0,
10179 NULL, HFILL }},
10180 { &hf_z3950_noRsName,
10181 { "noRsName", "z3950.noRsName_element",
10182 FT_NONE, BASE_NONE, NULL, 0,
10183 NULL, HFILL }},
10184 { &hf_z3950_diagFormat_sort_tooMany,
10185 { "tooMany", "z3950.tooMany",
10186 FT_INT32, BASE_DEC, NULL, 0,
10187 "INTEGER", HFILL }},
10188 { &hf_z3950_incompatible,
10189 { "incompatible", "z3950.incompatible_element",
10190 FT_NONE, BASE_NONE, NULL, 0,
10191 NULL, HFILL }},
10192 { &hf_z3950_generic,
10193 { "generic", "z3950.generic_element",
10194 FT_NONE, BASE_NONE, NULL, 0,
10195 NULL, HFILL }},
10196 { &hf_z3950_diagFormat_sort_dbSpecific,
10197 { "dbSpecific", "z3950.dbSpecific_element",
10198 FT_NONE, BASE_NONE, NULL, 0,
10199 NULL, HFILL }},
10200 { &hf_z3950_key,
10201 { "key", "z3950.key",
10202 FT_INT32, BASE_DEC, VALS(z3950_T_key_vals), 0,
10203 NULL, HFILL }},
10204 { &hf_z3950_action,
10205 { "action", "z3950.action_element",
10206 FT_NONE, BASE_NONE, NULL, 0,
10207 NULL, HFILL }},
10208 { &hf_z3950_illegal,
10209 { "illegal", "z3950.illegal",
10210 FT_INT32, BASE_DEC, VALS(z3950_T_illegal_vals), 0,
10211 NULL, HFILL }},
10212 { &hf_z3950_inputTooLarge,
10213 { "inputTooLarge", "z3950.inputTooLarge",
10214 FT_UINT32, BASE_DEC, NULL, 0,
10215 "SEQUENCE_OF_InternationalString", HFILL }},
10216 { &hf_z3950_inputTooLarge_item,
10217 { "InternationalString", "z3950.InternationalString",
10218 FT_STRING, BASE_NONE, NULL, 0,
10219 NULL, HFILL }},
10220 { &hf_z3950_aggregateTooLarge,
10221 { "aggregateTooLarge", "z3950.aggregateTooLarge_element",
10222 FT_NONE, BASE_NONE, NULL, 0,
10223 NULL, HFILL }},
10224 { &hf_z3950_segmentation,
10225 { "segmentation", "z3950.segmentation",
10226 FT_UINT32, BASE_DEC, VALS(z3950_T_segmentation_vals), 0,
10227 NULL, HFILL }},
10228 { &hf_z3950_segmentCount,
10229 { "segmentCount", "z3950.segmentCount_element",
10230 FT_NONE, BASE_NONE, NULL, 0,
10231 NULL, HFILL }},
10232 { &hf_z3950_segmentSize,
10233 { "segmentSize", "z3950.segmentSize",
10234 FT_INT32, BASE_DEC, NULL, 0,
10235 "INTEGER", HFILL }},
10236 { &hf_z3950_extServices,
10237 { "extServices", "z3950.extServices",
10238 FT_UINT32, BASE_DEC, VALS(z3950_T_extServices_vals), 0,
10239 NULL, HFILL }},
10240 { &hf_z3950_req,
10241 { "req", "z3950.req",
10242 FT_INT32, BASE_DEC, VALS(z3950_T_req_vals), 0,
10243 NULL, HFILL }},
10244 { &hf_z3950_permission,
10245 { "permission", "z3950.permission",
10246 FT_INT32, BASE_DEC, VALS(z3950_T_permission_vals), 0,
10247 NULL, HFILL }},
10248 { &hf_z3950_immediate,
10249 { "immediate", "z3950.immediate",
10250 FT_INT32, BASE_DEC, VALS(z3950_T_immediate_vals), 0,
10251 NULL, HFILL }},
10252 { &hf_z3950_accessCtrl,
10253 { "accessCtrl", "z3950.accessCtrl",
10254 FT_UINT32, BASE_DEC, VALS(z3950_T_accessCtrl_vals), 0,
10255 NULL, HFILL }},
10256 { &hf_z3950_noUser,
10257 { "noUser", "z3950.noUser_element",
10258 FT_NONE, BASE_NONE, NULL, 0,
10259 NULL, HFILL }},
10260 { &hf_z3950_refused,
10261 { "refused", "z3950.refused_element",
10262 FT_NONE, BASE_NONE, NULL, 0,
10263 NULL, HFILL }},
10264 { &hf_z3950_diagFormat_accessCtrl_simple,
10265 { "simple", "z3950.simple_element",
10266 FT_NONE, BASE_NONE, NULL, 0,
10267 NULL, HFILL }},
10268 { &hf_z3950_diagFormat_accessCtrl_oid,
10269 { "oid", "z3950.oid",
10270 FT_UINT32, BASE_DEC, NULL, 0,
10271 "T_diagFormat_accessCtrl_oid", HFILL }},
10272 { &hf_z3950_diagFormat_accessCtrl_oid_item,
10273 { "oid item", "z3950.oid_item",
10274 FT_OID, BASE_NONE, NULL, 0,
10275 "OBJECT_IDENTIFIER", HFILL }},
10276 { &hf_z3950_alternative,
10277 { "alternative", "z3950.alternative",
10278 FT_UINT32, BASE_DEC, NULL, 0,
10279 NULL, HFILL }},
10280 { &hf_z3950_alternative_item,
10281 { "alternative item", "z3950.alternative_item",
10282 FT_OID, BASE_NONE, NULL, 0,
10283 "OBJECT_IDENTIFIER", HFILL }},
10284 { &hf_z3950_pwdInv,
10285 { "pwdInv", "z3950.pwdInv_element",
10286 FT_NONE, BASE_NONE, NULL, 0,
10287 NULL, HFILL }},
10288 { &hf_z3950_pwdExp,
10289 { "pwdExp", "z3950.pwdExp_element",
10290 FT_NONE, BASE_NONE, NULL, 0,
10291 NULL, HFILL }},
10292 { &hf_z3950_diagFormat_recordSyntax,
10293 { "recordSyntax", "z3950.recordSyntax_element",
10294 FT_NONE, BASE_NONE, NULL, 0,
10295 "T_diagFormat_recordSyntax", HFILL }},
10296 { &hf_z3950_unsupportedSyntax,
10297 { "unsupportedSyntax", "z3950.unsupportedSyntax",
10298 FT_OID, BASE_NONE, NULL, 0,
10299 "OBJECT_IDENTIFIER", HFILL }},
10300 { &hf_z3950_suggestedAlternatives,
10301 { "suggestedAlternatives", "z3950.suggestedAlternatives",
10302 FT_UINT32, BASE_DEC, NULL, 0,
10303 NULL, HFILL }},
10304 { &hf_z3950_suggestedAlternatives_item,
10305 { "suggestedAlternatives item", "z3950.suggestedAlternatives_item",
10306 FT_OID, BASE_NONE, NULL, 0,
10307 "OBJECT_IDENTIFIER", HFILL }},
10308 { &hf_z3950_targetInfo,
10309 { "targetInfo", "z3950.targetInfo_element",
10310 FT_NONE, BASE_NONE, NULL, 0,
10311 NULL, HFILL }},
10312 { &hf_z3950_databaseInfo,
10313 { "databaseInfo", "z3950.databaseInfo_element",
10314 FT_NONE, BASE_NONE, NULL, 0,
10315 NULL, HFILL }},
10316 { &hf_z3950_schemaInfo,
10317 { "schemaInfo", "z3950.schemaInfo_element",
10318 FT_NONE, BASE_NONE, NULL, 0,
10319 NULL, HFILL }},
10320 { &hf_z3950_tagSetInfo,
10321 { "tagSetInfo", "z3950.tagSetInfo_element",
10322 FT_NONE, BASE_NONE, NULL, 0,
10323 NULL, HFILL }},
10324 { &hf_z3950_recordSyntaxInfo,
10325 { "recordSyntaxInfo", "z3950.recordSyntaxInfo_element",
10326 FT_NONE, BASE_NONE, NULL, 0,
10327 NULL, HFILL }},
10328 { &hf_z3950_attributeSetInfo,
10329 { "attributeSetInfo", "z3950.attributeSetInfo_element",
10330 FT_NONE, BASE_NONE, NULL, 0,
10331 NULL, HFILL }},
10332 { &hf_z3950_termListInfo,
10333 { "termListInfo", "z3950.termListInfo_element",
10334 FT_NONE, BASE_NONE, NULL, 0,
10335 NULL, HFILL }},
10336 { &hf_z3950_extendedServicesInfo,
10337 { "extendedServicesInfo", "z3950.extendedServicesInfo_element",
10338 FT_NONE, BASE_NONE, NULL, 0,
10339 NULL, HFILL }},
10340 { &hf_z3950_attributeDetails,
10341 { "attributeDetails", "z3950.attributeDetails_element",
10342 FT_NONE, BASE_NONE, NULL, 0,
10343 NULL, HFILL }},
10344 { &hf_z3950_termListDetails,
10345 { "termListDetails", "z3950.termListDetails_element",
10346 FT_NONE, BASE_NONE, NULL, 0,
10347 NULL, HFILL }},
10348 { &hf_z3950_elementSetDetails,
10349 { "elementSetDetails", "z3950.elementSetDetails_element",
10350 FT_NONE, BASE_NONE, NULL, 0,
10351 NULL, HFILL }},
10352 { &hf_z3950_retrievalRecordDetails,
10353 { "retrievalRecordDetails", "z3950.retrievalRecordDetails_element",
10354 FT_NONE, BASE_NONE, NULL, 0,
10355 NULL, HFILL }},
10356 { &hf_z3950_sortDetails,
10357 { "sortDetails", "z3950.sortDetails_element",
10358 FT_NONE, BASE_NONE, NULL, 0,
10359 NULL, HFILL }},
10360 { &hf_z3950_processing,
10361 { "processing", "z3950.processing_element",
10362 FT_NONE, BASE_NONE, NULL, 0,
10363 "ProcessingInformation", HFILL }},
10364 { &hf_z3950_variants,
10365 { "variants", "z3950.variants_element",
10366 FT_NONE, BASE_NONE, NULL, 0,
10367 "VariantSetInfo", HFILL }},
10368 { &hf_z3950_units,
10369 { "units", "z3950.units_element",
10370 FT_NONE, BASE_NONE, NULL, 0,
10371 "UnitInfo", HFILL }},
10372 { &hf_z3950_categoryList,
10373 { "categoryList", "z3950.categoryList_element",
10374 FT_NONE, BASE_NONE, NULL, 0,
10375 NULL, HFILL }},
10376 { &hf_z3950_commonInfo,
10377 { "commonInfo", "z3950.commonInfo_element",
10378 FT_NONE, BASE_NONE, NULL, 0,
10379 NULL, HFILL }},
10380 { &hf_z3950_name,
10381 { "name", "z3950.name",
10382 FT_STRING, BASE_NONE, NULL, 0,
10383 "InternationalString", HFILL }},
10384 { &hf_z3950_recent_news,
10385 { "recent-news", "z3950.recent_news",
10386 FT_UINT32, BASE_DEC, NULL, 0,
10387 "HumanString", HFILL }},
10388 { &hf_z3950_icon,
10389 { "icon", "z3950.icon",
10390 FT_UINT32, BASE_DEC, NULL, 0,
10391 "IconObject", HFILL }},
10392 { &hf_z3950_namedResultSets,
10393 { "namedResultSets", "z3950.namedResultSets",
10394 FT_BOOLEAN, BASE_NONE, NULL, 0,
10395 "BOOLEAN", HFILL }},
10396 { &hf_z3950_multipleDBsearch,
10397 { "multipleDBsearch", "z3950.multipleDBsearch",
10398 FT_BOOLEAN, BASE_NONE, NULL, 0,
10399 "BOOLEAN", HFILL }},
10400 { &hf_z3950_maxResultSets,
10401 { "maxResultSets", "z3950.maxResultSets",
10402 FT_INT32, BASE_DEC, NULL, 0,
10403 "INTEGER", HFILL }},
10404 { &hf_z3950_maxResultSize,
10405 { "maxResultSize", "z3950.maxResultSize",
10406 FT_INT32, BASE_DEC, NULL, 0,
10407 "INTEGER", HFILL }},
10408 { &hf_z3950_maxTerms,
10409 { "maxTerms", "z3950.maxTerms",
10410 FT_INT32, BASE_DEC, NULL, 0,
10411 "INTEGER", HFILL }},
10412 { &hf_z3950_timeoutInterval,
10413 { "timeoutInterval", "z3950.timeoutInterval_element",
10414 FT_NONE, BASE_NONE, NULL, 0,
10415 "IntUnit", HFILL }},
10416 { &hf_z3950_welcomeMessage,
10417 { "welcomeMessage", "z3950.welcomeMessage",
10418 FT_UINT32, BASE_DEC, NULL, 0,
10419 "HumanString", HFILL }},
10420 { &hf_z3950_contactInfo,
10421 { "contactInfo", "z3950.contactInfo_element",
10422 FT_NONE, BASE_NONE, NULL, 0,
10423 NULL, HFILL }},
10424 { &hf_z3950_description,
10425 { "description", "z3950.description",
10426 FT_UINT32, BASE_DEC, NULL, 0,
10427 "HumanString", HFILL }},
10428 { &hf_z3950_nicknames,
10429 { "nicknames", "z3950.nicknames",
10430 FT_UINT32, BASE_DEC, NULL, 0,
10431 "SEQUENCE_OF_InternationalString", HFILL }},
10432 { &hf_z3950_nicknames_item,
10433 { "InternationalString", "z3950.InternationalString",
10434 FT_STRING, BASE_NONE, NULL, 0,
10435 NULL, HFILL }},
10436 { &hf_z3950_usage_restrictions,
10437 { "usage-restrictions", "z3950.usage_restrictions",
10438 FT_UINT32, BASE_DEC, NULL, 0,
10439 "HumanString", HFILL }},
10440 { &hf_z3950_paymentAddr,
10441 { "paymentAddr", "z3950.paymentAddr",
10442 FT_UINT32, BASE_DEC, NULL, 0,
10443 "HumanString", HFILL }},
10444 { &hf_z3950_hours,
10445 { "hours", "z3950.hours",
10446 FT_UINT32, BASE_DEC, NULL, 0,
10447 "HumanString", HFILL }},
10448 { &hf_z3950_dbCombinations,
10449 { "dbCombinations", "z3950.dbCombinations",
10450 FT_UINT32, BASE_DEC, NULL, 0,
10451 "SEQUENCE_OF_DatabaseList", HFILL }},
10452 { &hf_z3950_dbCombinations_item,
10453 { "DatabaseList", "z3950.DatabaseList",
10454 FT_UINT32, BASE_DEC, NULL, 0,
10455 NULL, HFILL }},
10456 { &hf_z3950_addresses,
10457 { "addresses", "z3950.addresses",
10458 FT_UINT32, BASE_DEC, NULL, 0,
10459 "SEQUENCE_OF_NetworkAddress", HFILL }},
10460 { &hf_z3950_addresses_item,
10461 { "NetworkAddress", "z3950.NetworkAddress",
10462 FT_UINT32, BASE_DEC, VALS(z3950_NetworkAddress_vals), 0,
10463 NULL, HFILL }},
10464 { &hf_z3950_languages,
10465 { "languages", "z3950.languages",
10466 FT_UINT32, BASE_DEC, NULL, 0,
10467 "SEQUENCE_OF_InternationalString", HFILL }},
10468 { &hf_z3950_languages_item,
10469 { "InternationalString", "z3950.InternationalString",
10470 FT_STRING, BASE_NONE, NULL, 0,
10471 NULL, HFILL }},
10472 { &hf_z3950_commonAccessInfo,
10473 { "commonAccessInfo", "z3950.commonAccessInfo_element",
10474 FT_NONE, BASE_NONE, NULL, 0,
10475 "AccessInfo", HFILL }},
10476 { &hf_z3950_databaseInfo_name,
10477 { "name", "z3950.name",
10478 FT_STRING, BASE_NONE, NULL, 0,
10479 "DatabaseName", HFILL }},
10480 { &hf_z3950_explainDatabase,
10481 { "explainDatabase", "z3950.explainDatabase_element",
10482 FT_NONE, BASE_NONE, NULL, 0,
10483 NULL, HFILL }},
10484 { &hf_z3950_databaseInfo_nicknames,
10485 { "nicknames", "z3950.nicknames",
10486 FT_UINT32, BASE_DEC, NULL, 0,
10487 "SEQUENCE_OF_DatabaseName", HFILL }},
10488 { &hf_z3950_databaseInfo_nicknames_item,
10489 { "DatabaseName", "z3950.DatabaseName",
10490 FT_STRING, BASE_NONE, NULL, 0,
10491 NULL, HFILL }},
10492 { &hf_z3950_user_fee,
10493 { "user-fee", "z3950.user_fee",
10494 FT_BOOLEAN, BASE_NONE, NULL, 0,
10495 "BOOLEAN", HFILL }},
10496 { &hf_z3950_available,
10497 { "available", "z3950.available",
10498 FT_BOOLEAN, BASE_NONE, NULL, 0,
10499 "BOOLEAN", HFILL }},
10500 { &hf_z3950_titleString,
10501 { "titleString", "z3950.titleString",
10502 FT_UINT32, BASE_DEC, NULL, 0,
10503 "HumanString", HFILL }},
10504 { &hf_z3950_keywords,
10505 { "keywords", "z3950.keywords",
10506 FT_UINT32, BASE_DEC, NULL, 0,
10507 "SEQUENCE_OF_HumanString", HFILL }},
10508 { &hf_z3950_keywords_item,
10509 { "HumanString", "z3950.HumanString",
10510 FT_UINT32, BASE_DEC, NULL, 0,
10511 NULL, HFILL }},
10512 { &hf_z3950_associatedDbs,
10513 { "associatedDbs", "z3950.associatedDbs",
10514 FT_UINT32, BASE_DEC, NULL, 0,
10515 "DatabaseList", HFILL }},
10516 { &hf_z3950_subDbs,
10517 { "subDbs", "z3950.subDbs",
10518 FT_UINT32, BASE_DEC, NULL, 0,
10519 "DatabaseList", HFILL }},
10520 { &hf_z3950_disclaimers,
10521 { "disclaimers", "z3950.disclaimers",
10522 FT_UINT32, BASE_DEC, NULL, 0,
10523 "HumanString", HFILL }},
10524 { &hf_z3950_news,
10525 { "news", "z3950.news",
10526 FT_UINT32, BASE_DEC, NULL, 0,
10527 "HumanString", HFILL }},
10528 { &hf_z3950_recordCount,
10529 { "recordCount", "z3950.recordCount",
10530 FT_UINT32, BASE_DEC, VALS(z3950_T_recordCount_vals), 0,
10531 NULL, HFILL }},
10532 { &hf_z3950_actualNumber,
10533 { "actualNumber", "z3950.actualNumber",
10534 FT_INT32, BASE_DEC, NULL, 0,
10535 "INTEGER", HFILL }},
10536 { &hf_z3950_approxNumber,
10537 { "approxNumber", "z3950.approxNumber",
10538 FT_INT32, BASE_DEC, NULL, 0,
10539 "INTEGER", HFILL }},
10540 { &hf_z3950_defaultOrder,
10541 { "defaultOrder", "z3950.defaultOrder",
10542 FT_UINT32, BASE_DEC, NULL, 0,
10543 "HumanString", HFILL }},
10544 { &hf_z3950_avRecordSize,
10545 { "avRecordSize", "z3950.avRecordSize",
10546 FT_INT32, BASE_DEC, NULL, 0,
10547 "INTEGER", HFILL }},
10548 { &hf_z3950_bestTime,
10549 { "bestTime", "z3950.bestTime",
10550 FT_UINT32, BASE_DEC, NULL, 0,
10551 "HumanString", HFILL }},
10552 { &hf_z3950_lastUpdate,
10553 { "lastUpdate", "z3950.lastUpdate",
10554 FT_STRING, BASE_NONE, NULL, 0,
10555 "GeneralizedTime", HFILL }},
10556 { &hf_z3950_updateInterval,
10557 { "updateInterval", "z3950.updateInterval_element",
10558 FT_NONE, BASE_NONE, NULL, 0,
10559 "IntUnit", HFILL }},
10560 { &hf_z3950_coverage,
10561 { "coverage", "z3950.coverage",
10562 FT_UINT32, BASE_DEC, NULL, 0,
10563 "HumanString", HFILL }},
10564 { &hf_z3950_proprietary,
10565 { "proprietary", "z3950.proprietary",
10566 FT_BOOLEAN, BASE_NONE, NULL, 0,
10567 "BOOLEAN", HFILL }},
10568 { &hf_z3950_copyrightText,
10569 { "copyrightText", "z3950.copyrightText",
10570 FT_UINT32, BASE_DEC, NULL, 0,
10571 "HumanString", HFILL }},
10572 { &hf_z3950_copyrightNotice,
10573 { "copyrightNotice", "z3950.copyrightNotice",
10574 FT_UINT32, BASE_DEC, NULL, 0,
10575 "HumanString", HFILL }},
10576 { &hf_z3950_producerContactInfo,
10577 { "producerContactInfo", "z3950.producerContactInfo_element",
10578 FT_NONE, BASE_NONE, NULL, 0,
10579 "ContactInfo", HFILL }},
10580 { &hf_z3950_supplierContactInfo,
10581 { "supplierContactInfo", "z3950.supplierContactInfo_element",
10582 FT_NONE, BASE_NONE, NULL, 0,
10583 "ContactInfo", HFILL }},
10584 { &hf_z3950_submissionContactInfo,
10585 { "submissionContactInfo", "z3950.submissionContactInfo_element",
10586 FT_NONE, BASE_NONE, NULL, 0,
10587 "ContactInfo", HFILL }},
10588 { &hf_z3950_accessInfo,
10589 { "accessInfo", "z3950.accessInfo_element",
10590 FT_NONE, BASE_NONE, NULL, 0,
10591 NULL, HFILL }},
10592 { &hf_z3950_tagTypeMapping,
10593 { "tagTypeMapping", "z3950.tagTypeMapping",
10594 FT_UINT32, BASE_DEC, NULL, 0,
10595 NULL, HFILL }},
10596 { &hf_z3950_tagTypeMapping_item,
10597 { "tagTypeMapping item", "z3950.tagTypeMapping_item_element",
10598 FT_NONE, BASE_NONE, NULL, 0,
10599 NULL, HFILL }},
10600 { &hf_z3950_tagType,
10601 { "tagType", "z3950.tagType",
10602 FT_INT32, BASE_DEC, NULL, 0,
10603 "INTEGER", HFILL }},
10604 { &hf_z3950_tagSet,
10605 { "tagSet", "z3950.tagSet",
10606 FT_OID, BASE_NONE, NULL, 0,
10607 "OBJECT_IDENTIFIER", HFILL }},
10608 { &hf_z3950_defaultTagType,
10609 { "defaultTagType", "z3950.defaultTagType_element",
10610 FT_NONE, BASE_NONE, NULL, 0,
10611 NULL, HFILL }},
10612 { &hf_z3950_recordStructure,
10613 { "recordStructure", "z3950.recordStructure",
10614 FT_UINT32, BASE_DEC, NULL, 0,
10615 "SEQUENCE_OF_ElementInfo", HFILL }},
10616 { &hf_z3950_recordStructure_item,
10617 { "ElementInfo", "z3950.ElementInfo_element",
10618 FT_NONE, BASE_NONE, NULL, 0,
10619 NULL, HFILL }},
10620 { &hf_z3950_elementName,
10621 { "elementName", "z3950.elementName",
10622 FT_STRING, BASE_NONE, NULL, 0,
10623 "InternationalString", HFILL }},
10624 { &hf_z3950_elementTagPath,
10625 { "elementTagPath", "z3950.elementTagPath",
10626 FT_UINT32, BASE_DEC, NULL, 0,
10627 "Path", HFILL }},
10628 { &hf_z3950_elementInfo_dataType,
10629 { "dataType", "z3950.dataType",
10630 FT_UINT32, BASE_DEC, VALS(z3950_ElementDataType_vals), 0,
10631 "ElementDataType", HFILL }},
10632 { &hf_z3950_required,
10633 { "required", "z3950.required",
10634 FT_BOOLEAN, BASE_NONE, NULL, 0,
10635 "BOOLEAN", HFILL }},
10636 { &hf_z3950_repeatable,
10637 { "repeatable", "z3950.repeatable",
10638 FT_BOOLEAN, BASE_NONE, NULL, 0,
10639 "BOOLEAN", HFILL }},
10640 { &hf_z3950_Path_item,
10641 { "Path item", "z3950.Path_item_element",
10642 FT_NONE, BASE_NONE, NULL, 0,
10643 NULL, HFILL }},
10644 { &hf_z3950_tagValue,
10645 { "tagValue", "z3950.tagValue",
10646 FT_UINT32, BASE_DEC, VALS(z3950_StringOrNumeric_vals), 0,
10647 "StringOrNumeric", HFILL }},
10648 { &hf_z3950_primitive,
10649 { "primitive", "z3950.primitive",
10650 FT_INT32, BASE_DEC, VALS(z3950_PrimitiveDataType_vals), 0,
10651 "PrimitiveDataType", HFILL }},
10652 { &hf_z3950_structured,
10653 { "structured", "z3950.structured",
10654 FT_UINT32, BASE_DEC, NULL, 0,
10655 "SEQUENCE_OF_ElementInfo", HFILL }},
10656 { &hf_z3950_structured_item,
10657 { "ElementInfo", "z3950.ElementInfo_element",
10658 FT_NONE, BASE_NONE, NULL, 0,
10659 NULL, HFILL }},
10660 { &hf_z3950_tagSetInfo_elements,
10661 { "elements", "z3950.elements",
10662 FT_UINT32, BASE_DEC, NULL, 0,
10663 "T_tagSetInfo_elements", HFILL }},
10664 { &hf_z3950_tagSetInfo_elements_item,
10665 { "elements item", "z3950.elements_item_element",
10666 FT_NONE, BASE_NONE, NULL, 0,
10667 "T_tagSetInfo_elements_item", HFILL }},
10668 { &hf_z3950_elementname,
10669 { "elementname", "z3950.elementname",
10670 FT_STRING, BASE_NONE, NULL, 0,
10671 "InternationalString", HFILL }},
10672 { &hf_z3950_elementTag,
10673 { "elementTag", "z3950.elementTag",
10674 FT_UINT32, BASE_DEC, VALS(z3950_StringOrNumeric_vals), 0,
10675 "StringOrNumeric", HFILL }},
10676 { &hf_z3950_dataType,
10677 { "dataType", "z3950.dataType",
10678 FT_INT32, BASE_DEC, VALS(z3950_PrimitiveDataType_vals), 0,
10679 "PrimitiveDataType", HFILL }},
10680 { &hf_z3950_otherTagInfo,
10681 { "otherTagInfo", "z3950.otherTagInfo",
10682 FT_UINT32, BASE_DEC, NULL, 0,
10683 "OtherInformation", HFILL }},
10684 { &hf_z3950_recordSyntax,
10685 { "recordSyntax", "z3950.recordSyntax",
10686 FT_OID, BASE_NONE, NULL, 0,
10687 "OBJECT_IDENTIFIER", HFILL }},
10688 { &hf_z3950_transferSyntaxes,
10689 { "transferSyntaxes", "z3950.transferSyntaxes",
10690 FT_UINT32, BASE_DEC, NULL, 0,
10691 NULL, HFILL }},
10692 { &hf_z3950_transferSyntaxes_item,
10693 { "transferSyntaxes item", "z3950.transferSyntaxes_item",
10694 FT_OID, BASE_NONE, NULL, 0,
10695 "OBJECT_IDENTIFIER", HFILL }},
10696 { &hf_z3950_asn1Module,
10697 { "asn1Module", "z3950.asn1Module",
10698 FT_STRING, BASE_NONE, NULL, 0,
10699 "InternationalString", HFILL }},
10700 { &hf_z3950_abstractStructure,
10701 { "abstractStructure", "z3950.abstractStructure",
10702 FT_UINT32, BASE_DEC, NULL, 0,
10703 "SEQUENCE_OF_ElementInfo", HFILL }},
10704 { &hf_z3950_abstractStructure_item,
10705 { "ElementInfo", "z3950.ElementInfo_element",
10706 FT_NONE, BASE_NONE, NULL, 0,
10707 NULL, HFILL }},
10708 { &hf_z3950_attributeSetInfo_attributes,
10709 { "attributes", "z3950.attributes",
10710 FT_UINT32, BASE_DEC, NULL, 0,
10711 "SEQUENCE_OF_AttributeType", HFILL }},
10712 { &hf_z3950_attributeSetInfo_attributes_item,
10713 { "AttributeType", "z3950.AttributeType_element",
10714 FT_NONE, BASE_NONE, NULL, 0,
10715 NULL, HFILL }},
10716 { &hf_z3950_attributeType,
10717 { "attributeType", "z3950.attributeType",
10718 FT_INT32, BASE_DEC, NULL, 0,
10719 "INTEGER", HFILL }},
10720 { &hf_z3950_attributeValues,
10721 { "attributeValues", "z3950.attributeValues",
10722 FT_UINT32, BASE_DEC, NULL, 0,
10723 "SEQUENCE_OF_AttributeDescription", HFILL }},
10724 { &hf_z3950_attributeValues_item,
10725 { "AttributeDescription", "z3950.AttributeDescription_element",
10726 FT_NONE, BASE_NONE, NULL, 0,
10727 NULL, HFILL }},
10728 { &hf_z3950_attributeDescription_attributeValue,
10729 { "attributeValue", "z3950.attributeValue",
10730 FT_UINT32, BASE_DEC, VALS(z3950_StringOrNumeric_vals), 0,
10731 "StringOrNumeric", HFILL }},
10732 { &hf_z3950_equivalentAttributes,
10733 { "equivalentAttributes", "z3950.equivalentAttributes",
10734 FT_UINT32, BASE_DEC, NULL, 0,
10735 "SEQUENCE_OF_StringOrNumeric", HFILL }},
10736 { &hf_z3950_equivalentAttributes_item,
10737 { "StringOrNumeric", "z3950.StringOrNumeric",
10738 FT_UINT32, BASE_DEC, VALS(z3950_StringOrNumeric_vals), 0,
10739 NULL, HFILL }},
10740 { &hf_z3950_termLists,
10741 { "termLists", "z3950.termLists",
10742 FT_UINT32, BASE_DEC, NULL, 0,
10743 NULL, HFILL }},
10744 { &hf_z3950_termLists_item,
10745 { "termLists item", "z3950.termLists_item_element",
10746 FT_NONE, BASE_NONE, NULL, 0,
10747 NULL, HFILL }},
10748 { &hf_z3950_title,
10749 { "title", "z3950.title",
10750 FT_UINT32, BASE_DEC, NULL, 0,
10751 "HumanString", HFILL }},
10752 { &hf_z3950_searchCost,
10753 { "searchCost", "z3950.searchCost",
10754 FT_INT32, BASE_DEC, VALS(z3950_T_searchCost_vals), 0,
10755 NULL, HFILL }},
10756 { &hf_z3950_scanable,
10757 { "scanable", "z3950.scanable",
10758 FT_BOOLEAN, BASE_NONE, NULL, 0,
10759 "BOOLEAN", HFILL }},
10760 { &hf_z3950_broader,
10761 { "broader", "z3950.broader",
10762 FT_UINT32, BASE_DEC, NULL, 0,
10763 "SEQUENCE_OF_InternationalString", HFILL }},
10764 { &hf_z3950_broader_item,
10765 { "InternationalString", "z3950.InternationalString",
10766 FT_STRING, BASE_NONE, NULL, 0,
10767 NULL, HFILL }},
10768 { &hf_z3950_narrower,
10769 { "narrower", "z3950.narrower",
10770 FT_UINT32, BASE_DEC, NULL, 0,
10771 "SEQUENCE_OF_InternationalString", HFILL }},
10772 { &hf_z3950_narrower_item,
10773 { "InternationalString", "z3950.InternationalString",
10774 FT_STRING, BASE_NONE, NULL, 0,
10775 NULL, HFILL }},
10776 { &hf_z3950_extendedServicesInfo_type,
10777 { "type", "z3950.type",
10778 FT_OID, BASE_NONE, NULL, 0,
10779 "OBJECT_IDENTIFIER", HFILL }},
10780 { &hf_z3950_privateType,
10781 { "privateType", "z3950.privateType",
10782 FT_BOOLEAN, BASE_NONE, NULL, 0,
10783 "BOOLEAN", HFILL }},
10784 { &hf_z3950_restrictionsApply,
10785 { "restrictionsApply", "z3950.restrictionsApply",
10786 FT_BOOLEAN, BASE_NONE, NULL, 0,
10787 "BOOLEAN", HFILL }},
10788 { &hf_z3950_feeApply,
10789 { "feeApply", "z3950.feeApply",
10790 FT_BOOLEAN, BASE_NONE, NULL, 0,
10791 "BOOLEAN", HFILL }},
10792 { &hf_z3950_retentionSupported,
10793 { "retentionSupported", "z3950.retentionSupported",
10794 FT_BOOLEAN, BASE_NONE, NULL, 0,
10795 "BOOLEAN", HFILL }},
10796 { &hf_z3950_extendedServicesInfo_waitAction,
10797 { "waitAction", "z3950.waitAction",
10798 FT_INT32, BASE_DEC, VALS(z3950_T_extendedServicesInfo_waitAction_vals), 0,
10799 "T_extendedServicesInfo_waitAction", HFILL }},
10800 { &hf_z3950_specificExplain,
10801 { "specificExplain", "z3950.specificExplain_element",
10802 FT_NONE, BASE_NONE, NULL, 0,
10803 "EXTERNAL", HFILL }},
10804 { &hf_z3950_esASN,
10805 { "esASN", "z3950.esASN",
10806 FT_STRING, BASE_NONE, NULL, 0,
10807 "InternationalString", HFILL }},
10808 { &hf_z3950_attributesBySet,
10809 { "attributesBySet", "z3950.attributesBySet",
10810 FT_UINT32, BASE_DEC, NULL, 0,
10811 "SEQUENCE_OF_AttributeSetDetails", HFILL }},
10812 { &hf_z3950_attributesBySet_item,
10813 { "AttributeSetDetails", "z3950.AttributeSetDetails_element",
10814 FT_NONE, BASE_NONE, NULL, 0,
10815 NULL, HFILL }},
10816 { &hf_z3950_attributeCombinations,
10817 { "attributeCombinations", "z3950.attributeCombinations_element",
10818 FT_NONE, BASE_NONE, NULL, 0,
10819 NULL, HFILL }},
10820 { &hf_z3950_attributesByType,
10821 { "attributesByType", "z3950.attributesByType",
10822 FT_UINT32, BASE_DEC, NULL, 0,
10823 "SEQUENCE_OF_AttributeTypeDetails", HFILL }},
10824 { &hf_z3950_attributesByType_item,
10825 { "AttributeTypeDetails", "z3950.AttributeTypeDetails_element",
10826 FT_NONE, BASE_NONE, NULL, 0,
10827 NULL, HFILL }},
10828 { &hf_z3950_defaultIfOmitted,
10829 { "defaultIfOmitted", "z3950.defaultIfOmitted_element",
10830 FT_NONE, BASE_NONE, NULL, 0,
10831 "OmittedAttributeInterpretation", HFILL }},
10832 { &hf_z3950_attributeTypeDetails_attributeValues,
10833 { "attributeValues", "z3950.attributeValues",
10834 FT_UINT32, BASE_DEC, NULL, 0,
10835 "SEQUENCE_OF_AttributeValue", HFILL }},
10836 { &hf_z3950_attributeTypeDetails_attributeValues_item,
10837 { "AttributeValue", "z3950.AttributeValue_element",
10838 FT_NONE, BASE_NONE, NULL, 0,
10839 NULL, HFILL }},
10840 { &hf_z3950_defaultValue,
10841 { "defaultValue", "z3950.defaultValue",
10842 FT_UINT32, BASE_DEC, VALS(z3950_StringOrNumeric_vals), 0,
10843 "StringOrNumeric", HFILL }},
10844 { &hf_z3950_defaultDescription,
10845 { "defaultDescription", "z3950.defaultDescription",
10846 FT_UINT32, BASE_DEC, NULL, 0,
10847 "HumanString", HFILL }},
10848 { &hf_z3950_attributeValue_value,
10849 { "value", "z3950.value",
10850 FT_UINT32, BASE_DEC, VALS(z3950_StringOrNumeric_vals), 0,
10851 "StringOrNumeric", HFILL }},
10852 { &hf_z3950_subAttributes,
10853 { "subAttributes", "z3950.subAttributes",
10854 FT_UINT32, BASE_DEC, NULL, 0,
10855 "SEQUENCE_OF_StringOrNumeric", HFILL }},
10856 { &hf_z3950_subAttributes_item,
10857 { "StringOrNumeric", "z3950.StringOrNumeric",
10858 FT_UINT32, BASE_DEC, VALS(z3950_StringOrNumeric_vals), 0,
10859 NULL, HFILL }},
10860 { &hf_z3950_superAttributes,
10861 { "superAttributes", "z3950.superAttributes",
10862 FT_UINT32, BASE_DEC, NULL, 0,
10863 "SEQUENCE_OF_StringOrNumeric", HFILL }},
10864 { &hf_z3950_superAttributes_item,
10865 { "StringOrNumeric", "z3950.StringOrNumeric",
10866 FT_UINT32, BASE_DEC, VALS(z3950_StringOrNumeric_vals), 0,
10867 NULL, HFILL }},
10868 { &hf_z3950_partialSupport,
10869 { "partialSupport", "z3950.partialSupport_element",
10870 FT_NONE, BASE_NONE, NULL, 0,
10871 NULL, HFILL }},
10872 { &hf_z3950_termListName,
10873 { "termListName", "z3950.termListName",
10874 FT_STRING, BASE_NONE, NULL, 0,
10875 "InternationalString", HFILL }},
10876 { &hf_z3950_termListDetails_attributes,
10877 { "attributes", "z3950.attributes_element",
10878 FT_NONE, BASE_NONE, NULL, 0,
10879 "AttributeCombinations", HFILL }},
10880 { &hf_z3950_scanInfo,
10881 { "scanInfo", "z3950.scanInfo_element",
10882 FT_NONE, BASE_NONE, NULL, 0,
10883 NULL, HFILL }},
10884 { &hf_z3950_maxStepSize,
10885 { "maxStepSize", "z3950.maxStepSize",
10886 FT_INT32, BASE_DEC, NULL, 0,
10887 "INTEGER", HFILL }},
10888 { &hf_z3950_collatingSequence,
10889 { "collatingSequence", "z3950.collatingSequence",
10890 FT_UINT32, BASE_DEC, NULL, 0,
10891 "HumanString", HFILL }},
10892 { &hf_z3950_increasing,
10893 { "increasing", "z3950.increasing",
10894 FT_BOOLEAN, BASE_NONE, NULL, 0,
10895 "BOOLEAN", HFILL }},
10896 { &hf_z3950_estNumberTerms,
10897 { "estNumberTerms", "z3950.estNumberTerms",
10898 FT_INT32, BASE_DEC, NULL, 0,
10899 "INTEGER", HFILL }},
10900 { &hf_z3950_sampleTerms,
10901 { "sampleTerms", "z3950.sampleTerms",
10902 FT_UINT32, BASE_DEC, NULL, 0,
10903 "SEQUENCE_OF_Term", HFILL }},
10904 { &hf_z3950_sampleTerms_item,
10905 { "Term", "z3950.Term",
10906 FT_UINT32, BASE_DEC, VALS(z3950_Term_vals), 0,
10907 NULL, HFILL }},
10908 { &hf_z3950_elementSetDetails_elementSetName,
10909 { "elementSetName", "z3950.elementSetName",
10910 FT_STRING, BASE_NONE, NULL, 0,
10911 NULL, HFILL }},
10912 { &hf_z3950_detailsPerElement,
10913 { "detailsPerElement", "z3950.detailsPerElement",
10914 FT_UINT32, BASE_DEC, NULL, 0,
10915 "SEQUENCE_OF_PerElementDetails", HFILL }},
10916 { &hf_z3950_detailsPerElement_item,
10917 { "PerElementDetails", "z3950.PerElementDetails_element",
10918 FT_NONE, BASE_NONE, NULL, 0,
10919 NULL, HFILL }},
10920 { &hf_z3950_recordTag,
10921 { "recordTag", "z3950.recordTag_element",
10922 FT_NONE, BASE_NONE, NULL, 0,
10923 NULL, HFILL }},
10924 { &hf_z3950_schemaTags,
10925 { "schemaTags", "z3950.schemaTags",
10926 FT_UINT32, BASE_DEC, NULL, 0,
10927 "SEQUENCE_OF_Path", HFILL }},
10928 { &hf_z3950_schemaTags_item,
10929 { "Path", "z3950.Path",
10930 FT_UINT32, BASE_DEC, NULL, 0,
10931 NULL, HFILL }},
10932 { &hf_z3950_maxSize,
10933 { "maxSize", "z3950.maxSize",
10934 FT_INT32, BASE_DEC, NULL, 0,
10935 "INTEGER", HFILL }},
10936 { &hf_z3950_minSize,
10937 { "minSize", "z3950.minSize",
10938 FT_INT32, BASE_DEC, NULL, 0,
10939 "INTEGER", HFILL }},
10940 { &hf_z3950_avgSize,
10941 { "avgSize", "z3950.avgSize",
10942 FT_INT32, BASE_DEC, NULL, 0,
10943 "INTEGER", HFILL }},
10944 { &hf_z3950_fixedSize,
10945 { "fixedSize", "z3950.fixedSize",
10946 FT_INT32, BASE_DEC, NULL, 0,
10947 "INTEGER", HFILL }},
10948 { &hf_z3950_contents,
10949 { "contents", "z3950.contents",
10950 FT_UINT32, BASE_DEC, NULL, 0,
10951 "HumanString", HFILL }},
10952 { &hf_z3950_billingInfo,
10953 { "billingInfo", "z3950.billingInfo",
10954 FT_UINT32, BASE_DEC, NULL, 0,
10955 "HumanString", HFILL }},
10956 { &hf_z3950_restrictions,
10957 { "restrictions", "z3950.restrictions",
10958 FT_UINT32, BASE_DEC, NULL, 0,
10959 "HumanString", HFILL }},
10960 { &hf_z3950_alternateNames,
10961 { "alternateNames", "z3950.alternateNames",
10962 FT_UINT32, BASE_DEC, NULL, 0,
10963 "SEQUENCE_OF_InternationalString", HFILL }},
10964 { &hf_z3950_alternateNames_item,
10965 { "InternationalString", "z3950.InternationalString",
10966 FT_STRING, BASE_NONE, NULL, 0,
10967 NULL, HFILL }},
10968 { &hf_z3950_genericNames,
10969 { "genericNames", "z3950.genericNames",
10970 FT_UINT32, BASE_DEC, NULL, 0,
10971 "SEQUENCE_OF_InternationalString", HFILL }},
10972 { &hf_z3950_genericNames_item,
10973 { "InternationalString", "z3950.InternationalString",
10974 FT_STRING, BASE_NONE, NULL, 0,
10975 NULL, HFILL }},
10976 { &hf_z3950_searchAccess,
10977 { "searchAccess", "z3950.searchAccess_element",
10978 FT_NONE, BASE_NONE, NULL, 0,
10979 "AttributeCombinations", HFILL }},
10980 { &hf_z3950_qualifier,
10981 { "qualifier", "z3950.qualifier",
10982 FT_UINT32, BASE_DEC, VALS(z3950_StringOrNumeric_vals), 0,
10983 "StringOrNumeric", HFILL }},
10984 { &hf_z3950_sortKeys,
10985 { "sortKeys", "z3950.sortKeys",
10986 FT_UINT32, BASE_DEC, NULL, 0,
10987 "SEQUENCE_OF_SortKeyDetails", HFILL }},
10988 { &hf_z3950_sortKeys_item,
10989 { "SortKeyDetails", "z3950.SortKeyDetails_element",
10990 FT_NONE, BASE_NONE, NULL, 0,
10991 NULL, HFILL }},
10992 { &hf_z3950_elementSpecifications,
10993 { "elementSpecifications", "z3950.elementSpecifications",
10994 FT_UINT32, BASE_DEC, NULL, 0,
10995 "SEQUENCE_OF_Specification", HFILL }},
10996 { &hf_z3950_elementSpecifications_item,
10997 { "Specification", "z3950.Specification_element",
10998 FT_NONE, BASE_NONE, NULL, 0,
10999 NULL, HFILL }},
11000 { &hf_z3950_attributeSpecifications,
11001 { "attributeSpecifications", "z3950.attributeSpecifications_element",
11002 FT_NONE, BASE_NONE, NULL, 0,
11003 "AttributeCombinations", HFILL }},
11004 { &hf_z3950_sortType,
11005 { "sortType", "z3950.sortType",
11006 FT_UINT32, BASE_DEC, VALS(z3950_T_sortType_vals), 0,
11007 NULL, HFILL }},
11008 { &hf_z3950_character,
11009 { "character", "z3950.character_element",
11010 FT_NONE, BASE_NONE, NULL, 0,
11011 NULL, HFILL }},
11012 { &hf_z3950_sortKeyDetails_sortType_numeric,
11013 { "numeric", "z3950.numeric_element",
11014 FT_NONE, BASE_NONE, NULL, 0,
11015 NULL, HFILL }},
11016 { &hf_z3950_sortKeyDetails_sortType_structured,
11017 { "structured", "z3950.structured",
11018 FT_UINT32, BASE_DEC, NULL, 0,
11019 "HumanString", HFILL }},
11020 { &hf_z3950_sortKeyDetails_caseSensitivity,
11021 { "caseSensitivity", "z3950.caseSensitivity",
11022 FT_INT32, BASE_DEC, VALS(z3950_T_sortKeyDetails_caseSensitivity_vals), 0,
11023 "T_sortKeyDetails_caseSensitivity", HFILL }},
11024 { &hf_z3950_processingContext,
11025 { "processingContext", "z3950.processingContext",
11026 FT_INT32, BASE_DEC, VALS(z3950_T_processingContext_vals), 0,
11027 NULL, HFILL }},
11028 { &hf_z3950_instructions,
11029 { "instructions", "z3950.instructions_element",
11030 FT_NONE, BASE_NONE, NULL, 0,
11031 "EXTERNAL", HFILL }},
11032 { &hf_z3950_variantSet,
11033 { "variantSet", "z3950.variantSet",
11034 FT_OID, BASE_NONE, NULL, 0,
11035 "OBJECT_IDENTIFIER", HFILL }},
11036 { &hf_z3950_variantSetInfo_variants,
11037 { "variants", "z3950.variants",
11038 FT_UINT32, BASE_DEC, NULL, 0,
11039 "SEQUENCE_OF_VariantClass", HFILL }},
11040 { &hf_z3950_variantSetInfo_variants_item,
11041 { "VariantClass", "z3950.VariantClass_element",
11042 FT_NONE, BASE_NONE, NULL, 0,
11043 NULL, HFILL }},
11044 { &hf_z3950_variantClass,
11045 { "variantClass", "z3950.variantClass",
11046 FT_INT32, BASE_DEC, NULL, 0,
11047 "INTEGER", HFILL }},
11048 { &hf_z3950_variantTypes,
11049 { "variantTypes", "z3950.variantTypes",
11050 FT_UINT32, BASE_DEC, NULL, 0,
11051 "SEQUENCE_OF_VariantType", HFILL }},
11052 { &hf_z3950_variantTypes_item,
11053 { "VariantType", "z3950.VariantType_element",
11054 FT_NONE, BASE_NONE, NULL, 0,
11055 NULL, HFILL }},
11056 { &hf_z3950_variantType,
11057 { "variantType", "z3950.variantType",
11058 FT_INT32, BASE_DEC, NULL, 0,
11059 "INTEGER", HFILL }},
11060 { &hf_z3950_variantValue,
11061 { "variantValue", "z3950.variantValue_element",
11062 FT_NONE, BASE_NONE, NULL, 0,
11063 NULL, HFILL }},
11064 { &hf_z3950_values,
11065 { "values", "z3950.values",
11066 FT_UINT32, BASE_DEC, VALS(z3950_ValueSet_vals), 0,
11067 "ValueSet", HFILL }},
11068 { &hf_z3950_range,
11069 { "range", "z3950.range_element",
11070 FT_NONE, BASE_NONE, NULL, 0,
11071 "ValueRange", HFILL }},
11072 { &hf_z3950_enumerated,
11073 { "enumerated", "z3950.enumerated",
11074 FT_UINT32, BASE_DEC, NULL, 0,
11075 "SEQUENCE_OF_ValueDescription", HFILL }},
11076 { &hf_z3950_enumerated_item,
11077 { "ValueDescription", "z3950.ValueDescription",
11078 FT_UINT32, BASE_DEC, VALS(z3950_ValueDescription_vals), 0,
11079 NULL, HFILL }},
11080 { &hf_z3950_lower,
11081 { "lower", "z3950.lower",
11082 FT_UINT32, BASE_DEC, VALS(z3950_ValueDescription_vals), 0,
11083 "ValueDescription", HFILL }},
11084 { &hf_z3950_upper,
11085 { "upper", "z3950.upper",
11086 FT_UINT32, BASE_DEC, VALS(z3950_ValueDescription_vals), 0,
11087 "ValueDescription", HFILL }},
11088 { &hf_z3950_integer,
11089 { "integer", "z3950.integer",
11090 FT_INT32, BASE_DEC, NULL, 0,
11091 NULL, HFILL }},
11092 { &hf_z3950_octets,
11093 { "octets", "z3950.octets",
11094 FT_BYTES, BASE_NONE, NULL, 0,
11095 "OCTET_STRING", HFILL }},
11096 { &hf_z3950_valueDescription_unit,
11097 { "unit", "z3950.unit_element",
11098 FT_NONE, BASE_NONE, NULL, 0,
11099 NULL, HFILL }},
11100 { &hf_z3950_valueAndUnit,
11101 { "valueAndUnit", "z3950.valueAndUnit_element",
11102 FT_NONE, BASE_NONE, NULL, 0,
11103 "IntUnit", HFILL }},
11104 { &hf_z3950_unitInfo_units,
11105 { "units", "z3950.units",
11106 FT_UINT32, BASE_DEC, NULL, 0,
11107 "SEQUENCE_OF_UnitType", HFILL }},
11108 { &hf_z3950_unitInfo_units_item,
11109 { "UnitType", "z3950.UnitType_element",
11110 FT_NONE, BASE_NONE, NULL, 0,
11111 NULL, HFILL }},
11112 { &hf_z3950_unitType_units,
11113 { "units", "z3950.units",
11114 FT_UINT32, BASE_DEC, NULL, 0,
11115 "SEQUENCE_OF_Units", HFILL }},
11116 { &hf_z3950_unitType_units_item,
11117 { "Units", "z3950.Units_element",
11118 FT_NONE, BASE_NONE, NULL, 0,
11119 NULL, HFILL }},
11120 { &hf_z3950_categories,
11121 { "categories", "z3950.categories",
11122 FT_UINT32, BASE_DEC, NULL, 0,
11123 "SEQUENCE_OF_CategoryInfo", HFILL }},
11124 { &hf_z3950_categories_item,
11125 { "CategoryInfo", "z3950.CategoryInfo_element",
11126 FT_NONE, BASE_NONE, NULL, 0,
11127 NULL, HFILL }},
11128 { &hf_z3950_categoryInfo_category,
11129 { "category", "z3950.category",
11130 FT_STRING, BASE_NONE, NULL, 0,
11131 "InternationalString", HFILL }},
11132 { &hf_z3950_originalCategory,
11133 { "originalCategory", "z3950.originalCategory",
11134 FT_STRING, BASE_NONE, NULL, 0,
11135 "InternationalString", HFILL }},
11136 { &hf_z3950_dateAdded,
11137 { "dateAdded", "z3950.dateAdded",
11138 FT_STRING, BASE_NONE, NULL, 0,
11139 "GeneralizedTime", HFILL }},
11140 { &hf_z3950_dateChanged,
11141 { "dateChanged", "z3950.dateChanged",
11142 FT_STRING, BASE_NONE, NULL, 0,
11143 "GeneralizedTime", HFILL }},
11144 { &hf_z3950_expiry,
11145 { "expiry", "z3950.expiry",
11146 FT_STRING, BASE_NONE, NULL, 0,
11147 "GeneralizedTime", HFILL }},
11148 { &hf_z3950_humanString_Language,
11149 { "humanString-Language", "z3950.humanString_Language",
11150 FT_STRING, BASE_NONE, NULL, 0,
11151 "LanguageCode", HFILL }},
11152 { &hf_z3950_HumanString_item,
11153 { "HumanString item", "z3950.HumanString_item_element",
11154 FT_NONE, BASE_NONE, NULL, 0,
11155 NULL, HFILL }},
11156 { &hf_z3950_language,
11157 { "language", "z3950.language",
11158 FT_STRING, BASE_NONE, NULL, 0,
11159 "LanguageCode", HFILL }},
11160 { &hf_z3950_text,
11161 { "text", "z3950.text",
11162 FT_STRING, BASE_NONE, NULL, 0,
11163 "InternationalString", HFILL }},
11164 { &hf_z3950_IconObject_item,
11165 { "IconObject item", "z3950.IconObject_item_element",
11166 FT_NONE, BASE_NONE, NULL, 0,
11167 NULL, HFILL }},
11168 { &hf_z3950_bodyType,
11169 { "bodyType", "z3950.bodyType",
11170 FT_UINT32, BASE_DEC, VALS(z3950_T_bodyType_vals), 0,
11171 NULL, HFILL }},
11172 { &hf_z3950_ianaType,
11173 { "ianaType", "z3950.ianaType",
11174 FT_STRING, BASE_NONE, NULL, 0,
11175 "InternationalString", HFILL }},
11176 { &hf_z3950_z3950type,
11177 { "z3950type", "z3950.z3950type",
11178 FT_STRING, BASE_NONE, NULL, 0,
11179 "InternationalString", HFILL }},
11180 { &hf_z3950_otherType,
11181 { "otherType", "z3950.otherType",
11182 FT_STRING, BASE_NONE, NULL, 0,
11183 "InternationalString", HFILL }},
11184 { &hf_z3950_content,
11185 { "content", "z3950.content",
11186 FT_BYTES, BASE_NONE, NULL, 0,
11187 "OCTET_STRING", HFILL }},
11188 { &hf_z3950_address,
11189 { "address", "z3950.address",
11190 FT_UINT32, BASE_DEC, NULL, 0,
11191 "HumanString", HFILL }},
11192 { &hf_z3950_email,
11193 { "email", "z3950.email",
11194 FT_STRING, BASE_NONE, NULL, 0,
11195 "InternationalString", HFILL }},
11196 { &hf_z3950_phone,
11197 { "phone", "z3950.phone",
11198 FT_STRING, BASE_NONE, NULL, 0,
11199 "InternationalString", HFILL }},
11200 { &hf_z3950_internetAddress,
11201 { "internetAddress", "z3950.internetAddress_element",
11202 FT_NONE, BASE_NONE, NULL, 0,
11203 NULL, HFILL }},
11204 { &hf_z3950_hostAddress,
11205 { "hostAddress", "z3950.hostAddress",
11206 FT_STRING, BASE_NONE, NULL, 0,
11207 "InternationalString", HFILL }},
11208 { &hf_z3950_port,
11209 { "port", "z3950.port",
11210 FT_INT32, BASE_DEC, NULL, 0,
11211 "INTEGER", HFILL }},
11212 { &hf_z3950_osiPresentationAddress,
11213 { "osiPresentationAddress", "z3950.osiPresentationAddress_element",
11214 FT_NONE, BASE_NONE, NULL, 0,
11215 NULL, HFILL }},
11216 { &hf_z3950_pSel,
11217 { "pSel", "z3950.pSel",
11218 FT_STRING, BASE_NONE, NULL, 0,
11219 "InternationalString", HFILL }},
11220 { &hf_z3950_sSel,
11221 { "sSel", "z3950.sSel",
11222 FT_STRING, BASE_NONE, NULL, 0,
11223 "InternationalString", HFILL }},
11224 { &hf_z3950_tSel,
11225 { "tSel", "z3950.tSel",
11226 FT_STRING, BASE_NONE, NULL, 0,
11227 "InternationalString", HFILL }},
11228 { &hf_z3950_nSap,
11229 { "nSap", "z3950.nSap",
11230 FT_STRING, BASE_NONE, NULL, 0,
11231 "InternationalString", HFILL }},
11232 { &hf_z3950_networkAddress_other,
11233 { "other", "z3950.other_element",
11234 FT_NONE, BASE_NONE, NULL, 0,
11235 "T_networkAddress_other", HFILL }},
11236 { &hf_z3950_networkAddress_other_type,
11237 { "type", "z3950.type",
11238 FT_STRING, BASE_NONE, NULL, 0,
11239 "InternationalString", HFILL }},
11240 { &hf_z3950_networkAddress_other_address,
11241 { "address", "z3950.address",
11242 FT_STRING, BASE_NONE, NULL, 0,
11243 "InternationalString", HFILL }},
11244 { &hf_z3950_queryTypesSupported,
11245 { "queryTypesSupported", "z3950.queryTypesSupported",
11246 FT_UINT32, BASE_DEC, NULL, 0,
11247 "SEQUENCE_OF_QueryTypeDetails", HFILL }},
11248 { &hf_z3950_queryTypesSupported_item,
11249 { "QueryTypeDetails", "z3950.QueryTypeDetails",
11250 FT_UINT32, BASE_DEC, VALS(z3950_QueryTypeDetails_vals), 0,
11251 NULL, HFILL }},
11252 { &hf_z3950_diagnosticsSets,
11253 { "diagnosticsSets", "z3950.diagnosticsSets",
11254 FT_UINT32, BASE_DEC, NULL, 0,
11255 NULL, HFILL }},
11256 { &hf_z3950_diagnosticsSets_item,
11257 { "diagnosticsSets item", "z3950.diagnosticsSets_item",
11258 FT_OID, BASE_NONE, NULL, 0,
11259 "OBJECT_IDENTIFIER", HFILL }},
11260 { &hf_z3950_attributeSetIds,
11261 { "attributeSetIds", "z3950.attributeSetIds",
11262 FT_UINT32, BASE_DEC, NULL, 0,
11263 "SEQUENCE_OF_AttributeSetId", HFILL }},
11264 { &hf_z3950_attributeSetIds_item,
11265 { "AttributeSetId", "z3950.AttributeSetId",
11266 FT_OID, BASE_NONE, NULL, 0,
11267 NULL, HFILL }},
11268 { &hf_z3950_schemas,
11269 { "schemas", "z3950.schemas",
11270 FT_UINT32, BASE_DEC, NULL, 0,
11271 NULL, HFILL }},
11272 { &hf_z3950_schemas_item,
11273 { "schemas item", "z3950.schemas_item",
11274 FT_OID, BASE_NONE, NULL, 0,
11275 "OBJECT_IDENTIFIER", HFILL }},
11276 { &hf_z3950_recordSyntaxes,
11277 { "recordSyntaxes", "z3950.recordSyntaxes",
11278 FT_UINT32, BASE_DEC, NULL, 0,
11279 NULL, HFILL }},
11280 { &hf_z3950_recordSyntaxes_item,
11281 { "recordSyntaxes item", "z3950.recordSyntaxes_item",
11282 FT_OID, BASE_NONE, NULL, 0,
11283 "OBJECT_IDENTIFIER", HFILL }},
11284 { &hf_z3950_resourceChallenges,
11285 { "resourceChallenges", "z3950.resourceChallenges",
11286 FT_UINT32, BASE_DEC, NULL, 0,
11287 NULL, HFILL }},
11288 { &hf_z3950_resourceChallenges_item,
11289 { "resourceChallenges item", "z3950.resourceChallenges_item",
11290 FT_OID, BASE_NONE, NULL, 0,
11291 "OBJECT_IDENTIFIER", HFILL }},
11292 { &hf_z3950_restrictedAccess,
11293 { "restrictedAccess", "z3950.restrictedAccess",
11294 FT_UINT32, BASE_DEC, NULL, 0,
11295 "AccessRestrictions", HFILL }},
11296 { &hf_z3950_costInfo,
11297 { "costInfo", "z3950.costInfo_element",
11298 FT_NONE, BASE_NONE, NULL, 0,
11299 "Costs", HFILL }},
11300 { &hf_z3950_variantSets,
11301 { "variantSets", "z3950.variantSets",
11302 FT_UINT32, BASE_DEC, NULL, 0,
11303 NULL, HFILL }},
11304 { &hf_z3950_variantSets_item,
11305 { "variantSets item", "z3950.variantSets_item",
11306 FT_OID, BASE_NONE, NULL, 0,
11307 "OBJECT_IDENTIFIER", HFILL }},
11308 { &hf_z3950_elementSetNames,
11309 { "elementSetNames", "z3950.elementSetNames",
11310 FT_UINT32, BASE_DEC, NULL, 0,
11311 "SEQUENCE_OF_ElementSetName", HFILL }},
11312 { &hf_z3950_elementSetNames_item,
11313 { "ElementSetName", "z3950.ElementSetName",
11314 FT_STRING, BASE_NONE, NULL, 0,
11315 NULL, HFILL }},
11316 { &hf_z3950_unitSystems,
11317 { "unitSystems", "z3950.unitSystems",
11318 FT_UINT32, BASE_DEC, NULL, 0,
11319 "SEQUENCE_OF_InternationalString", HFILL }},
11320 { &hf_z3950_unitSystems_item,
11321 { "InternationalString", "z3950.InternationalString",
11322 FT_STRING, BASE_NONE, NULL, 0,
11323 NULL, HFILL }},
11324 { &hf_z3950_queryTypeDetails_private,
11325 { "private", "z3950.private_element",
11326 FT_NONE, BASE_NONE, NULL, 0,
11327 "PrivateCapabilities", HFILL }},
11328 { &hf_z3950_queryTypeDetails_rpn,
11329 { "rpn", "z3950.rpn_element",
11330 FT_NONE, BASE_NONE, NULL, 0,
11331 "RpnCapabilities", HFILL }},
11332 { &hf_z3950_iso8777,
11333 { "iso8777", "z3950.iso8777_element",
11334 FT_NONE, BASE_NONE, NULL, 0,
11335 "Iso8777Capabilities", HFILL }},
11336 { &hf_z3950_z39_58,
11337 { "z39-58", "z3950.z39_58",
11338 FT_UINT32, BASE_DEC, NULL, 0,
11339 "HumanString", HFILL }},
11340 { &hf_z3950_erpn,
11341 { "erpn", "z3950.erpn_element",
11342 FT_NONE, BASE_NONE, NULL, 0,
11343 "RpnCapabilities", HFILL }},
11344 { &hf_z3950_rankedList,
11345 { "rankedList", "z3950.rankedList",
11346 FT_UINT32, BASE_DEC, NULL, 0,
11347 "HumanString", HFILL }},
11348 { &hf_z3950_privateCapabilities_operators,
11349 { "operators", "z3950.operators",
11350 FT_UINT32, BASE_DEC, NULL, 0,
11351 "T_privateCapabilities_operators", HFILL }},
11352 { &hf_z3950_privateCapabilities_operators_item,
11353 { "operators item", "z3950.operators_item_element",
11354 FT_NONE, BASE_NONE, NULL, 0,
11355 "T_privateCapabilities_operators_item", HFILL }},
11356 { &hf_z3950_operator,
11357 { "operator", "z3950.operator",
11358 FT_STRING, BASE_NONE, NULL, 0,
11359 "InternationalString", HFILL }},
11360 { &hf_z3950_searchKeys,
11361 { "searchKeys", "z3950.searchKeys",
11362 FT_UINT32, BASE_DEC, NULL, 0,
11363 "SEQUENCE_OF_SearchKey", HFILL }},
11364 { &hf_z3950_searchKeys_item,
11365 { "SearchKey", "z3950.SearchKey_element",
11366 FT_NONE, BASE_NONE, NULL, 0,
11367 NULL, HFILL }},
11368 { &hf_z3950_privateCapabilities_description,
11369 { "description", "z3950.description",
11370 FT_UINT32, BASE_DEC, NULL, 0,
11371 "SEQUENCE_OF_HumanString", HFILL }},
11372 { &hf_z3950_privateCapabilities_description_item,
11373 { "HumanString", "z3950.HumanString",
11374 FT_UINT32, BASE_DEC, NULL, 0,
11375 NULL, HFILL }},
11376 { &hf_z3950_operators,
11377 { "operators", "z3950.operators",
11378 FT_UINT32, BASE_DEC, NULL, 0,
11379 NULL, HFILL }},
11380 { &hf_z3950_operators_item,
11381 { "operators item", "z3950.operators_item",
11382 FT_INT32, BASE_DEC, NULL, 0,
11383 "INTEGER", HFILL }},
11384 { &hf_z3950_resultSetAsOperandSupported,
11385 { "resultSetAsOperandSupported", "z3950.resultSetAsOperandSupported",
11386 FT_BOOLEAN, BASE_NONE, NULL, 0,
11387 "BOOLEAN", HFILL }},
11388 { &hf_z3950_restrictionOperandSupported,
11389 { "restrictionOperandSupported", "z3950.restrictionOperandSupported",
11390 FT_BOOLEAN, BASE_NONE, NULL, 0,
11391 "BOOLEAN", HFILL }},
11392 { &hf_z3950_proximity,
11393 { "proximity", "z3950.proximity_element",
11394 FT_NONE, BASE_NONE, NULL, 0,
11395 "ProximitySupport", HFILL }},
11396 { &hf_z3950_anySupport,
11397 { "anySupport", "z3950.anySupport",
11398 FT_BOOLEAN, BASE_NONE, NULL, 0,
11399 "BOOLEAN", HFILL }},
11400 { &hf_z3950_unitsSupported,
11401 { "unitsSupported", "z3950.unitsSupported",
11402 FT_UINT32, BASE_DEC, NULL, 0,
11403 NULL, HFILL }},
11404 { &hf_z3950_unitsSupported_item,
11405 { "unitsSupported item", "z3950.unitsSupported_item",
11406 FT_UINT32, BASE_DEC, VALS(z3950_T_unitsSupported_item_vals), 0,
11407 NULL, HFILL }},
11408 { &hf_z3950_proximitySupport_unitsSupported_item_known,
11409 { "known", "z3950.known",
11410 FT_INT32, BASE_DEC, NULL, 0,
11411 "INTEGER", HFILL }},
11412 { &hf_z3950_proximitySupport_unitsSupported_item_private,
11413 { "private", "z3950.private_element",
11414 FT_NONE, BASE_NONE, NULL, 0,
11415 "T_proximitySupport_unitsSupported_item_private", HFILL }},
11416 { &hf_z3950_proximitySupport_unitsSupported_item_private_unit,
11417 { "unit", "z3950.unit",
11418 FT_INT32, BASE_DEC, NULL, 0,
11419 "INTEGER", HFILL }},
11420 { &hf_z3950_searchKey,
11421 { "searchKey", "z3950.searchKey",
11422 FT_STRING, BASE_NONE, NULL, 0,
11423 "InternationalString", HFILL }},
11424 { &hf_z3950_AccessRestrictions_item,
11425 { "AccessRestrictions item", "z3950.AccessRestrictions_item_element",
11426 FT_NONE, BASE_NONE, NULL, 0,
11427 NULL, HFILL }},
11428 { &hf_z3950_accessType,
11429 { "accessType", "z3950.accessType",
11430 FT_INT32, BASE_DEC, VALS(z3950_T_accessType_vals), 0,
11431 NULL, HFILL }},
11432 { &hf_z3950_accessText,
11433 { "accessText", "z3950.accessText",
11434 FT_UINT32, BASE_DEC, NULL, 0,
11435 "HumanString", HFILL }},
11436 { &hf_z3950_accessChallenges,
11437 { "accessChallenges", "z3950.accessChallenges",
11438 FT_UINT32, BASE_DEC, NULL, 0,
11439 NULL, HFILL }},
11440 { &hf_z3950_accessChallenges_item,
11441 { "accessChallenges item", "z3950.accessChallenges_item",
11442 FT_OID, BASE_NONE, NULL, 0,
11443 "OBJECT_IDENTIFIER", HFILL }},
11444 { &hf_z3950_connectCharge,
11445 { "connectCharge", "z3950.connectCharge_element",
11446 FT_NONE, BASE_NONE, NULL, 0,
11447 "Charge", HFILL }},
11448 { &hf_z3950_connectTime,
11449 { "connectTime", "z3950.connectTime_element",
11450 FT_NONE, BASE_NONE, NULL, 0,
11451 "Charge", HFILL }},
11452 { &hf_z3950_displayCharge,
11453 { "displayCharge", "z3950.displayCharge_element",
11454 FT_NONE, BASE_NONE, NULL, 0,
11455 "Charge", HFILL }},
11456 { &hf_z3950_searchCharge,
11457 { "searchCharge", "z3950.searchCharge_element",
11458 FT_NONE, BASE_NONE, NULL, 0,
11459 "Charge", HFILL }},
11460 { &hf_z3950_subscriptCharge,
11461 { "subscriptCharge", "z3950.subscriptCharge_element",
11462 FT_NONE, BASE_NONE, NULL, 0,
11463 "Charge", HFILL }},
11464 { &hf_z3950_otherCharges,
11465 { "otherCharges", "z3950.otherCharges",
11466 FT_UINT32, BASE_DEC, NULL, 0,
11467 NULL, HFILL }},
11468 { &hf_z3950_otherCharges_item,
11469 { "otherCharges item", "z3950.otherCharges_item_element",
11470 FT_NONE, BASE_NONE, NULL, 0,
11471 NULL, HFILL }},
11472 { &hf_z3950_forWhat,
11473 { "forWhat", "z3950.forWhat",
11474 FT_UINT32, BASE_DEC, NULL, 0,
11475 "HumanString", HFILL }},
11476 { &hf_z3950_charge,
11477 { "charge", "z3950.charge_element",
11478 FT_NONE, BASE_NONE, NULL, 0,
11479 NULL, HFILL }},
11480 { &hf_z3950_cost,
11481 { "cost", "z3950.cost_element",
11482 FT_NONE, BASE_NONE, NULL, 0,
11483 "IntUnit", HFILL }},
11484 { &hf_z3950_perWhat,
11485 { "perWhat", "z3950.perWhat_element",
11486 FT_NONE, BASE_NONE, NULL, 0,
11487 "Unit", HFILL }},
11488 { &hf_z3950_charge_text,
11489 { "text", "z3950.text",
11490 FT_UINT32, BASE_DEC, NULL, 0,
11491 "HumanString", HFILL }},
11492 { &hf_z3950_DatabaseList_item,
11493 { "DatabaseName", "z3950.DatabaseName",
11494 FT_STRING, BASE_NONE, NULL, 0,
11495 NULL, HFILL }},
11496 { &hf_z3950_defaultAttributeSet,
11497 { "defaultAttributeSet", "z3950.defaultAttributeSet",
11498 FT_OID, BASE_NONE, NULL, 0,
11499 "AttributeSetId", HFILL }},
11500 { &hf_z3950_legalCombinations,
11501 { "legalCombinations", "z3950.legalCombinations",
11502 FT_UINT32, BASE_DEC, NULL, 0,
11503 "SEQUENCE_OF_AttributeCombination", HFILL }},
11504 { &hf_z3950_legalCombinations_item,
11505 { "AttributeCombination", "z3950.AttributeCombination",
11506 FT_UINT32, BASE_DEC, NULL, 0,
11507 NULL, HFILL }},
11508 { &hf_z3950_AttributeCombination_item,
11509 { "AttributeOccurrence", "z3950.AttributeOccurrence_element",
11510 FT_NONE, BASE_NONE, NULL, 0,
11511 NULL, HFILL }},
11512 { &hf_z3950_mustBeSupplied,
11513 { "mustBeSupplied", "z3950.mustBeSupplied_element",
11514 FT_NONE, BASE_NONE, NULL, 0,
11515 NULL, HFILL }},
11516 { &hf_z3950_attributeOccurrence_attributeValues,
11517 { "attributeValues", "z3950.attributeValues",
11518 FT_UINT32, BASE_DEC, VALS(z3950_T_attributeOccurrence_attributeValues_vals), 0,
11519 "T_attributeOccurrence_attributeValues", HFILL }},
11520 { &hf_z3950_any_or_none,
11521 { "any-or-none", "z3950.any_or_none_element",
11522 FT_NONE, BASE_NONE, NULL, 0,
11523 NULL, HFILL }},
11524 { &hf_z3950_specific,
11525 { "specific", "z3950.specific",
11526 FT_UINT32, BASE_DEC, NULL, 0,
11527 "SEQUENCE_OF_StringOrNumeric", HFILL }},
11528 { &hf_z3950_specific_item,
11529 { "StringOrNumeric", "z3950.StringOrNumeric",
11530 FT_UINT32, BASE_DEC, VALS(z3950_StringOrNumeric_vals), 0,
11531 NULL, HFILL }},
11532 { &hf_z3950_briefBib_title,
11533 { "title", "z3950.title",
11534 FT_STRING, BASE_NONE, NULL, 0,
11535 "InternationalString", HFILL }},
11536 { &hf_z3950_author,
11537 { "author", "z3950.author",
11538 FT_STRING, BASE_NONE, NULL, 0,
11539 "InternationalString", HFILL }},
11540 { &hf_z3950_recordType,
11541 { "recordType", "z3950.recordType",
11542 FT_STRING, BASE_NONE, NULL, 0,
11543 "InternationalString", HFILL }},
11544 { &hf_z3950_bibliographicLevel,
11545 { "bibliographicLevel", "z3950.bibliographicLevel",
11546 FT_STRING, BASE_NONE, NULL, 0,
11547 "InternationalString", HFILL }},
11548 { &hf_z3950_briefBib_format,
11549 { "format", "z3950.format",
11550 FT_UINT32, BASE_DEC, NULL, 0,
11551 "SEQUENCE_OF_FormatSpec", HFILL }},
11552 { &hf_z3950_briefBib_format_item,
11553 { "FormatSpec", "z3950.FormatSpec_element",
11554 FT_NONE, BASE_NONE, NULL, 0,
11555 NULL, HFILL }},
11556 { &hf_z3950_publicationPlace,
11557 { "publicationPlace", "z3950.publicationPlace",
11558 FT_STRING, BASE_NONE, NULL, 0,
11559 "InternationalString", HFILL }},
11560 { &hf_z3950_publicationDate,
11561 { "publicationDate", "z3950.publicationDate",
11562 FT_STRING, BASE_NONE, NULL, 0,
11563 "InternationalString", HFILL }},
11564 { &hf_z3950_targetSystemKey,
11565 { "targetSystemKey", "z3950.targetSystemKey",
11566 FT_STRING, BASE_NONE, NULL, 0,
11567 "InternationalString", HFILL }},
11568 { &hf_z3950_satisfyingElement,
11569 { "satisfyingElement", "z3950.satisfyingElement",
11570 FT_STRING, BASE_NONE, NULL, 0,
11571 "InternationalString", HFILL }},
11572 { &hf_z3950_rank,
11573 { "rank", "z3950.rank",
11574 FT_INT32, BASE_DEC, NULL, 0,
11575 "INTEGER", HFILL }},
11576 { &hf_z3950_documentId,
11577 { "documentId", "z3950.documentId",
11578 FT_STRING, BASE_NONE, NULL, 0,
11579 "InternationalString", HFILL }},
11580 { &hf_z3950_abstract,
11581 { "abstract", "z3950.abstract",
11582 FT_STRING, BASE_NONE, NULL, 0,
11583 "InternationalString", HFILL }},
11584 { &hf_z3950_formatSpec_type,
11585 { "type", "z3950.type",
11586 FT_STRING, BASE_NONE, NULL, 0,
11587 "InternationalString", HFILL }},
11588 { &hf_z3950_size,
11589 { "size", "z3950.size",
11590 FT_INT32, BASE_DEC, NULL, 0,
11591 "INTEGER", HFILL }},
11592 { &hf_z3950_bestPosn,
11593 { "bestPosn", "z3950.bestPosn",
11594 FT_INT32, BASE_DEC, NULL, 0,
11595 "INTEGER", HFILL }},
11596 { &hf_z3950_GenericRecord_item,
11597 { "TaggedElement", "z3950.TaggedElement_element",
11598 FT_NONE, BASE_NONE, NULL, 0,
11599 NULL, HFILL }},
11600 { &hf_z3950_tagOccurrence,
11601 { "tagOccurrence", "z3950.tagOccurrence",
11602 FT_INT32, BASE_DEC, NULL, 0,
11603 "INTEGER", HFILL }},
11604 { &hf_z3950_taggedElement_content,
11605 { "content", "z3950.content",
11606 FT_UINT32, BASE_DEC, VALS(z3950_ElementData_vals), 0,
11607 "ElementData", HFILL }},
11608 { &hf_z3950_metaData,
11609 { "metaData", "z3950.metaData_element",
11610 FT_NONE, BASE_NONE, NULL, 0,
11611 "ElementMetaData", HFILL }},
11612 { &hf_z3950_appliedVariant,
11613 { "appliedVariant", "z3950.appliedVariant_element",
11614 FT_NONE, BASE_NONE, NULL, 0,
11615 "Variant", HFILL }},
11616 { &hf_z3950_date,
11617 { "date", "z3950.date",
11618 FT_STRING, BASE_NONE, NULL, 0,
11619 "GeneralizedTime", HFILL }},
11620 { &hf_z3950_ext,
11621 { "ext", "z3950.ext_element",
11622 FT_NONE, BASE_NONE, NULL, 0,
11623 "EXTERNAL", HFILL }},
11624 { &hf_z3950_trueOrFalse,
11625 { "trueOrFalse", "z3950.trueOrFalse",
11626 FT_BOOLEAN, BASE_NONE, NULL, 0,
11627 "BOOLEAN", HFILL }},
11628 { &hf_z3950_intUnit,
11629 { "intUnit", "z3950.intUnit_element",
11630 FT_NONE, BASE_NONE, NULL, 0,
11631 NULL, HFILL }},
11632 { &hf_z3950_elementNotThere,
11633 { "elementNotThere", "z3950.elementNotThere_element",
11634 FT_NONE, BASE_NONE, NULL, 0,
11635 NULL, HFILL }},
11636 { &hf_z3950_elementEmpty,
11637 { "elementEmpty", "z3950.elementEmpty_element",
11638 FT_NONE, BASE_NONE, NULL, 0,
11639 NULL, HFILL }},
11640 { &hf_z3950_noDataRequested,
11641 { "noDataRequested", "z3950.noDataRequested_element",
11642 FT_NONE, BASE_NONE, NULL, 0,
11643 NULL, HFILL }},
11644 { &hf_z3950_elementData_diagnostic,
11645 { "diagnostic", "z3950.diagnostic_element",
11646 FT_NONE, BASE_NONE, NULL, 0,
11647 "EXTERNAL", HFILL }},
11648 { &hf_z3950_subtree,
11649 { "subtree", "z3950.subtree",
11650 FT_UINT32, BASE_DEC, NULL, 0,
11651 "SEQUENCE_OF_TaggedElement", HFILL }},
11652 { &hf_z3950_subtree_item,
11653 { "TaggedElement", "z3950.TaggedElement_element",
11654 FT_NONE, BASE_NONE, NULL, 0,
11655 NULL, HFILL }},
11656 { &hf_z3950_seriesOrder,
11657 { "seriesOrder", "z3950.seriesOrder_element",
11658 FT_NONE, BASE_NONE, NULL, 0,
11659 "Order", HFILL }},
11660 { &hf_z3950_usageRight,
11661 { "usageRight", "z3950.usageRight_element",
11662 FT_NONE, BASE_NONE, NULL, 0,
11663 "Usage", HFILL }},
11664 { &hf_z3950_hits,
11665 { "hits", "z3950.hits",
11666 FT_UINT32, BASE_DEC, NULL, 0,
11667 "SEQUENCE_OF_HitVector", HFILL }},
11668 { &hf_z3950_hits_item,
11669 { "HitVector", "z3950.HitVector_element",
11670 FT_NONE, BASE_NONE, NULL, 0,
11671 NULL, HFILL }},
11672 { &hf_z3950_displayName,
11673 { "displayName", "z3950.displayName",
11674 FT_STRING, BASE_NONE, NULL, 0,
11675 "InternationalString", HFILL }},
11676 { &hf_z3950_supportedVariants,
11677 { "supportedVariants", "z3950.supportedVariants",
11678 FT_UINT32, BASE_DEC, NULL, 0,
11679 "SEQUENCE_OF_Variant", HFILL }},
11680 { &hf_z3950_supportedVariants_item,
11681 { "Variant", "z3950.Variant_element",
11682 FT_NONE, BASE_NONE, NULL, 0,
11683 NULL, HFILL }},
11684 { &hf_z3950_elementDescriptor,
11685 { "elementDescriptor", "z3950.elementDescriptor",
11686 FT_BYTES, BASE_NONE, NULL, 0,
11687 "OCTET_STRING", HFILL }},
11688 { &hf_z3950_surrogateFor,
11689 { "surrogateFor", "z3950.surrogateFor",
11690 FT_UINT32, BASE_DEC, NULL, 0,
11691 "TagPath", HFILL }},
11692 { &hf_z3950_surrogateElement,
11693 { "surrogateElement", "z3950.surrogateElement",
11694 FT_UINT32, BASE_DEC, NULL, 0,
11695 "TagPath", HFILL }},
11696 { &hf_z3950_TagPath_item,
11697 { "TagPath item", "z3950.TagPath_item_element",
11698 FT_NONE, BASE_NONE, NULL, 0,
11699 NULL, HFILL }},
11700 { &hf_z3950_ascending,
11701 { "ascending", "z3950.ascending",
11702 FT_BOOLEAN, BASE_NONE, NULL, 0,
11703 "BOOLEAN", HFILL }},
11704 { &hf_z3950_order,
11705 { "order", "z3950.order",
11706 FT_INT32, BASE_DEC, NULL, 0,
11707 "INTEGER", HFILL }},
11708 { &hf_z3950_usage_type,
11709 { "type", "z3950.type",
11710 FT_INT32, BASE_DEC, VALS(z3950_T_usage_type_vals), 0,
11711 "T_usage_type", HFILL }},
11712 { &hf_z3950_restriction,
11713 { "restriction", "z3950.restriction",
11714 FT_STRING, BASE_NONE, NULL, 0,
11715 "InternationalString", HFILL }},
11716 { &hf_z3950_satisfier,
11717 { "satisfier", "z3950.satisfier",
11718 FT_UINT32, BASE_DEC, VALS(z3950_Term_vals), 0,
11719 "Term", HFILL }},
11720 { &hf_z3950_offsetIntoElement,
11721 { "offsetIntoElement", "z3950.offsetIntoElement_element",
11722 FT_NONE, BASE_NONE, NULL, 0,
11723 "IntUnit", HFILL }},
11724 { &hf_z3950_length,
11725 { "length", "z3950.length_element",
11726 FT_NONE, BASE_NONE, NULL, 0,
11727 "IntUnit", HFILL }},
11728 { &hf_z3950_hitRank,
11729 { "hitRank", "z3950.hitRank",
11730 FT_INT32, BASE_DEC, NULL, 0,
11731 "INTEGER", HFILL }},
11732 { &hf_z3950_targetToken,
11733 { "targetToken", "z3950.targetToken",
11734 FT_BYTES, BASE_NONE, NULL, 0,
11735 "OCTET_STRING", HFILL }},
11736 { &hf_z3950_globalVariantSetId,
11737 { "globalVariantSetId", "z3950.globalVariantSetId",
11738 FT_OID, BASE_NONE, NULL, 0,
11739 "OBJECT_IDENTIFIER", HFILL }},
11740 { &hf_z3950_triples,
11741 { "triples", "z3950.triples",
11742 FT_UINT32, BASE_DEC, NULL, 0,
11743 NULL, HFILL }},
11744 { &hf_z3950_triples_item,
11745 { "triples item", "z3950.triples_item_element",
11746 FT_NONE, BASE_NONE, NULL, 0,
11747 NULL, HFILL }},
11748 { &hf_z3950_variantSetId,
11749 { "variantSetId", "z3950.variantSetId",
11750 FT_OID, BASE_NONE, NULL, 0,
11751 "OBJECT_IDENTIFIER", HFILL }},
11752 { &hf_z3950_class,
11753 { "class", "z3950.class",
11754 FT_INT32, BASE_DEC, NULL, 0,
11755 "INTEGER", HFILL }},
11756 { &hf_z3950_variant_triples_item_value,
11757 { "value", "z3950.value",
11758 FT_UINT32, BASE_DEC, VALS(z3950_T_variant_triples_item_value_vals), 0,
11759 "T_variant_triples_item_value", HFILL }},
11760 { &hf_z3950_octetString,
11761 { "octetString", "z3950.octetString",
11762 FT_BYTES, BASE_NONE, NULL, 0,
11763 "OCTET_STRING", HFILL }},
11764 { &hf_z3950_boolean,
11765 { "boolean", "z3950.boolean",
11766 FT_BOOLEAN, BASE_NONE, NULL, 0,
11767 NULL, HFILL }},
11768 { &hf_z3950_variant_triples_item_value_unit,
11769 { "unit", "z3950.unit_element",
11770 FT_NONE, BASE_NONE, NULL, 0,
11771 NULL, HFILL }},
11772 { &hf_z3950_taskPackage_description,
11773 { "description", "z3950.description",
11774 FT_STRING, BASE_NONE, NULL, 0,
11775 "InternationalString", HFILL }},
11776 { &hf_z3950_targetReference,
11777 { "targetReference", "z3950.targetReference",
11778 FT_BYTES, BASE_NONE, NULL, 0,
11779 "OCTET_STRING", HFILL }},
11780 { &hf_z3950_creationDateTime,
11781 { "creationDateTime", "z3950.creationDateTime",
11782 FT_STRING, BASE_NONE, NULL, 0,
11783 "GeneralizedTime", HFILL }},
11784 { &hf_z3950_taskStatus,
11785 { "taskStatus", "z3950.taskStatus",
11786 FT_INT32, BASE_DEC, VALS(z3950_T_taskStatus_vals), 0,
11787 NULL, HFILL }},
11788 { &hf_z3950_packageDiagnostics,
11789 { "packageDiagnostics", "z3950.packageDiagnostics",
11790 FT_UINT32, BASE_DEC, NULL, 0,
11791 "SEQUENCE_OF_DiagRec", HFILL }},
11792 { &hf_z3950_packageDiagnostics_item,
11793 { "DiagRec", "z3950.DiagRec",
11794 FT_UINT32, BASE_DEC, VALS(z3950_DiagRec_vals), 0,
11795 NULL, HFILL }},
11796 { &hf_z3950_challenge,
11797 { "challenge", "z3950.challenge",
11798 FT_UINT32, BASE_DEC, NULL, 0,
11799 NULL, HFILL }},
11800 { &hf_z3950_response,
11801 { "response", "z3950.response",
11802 FT_UINT32, BASE_DEC, NULL, 0,
11803 NULL, HFILL }},
11804 { &hf_z3950_Challenge_item,
11805 { "Challenge item", "z3950.Challenge_item_element",
11806 FT_NONE, BASE_NONE, NULL, 0,
11807 NULL, HFILL }},
11808 { &hf_z3950_promptId,
11809 { "promptId", "z3950.promptId",
11810 FT_UINT32, BASE_DEC, VALS(z3950_PromptId_vals), 0,
11811 NULL, HFILL }},
11812 { &hf_z3950_defaultResponse,
11813 { "defaultResponse", "z3950.defaultResponse",
11814 FT_STRING, BASE_NONE, NULL, 0,
11815 "InternationalString", HFILL }},
11816 { &hf_z3950_promptInfo,
11817 { "promptInfo", "z3950.promptInfo",
11818 FT_UINT32, BASE_DEC, VALS(z3950_T_promptInfo_vals), 0,
11819 NULL, HFILL }},
11820 { &hf_z3950_challenge_item_promptInfo_character,
11821 { "character", "z3950.character",
11822 FT_STRING, BASE_NONE, NULL, 0,
11823 "InternationalString", HFILL }},
11824 { &hf_z3950_encrypted,
11825 { "encrypted", "z3950.encrypted_element",
11826 FT_NONE, BASE_NONE, NULL, 0,
11827 "Encryption", HFILL }},
11828 { &hf_z3950_regExpr,
11829 { "regExpr", "z3950.regExpr",
11830 FT_STRING, BASE_NONE, NULL, 0,
11831 "InternationalString", HFILL }},
11832 { &hf_z3950_responseRequired,
11833 { "responseRequired", "z3950.responseRequired_element",
11834 FT_NONE, BASE_NONE, NULL, 0,
11835 NULL, HFILL }},
11836 { &hf_z3950_allowedValues,
11837 { "allowedValues", "z3950.allowedValues",
11838 FT_UINT32, BASE_DEC, NULL, 0,
11839 "SEQUENCE_OF_InternationalString", HFILL }},
11840 { &hf_z3950_allowedValues_item,
11841 { "InternationalString", "z3950.InternationalString",
11842 FT_STRING, BASE_NONE, NULL, 0,
11843 NULL, HFILL }},
11844 { &hf_z3950_shouldSave,
11845 { "shouldSave", "z3950.shouldSave_element",
11846 FT_NONE, BASE_NONE, NULL, 0,
11847 NULL, HFILL }},
11848 { &hf_z3950_challenge_item_dataType,
11849 { "dataType", "z3950.dataType",
11850 FT_INT32, BASE_DEC, VALS(z3950_T_challenge_item_dataType_vals), 0,
11851 "T_challenge_item_dataType", HFILL }},
11852 { &hf_z3950_challenge_item_diagnostic,
11853 { "diagnostic", "z3950.diagnostic_element",
11854 FT_NONE, BASE_NONE, NULL, 0,
11855 "EXTERNAL", HFILL }},
11856 { &hf_z3950_Response_item,
11857 { "Response item", "z3950.Response_item_element",
11858 FT_NONE, BASE_NONE, NULL, 0,
11859 NULL, HFILL }},
11860 { &hf_z3950_promptResponse,
11861 { "promptResponse", "z3950.promptResponse",
11862 FT_UINT32, BASE_DEC, VALS(z3950_T_promptResponse_vals), 0,
11863 NULL, HFILL }},
11864 { &hf_z3950_accept,
11865 { "accept", "z3950.accept",
11866 FT_BOOLEAN, BASE_NONE, NULL, 0,
11867 "BOOLEAN", HFILL }},
11868 { &hf_z3950_acknowledge,
11869 { "acknowledge", "z3950.acknowledge_element",
11870 FT_NONE, BASE_NONE, NULL, 0,
11871 NULL, HFILL }},
11872 { &hf_z3950_enummeratedPrompt,
11873 { "enummeratedPrompt", "z3950.enummeratedPrompt_element",
11874 FT_NONE, BASE_NONE, NULL, 0,
11875 NULL, HFILL }},
11876 { &hf_z3950_promptId_enummeratedPrompt_type,
11877 { "type", "z3950.type",
11878 FT_INT32, BASE_DEC, VALS(z3950_T_promptId_enummeratedPrompt_type_vals), 0,
11879 "T_promptId_enummeratedPrompt_type", HFILL }},
11880 { &hf_z3950_suggestedString,
11881 { "suggestedString", "z3950.suggestedString",
11882 FT_STRING, BASE_NONE, NULL, 0,
11883 "InternationalString", HFILL }},
11884 { &hf_z3950_nonEnumeratedPrompt,
11885 { "nonEnumeratedPrompt", "z3950.nonEnumeratedPrompt",
11886 FT_STRING, BASE_NONE, NULL, 0,
11887 "InternationalString", HFILL }},
11888 { &hf_z3950_cryptType,
11889 { "cryptType", "z3950.cryptType",
11890 FT_BYTES, BASE_NONE, NULL, 0,
11891 "OCTET_STRING", HFILL }},
11892 { &hf_z3950_credential,
11893 { "credential", "z3950.credential",
11894 FT_BYTES, BASE_NONE, NULL, 0,
11895 "OCTET_STRING", HFILL }},
11896 { &hf_z3950_data,
11897 { "data", "z3950.data",
11898 FT_BYTES, BASE_NONE, NULL, 0,
11899 "OCTET_STRING", HFILL }},
11900 { &hf_z3950_dES_RN_Object_challenge,
11901 { "challenge", "z3950.challenge_element",
11902 FT_NONE, BASE_NONE, NULL, 0,
11903 "DRNType", HFILL }},
11904 { &hf_z3950_rES_RN_Object_response,
11905 { "response", "z3950.response_element",
11906 FT_NONE, BASE_NONE, NULL, 0,
11907 "DRNType", HFILL }},
11908 { &hf_z3950_dRNType_userId,
11909 { "userId", "z3950.userId",
11910 FT_BYTES, BASE_NONE, NULL, 0,
11911 "OCTET_STRING", HFILL }},
11912 { &hf_z3950_salt,
11913 { "salt", "z3950.salt",
11914 FT_BYTES, BASE_NONE, NULL, 0,
11915 "OCTET_STRING", HFILL }},
11916 { &hf_z3950_randomNumber,
11917 { "randomNumber", "z3950.randomNumber",
11918 FT_BYTES, BASE_NONE, NULL, 0,
11919 "OCTET_STRING", HFILL }},
11920 { &hf_z3950_kRBObject_challenge,
11921 { "challenge", "z3950.challenge_element",
11922 FT_NONE, BASE_NONE, NULL, 0,
11923 "KRBRequest", HFILL }},
11924 { &hf_z3950_kRBObject_response,
11925 { "response", "z3950.response_element",
11926 FT_NONE, BASE_NONE, NULL, 0,
11927 "KRBResponse", HFILL }},
11928 { &hf_z3950_service,
11929 { "service", "z3950.service",
11930 FT_STRING, BASE_NONE, NULL, 0,
11931 "InternationalString", HFILL }},
11932 { &hf_z3950_instance,
11933 { "instance", "z3950.instance",
11934 FT_STRING, BASE_NONE, NULL, 0,
11935 "InternationalString", HFILL }},
11936 { &hf_z3950_realm,
11937 { "realm", "z3950.realm",
11938 FT_STRING, BASE_NONE, NULL, 0,
11939 "InternationalString", HFILL }},
11940 { &hf_z3950_userid,
11941 { "userid", "z3950.userid",
11942 FT_STRING, BASE_NONE, NULL, 0,
11943 "InternationalString", HFILL }},
11944 { &hf_z3950_ticket,
11945 { "ticket", "z3950.ticket",
11946 FT_BYTES, BASE_NONE, NULL, 0,
11947 "OCTET_STRING", HFILL }},
11948 { &hf_z3950_SearchInfoReport_item,
11949 { "SearchInfoReport item", "z3950.SearchInfoReport_item_element",
11950 FT_NONE, BASE_NONE, NULL, 0,
11951 NULL, HFILL }},
11952 { &hf_z3950_subqueryId,
11953 { "subqueryId", "z3950.subqueryId",
11954 FT_STRING, BASE_NONE, NULL, 0,
11955 "InternationalString", HFILL }},
11956 { &hf_z3950_fullQuery,
11957 { "fullQuery", "z3950.fullQuery",
11958 FT_BOOLEAN, BASE_NONE, NULL, 0,
11959 "BOOLEAN", HFILL }},
11960 { &hf_z3950_subqueryExpression,
11961 { "subqueryExpression", "z3950.subqueryExpression",
11962 FT_UINT32, BASE_DEC, VALS(z3950_QueryExpression_vals), 0,
11963 "QueryExpression", HFILL }},
11964 { &hf_z3950_subqueryInterpretation,
11965 { "subqueryInterpretation", "z3950.subqueryInterpretation",
11966 FT_UINT32, BASE_DEC, VALS(z3950_QueryExpression_vals), 0,
11967 "QueryExpression", HFILL }},
11968 { &hf_z3950_subqueryRecommendation,
11969 { "subqueryRecommendation", "z3950.subqueryRecommendation",
11970 FT_UINT32, BASE_DEC, VALS(z3950_QueryExpression_vals), 0,
11971 "QueryExpression", HFILL }},
11972 { &hf_z3950_subqueryCount,
11973 { "subqueryCount", "z3950.subqueryCount",
11974 FT_INT32, BASE_DEC, NULL, 0,
11975 "INTEGER", HFILL }},
11976 { &hf_z3950_subqueryWeight,
11977 { "subqueryWeight", "z3950.subqueryWeight_element",
11978 FT_NONE, BASE_NONE, NULL, 0,
11979 "IntUnit", HFILL }},
11980 { &hf_z3950_resultsByDB,
11981 { "resultsByDB", "z3950.resultsByDB",
11982 FT_UINT32, BASE_DEC, NULL, 0,
11983 NULL, HFILL }},
11984 { &hf_z3950_ResultsByDB_item,
11985 { "ResultsByDB item", "z3950.ResultsByDB_item_element",
11986 FT_NONE, BASE_NONE, NULL, 0,
11987 NULL, HFILL }},
11988 { &hf_z3950_databases,
11989 { "databases", "z3950.databases",
11990 FT_UINT32, BASE_DEC, VALS(z3950_T_databases_vals), 0,
11991 NULL, HFILL }},
11992 { &hf_z3950_all,
11993 { "all", "z3950.all_element",
11994 FT_NONE, BASE_NONE, NULL, 0,
11995 NULL, HFILL }},
11996 { &hf_z3950_list,
11997 { "list", "z3950.list",
11998 FT_UINT32, BASE_DEC, NULL, 0,
11999 "SEQUENCE_OF_DatabaseName", HFILL }},
12000 { &hf_z3950_list_item,
12001 { "DatabaseName", "z3950.DatabaseName",
12002 FT_STRING, BASE_NONE, NULL, 0,
12003 NULL, HFILL }},
12004 { &hf_z3950_count,
12005 { "count", "z3950.count",
12006 FT_INT32, BASE_DEC, NULL, 0,
12007 "INTEGER", HFILL }},
12008 { &hf_z3950_queryExpression_term,
12009 { "term", "z3950.term_element",
12010 FT_NONE, BASE_NONE, NULL, 0,
12011 "T_queryExpression_term", HFILL }},
12012 { &hf_z3950_queryTerm,
12013 { "queryTerm", "z3950.queryTerm",
12014 FT_UINT32, BASE_DEC, VALS(z3950_Term_vals), 0,
12015 "Term", HFILL }},
12016 { &hf_z3950_termComment,
12017 { "termComment", "z3950.termComment",
12018 FT_STRING, BASE_NONE, NULL, 0,
12019 "InternationalString", HFILL }},
12020 { &hf_z3950_ProtocolVersion_U_version_1,
12021 { "version-1", "z3950.ProtocolVersion.U.version.1",
12022 FT_BOOLEAN, 8, NULL, 0x80,
12023 NULL, HFILL }},
12024 { &hf_z3950_ProtocolVersion_U_version_2,
12025 { "version-2", "z3950.ProtocolVersion.U.version.2",
12026 FT_BOOLEAN, 8, NULL, 0x40,
12027 NULL, HFILL }},
12028 { &hf_z3950_ProtocolVersion_U_version_3,
12029 { "version-3", "z3950.ProtocolVersion.U.version.3",
12030 FT_BOOLEAN, 8, NULL, 0x20,
12031 NULL, HFILL }},
12032 { &hf_z3950_Options_U_search,
12033 { "search", "z3950.Options.U.search",
12034 FT_BOOLEAN, 8, NULL, 0x80,
12035 NULL, HFILL }},
12036 { &hf_z3950_Options_U_present,
12037 { "present", "z3950.Options.U.present",
12038 FT_BOOLEAN, 8, NULL, 0x40,
12039 NULL, HFILL }},
12040 { &hf_z3950_Options_U_delSet,
12041 { "delSet", "z3950.Options.U.delSet",
12042 FT_BOOLEAN, 8, NULL, 0x20,
12043 NULL, HFILL }},
12044 { &hf_z3950_Options_U_resourceReport,
12045 { "resourceReport", "z3950.Options.U.resourceReport",
12046 FT_BOOLEAN, 8, NULL, 0x10,
12047 NULL, HFILL }},
12048 { &hf_z3950_Options_U_triggerResourceCtrl,
12049 { "triggerResourceCtrl", "z3950.Options.U.triggerResourceCtrl",
12050 FT_BOOLEAN, 8, NULL, 0x08,
12051 NULL, HFILL }},
12052 { &hf_z3950_Options_U_resourceCtrl,
12053 { "resourceCtrl", "z3950.Options.U.resourceCtrl",
12054 FT_BOOLEAN, 8, NULL, 0x04,
12055 NULL, HFILL }},
12056 { &hf_z3950_Options_U_accessCtrl,
12057 { "accessCtrl", "z3950.Options.U.accessCtrl",
12058 FT_BOOLEAN, 8, NULL, 0x02,
12059 NULL, HFILL }},
12060 { &hf_z3950_Options_U_scan,
12061 { "scan", "z3950.Options.U.scan",
12062 FT_BOOLEAN, 8, NULL, 0x01,
12063 NULL, HFILL }},
12064 { &hf_z3950_Options_U_sort,
12065 { "sort", "z3950.Options.U.sort",
12066 FT_BOOLEAN, 8, NULL, 0x80,
12067 NULL, HFILL }},
12068 { &hf_z3950_Options_U_spare_bit9,
12069 { "spare_bit9", "z3950.Options.U.spare.bit9",
12070 FT_BOOLEAN, 8, NULL, 0x40,
12071 NULL, HFILL }},
12072 { &hf_z3950_Options_U_extendedServices,
12073 { "extendedServices", "z3950.Options.U.extendedServices",
12074 FT_BOOLEAN, 8, NULL, 0x20,
12075 NULL, HFILL }},
12076 { &hf_z3950_Options_U_level_1Segmentation,
12077 { "level-1Segmentation", "z3950.Options.U.level.1Segmentation",
12078 FT_BOOLEAN, 8, NULL, 0x10,
12079 NULL, HFILL }},
12080 { &hf_z3950_Options_U_level_2Segmentation,
12081 { "level-2Segmentation", "z3950.Options.U.level.2Segmentation",
12082 FT_BOOLEAN, 8, NULL, 0x08,
12083 NULL, HFILL }},
12084 { &hf_z3950_Options_U_concurrentOperations,
12085 { "concurrentOperations", "z3950.Options.U.concurrentOperations",
12086 FT_BOOLEAN, 8, NULL, 0x04,
12087 NULL, HFILL }},
12088 { &hf_z3950_Options_U_namedResultSets,
12089 { "namedResultSets", "z3950.Options.U.namedResultSets",
12090 FT_BOOLEAN, 8, NULL, 0x02,
12091 NULL, HFILL }},
12092
12093 /*--- End of included file: packet-z3950-hfarr.c ---*/
12094 #line 977 "./asn1/z3950/packet-z3950-template.c"
12095
12096 { &hf_z3950_referenceId_printable,
12097 { "referenceId", "z3950.referenceId.printable",
12098 FT_STRING, BASE_NONE, NULL, 0,
12099 NULL, HFILL }},
12100 { &hf_z3950_general_printable,
12101 { "general", "z3950.general.printable",
12102 FT_STRING, BASE_NONE, NULL, 0,
12103 NULL, HFILL }},
12104
12105 /* MARC hf definitions */
12106 { &hf_marc_record,
12107 { "MARC record", "marc",
12108 FT_NONE, BASE_NONE, NULL, 0,
12109 NULL, HFILL }},
12110 { &hf_marc_record_terminator,
12111 { "MARC record terminator", "marc.terminator",
12112 FT_CHAR, BASE_HEX, NULL, 0,
12113 NULL, HFILL }},
12114 { &hf_marc_leader,
12115 { "MARC leader", "marc.leader",
12116 FT_NONE, BASE_NONE, NULL, 0,
12117 NULL, HFILL }},
12118 { &hf_marc_leader_length,
12119 { "MARC leader length", "marc.leader.length",
12120 FT_STRING, BASE_NONE, NULL, 0,
12121 NULL, HFILL }},
12122 { &hf_marc_leader_status,
12123 { "MARC leader status", "marc.leader.status",
12124 FT_CHAR, BASE_HEX, NULL, 0,
12125 NULL, HFILL }},
12126 { &hf_marc_leader_type,
12127 { "MARC leader type", "marc.leader.type",
12128 FT_CHAR, BASE_HEX, NULL, 0,
12129 NULL, HFILL }},
12130 { &hf_marc_leader_biblevel,
12131 { "MARC leader biblevel", "marc.leader.biblevel",
12132 FT_CHAR, BASE_HEX, NULL, 0,
12133 NULL, HFILL }},
12134 { &hf_marc_leader_control,
12135 { "MARC leader control", "marc.leader.control",
12136 FT_CHAR, BASE_HEX, NULL, 0,
12137 NULL, HFILL }},
12138 { &hf_marc_leader_encoding,
12139 { "MARC leader encoding", "marc.leader.encoding",
12140 FT_CHAR, BASE_HEX, NULL, 0,
12141 NULL, HFILL }},
12142 { &hf_marc_leader_indicator_count,
12143 { "MARC leader indicator count", "marc.leader.indicator_count",
12144 FT_CHAR, BASE_HEX, NULL, 0,
12145 NULL, HFILL }},
12146 { &hf_marc_leader_subfield_count,
12147 { "MARC leader subfield count", "marc.leader.subfield_count",
12148 FT_CHAR, BASE_HEX, NULL, 0,
12149 NULL, HFILL }},
12150 { &hf_marc_leader_data_offset,
12151 { "MARC leader data offset", "marc.leader.data_offset",
12152 FT_STRING, BASE_NONE, NULL, 0,
12153 NULL, HFILL }},
12154 { &hf_marc_leader_encoding_level,
12155 { "MARC leader encoding level", "marc.leader.encoding_level",
12156 FT_CHAR, BASE_HEX, NULL, 0,
12157 NULL, HFILL }},
12158 { &hf_marc_leader_descriptive_cataloging,
12159 { "MARC leader descriptive cataloging", "marc.leader.descriptive_cataloging",
12160 FT_CHAR, BASE_HEX, NULL, 0,
12161 NULL, HFILL }},
12162 { &hf_marc_leader_multipart_level,
12163 { "MARC leader multipart level", "marc.leader.multipart_level",
12164 FT_CHAR, BASE_HEX, NULL, 0,
12165 NULL, HFILL }},
12166 { &hf_marc_leader_length_of_field_length,
12167 { "MARC leader length-of-field length", "marc.leader.length_of_field_length",
12168 FT_CHAR, BASE_HEX, NULL, 0,
12169 NULL, HFILL }},
12170 { &hf_marc_leader_starting_character_position_length,
12171 { "MARC leader starting-character-position length", "marc.leader.starting_character_position_length",
12172 FT_CHAR, BASE_HEX, NULL, 0,
12173 NULL, HFILL }},
12174 { &hf_marc_leader_implementation_defined_length,
12175 { "MARC leader implementation-defined length", "marc.leader.implementation_defined_length",
12176 FT_CHAR, BASE_HEX, NULL, 0,
12177 NULL, HFILL }},
12178 { &hf_marc_directory,
12179 { "MARC directory", "marc.directory",
12180 FT_NONE, BASE_NONE, NULL, 0,
12181 NULL, HFILL }},
12182 { &hf_marc_directory_entry,
12183 { "MARC directory entry", "marc.directory.entry",
12184 FT_NONE, BASE_NONE, NULL, 0,
12185 NULL, HFILL }},
12186 { &hf_marc_directory_entry_tag,
12187 { "tag", "marc.directory.entry.tag",
12188 FT_STRING, BASE_NONE, NULL, 0,
12189 NULL, HFILL }},
12190 { &hf_marc_directory_entry_length,
12191 { "length", "marc.directory.entry.length",
12192 FT_STRING, BASE_NONE, NULL, 0,
12193 NULL, HFILL }},
12194 { &hf_marc_directory_entry_starting_position,
12195 { "starting position", "marc.directory.entry.starting_position",
12196 FT_STRING, BASE_NONE, NULL, 0,
12197 NULL, HFILL }},
12198 { &hf_marc_directory_terminator,
12199 { "MARC directory terminator", "marc.directory.terminator",
12200 FT_CHAR, BASE_HEX, NULL, 0,
12201 NULL, HFILL }},
12202 { &hf_marc_fields,
12203 { "MARC data fields", "marc.fields",
12204 FT_NONE, BASE_NONE, NULL, 0,
12205 NULL, HFILL }},
12206 { &hf_marc_field,
12207 { "MARC field", "marc.field",
12208 FT_NONE, BASE_NONE, NULL, 0,
12209 NULL, HFILL }},
12210 { &hf_marc_field_control,
12211 { "Control field", "marc.field.control",
12212 FT_STRING, BASE_NONE, NULL, 0,
12213 NULL, HFILL }},
12214 { &hf_marc_field_terminator,
12215 { "MARC field terminator", "marc.field.terminator",
12216 FT_CHAR, BASE_HEX, NULL, 0,
12217 NULL, HFILL }},
12218 { &hf_marc_field_indicator1,
12219 { "MARC field indicator1", "marc.field.indicator1",
12220 FT_CHAR, BASE_HEX, NULL, 0,
12221 NULL, HFILL }},
12222 { &hf_marc_field_indicator2,
12223 { "MARC field indicator2", "marc.field.indicator2",
12224 FT_CHAR, BASE_HEX, NULL, 0,
12225 NULL, HFILL }},
12226 { &hf_marc_field_subfield_indicator,
12227 { "MARC field subfield indicator", "marc.field.subfield.indicator",
12228 FT_CHAR, BASE_HEX, NULL, 0,
12229 NULL, HFILL }},
12230 { &hf_marc_field_subfield_tag,
12231 { "MARC field subfield tag", "marc.field.subfield.tag",
12232 FT_CHAR, BASE_HEX, NULL, 0,
12233 NULL, HFILL }},
12234 { &hf_marc_field_subfield,
12235 { "MARC Subfield", "marc.field.subfield",
12236 FT_STRING, BASE_NONE, NULL, 0,
12237 NULL, HFILL }},
12238
12239 };
12240
12241 /* List of subtrees */
12242 static gint *ett[] = {
12243 &ett_z3950,
12244 /* MARC etts */
12245 &ett_marc_record,
12246 &ett_marc_leader,
12247 &ett_marc_directory,
12248 &ett_marc_directory_entry,
12249 &ett_marc_fields,
12250 &ett_marc_field,
12251
12252 /*--- Included file: packet-z3950-ettarr.c ---*/
12253 #line 1 "./asn1/z3950/packet-z3950-ettarr.c"
12254 &ett_z3950_PDU,
12255 &ett_z3950_InitializeRequest,
12256 &ett_z3950_T_idAuthentication,
12257 &ett_z3950_T_idPass,
12258 &ett_z3950_InitializeResponse,
12259 &ett_z3950_ProtocolVersion_U,
12260 &ett_z3950_Options_U,
12261 &ett_z3950_SearchRequest,
12262 &ett_z3950_SEQUENCE_OF_DatabaseName,
12263 &ett_z3950_Query,
12264 &ett_z3950_RPNQuery,
12265 &ett_z3950_RPNStructure,
12266 &ett_z3950_T_rpnRpnOp,
12267 &ett_z3950_Operand,
12268 &ett_z3950_AttributesPlusTerm_U,
12269 &ett_z3950_ResultSetPlusAttributes_U,
12270 &ett_z3950_SEQUENCE_OF_AttributeElement,
12271 &ett_z3950_Term,
12272 &ett_z3950_Operator_U,
12273 &ett_z3950_AttributeElement,
12274 &ett_z3950_T_attributeValue,
12275 &ett_z3950_T_attributeValue_complex,
12276 &ett_z3950_SEQUENCE_OF_StringOrNumeric,
12277 &ett_z3950_T_semanticAction,
12278 &ett_z3950_ProximityOperator,
12279 &ett_z3950_T_proximityUnitCode,
12280 &ett_z3950_SearchResponse,
12281 &ett_z3950_PresentRequest,
12282 &ett_z3950_SEQUENCE_OF_Range,
12283 &ett_z3950_T_recordComposition,
12284 &ett_z3950_Segment,
12285 &ett_z3950_SEQUENCE_OF_NamePlusRecord,
12286 &ett_z3950_PresentResponse,
12287 &ett_z3950_Records,
12288 &ett_z3950_SEQUENCE_OF_DiagRec,
12289 &ett_z3950_NamePlusRecord,
12290 &ett_z3950_T_record,
12291 &ett_z3950_FragmentSyntax,
12292 &ett_z3950_DiagRec,
12293 &ett_z3950_DefaultDiagFormat,
12294 &ett_z3950_T_addinfo,
12295 &ett_z3950_Range,
12296 &ett_z3950_ElementSetNames,
12297 &ett_z3950_T_databaseSpecific,
12298 &ett_z3950_T_databaseSpecific_item,
12299 &ett_z3950_CompSpec,
12300 &ett_z3950_T_dbSpecific,
12301 &ett_z3950_T_dbSpecific_item,
12302 &ett_z3950_T_compSpec_recordSyntax,
12303 &ett_z3950_Specification,
12304 &ett_z3950_T_specification_elementSpec,
12305 &ett_z3950_DeleteResultSetRequest,
12306 &ett_z3950_SEQUENCE_OF_ResultSetId,
12307 &ett_z3950_DeleteResultSetResponse,
12308 &ett_z3950_ListStatuses,
12309 &ett_z3950_ListStatuses_item,
12310 &ett_z3950_AccessControlRequest,
12311 &ett_z3950_T_securityChallenge,
12312 &ett_z3950_AccessControlResponse,
12313 &ett_z3950_T_securityChallengeResponse,
12314 &ett_z3950_ResourceControlRequest,
12315 &ett_z3950_ResourceControlResponse,
12316 &ett_z3950_TriggerResourceControlRequest,
12317 &ett_z3950_ResourceReportRequest,
12318 &ett_z3950_ResourceReportResponse,
12319 &ett_z3950_ScanRequest,
12320 &ett_z3950_ScanResponse,
12321 &ett_z3950_ListEntries,
12322 &ett_z3950_SEQUENCE_OF_Entry,
12323 &ett_z3950_Entry,
12324 &ett_z3950_TermInfo,
12325 &ett_z3950_SEQUENCE_OF_AttributesPlusTerm,
12326 &ett_z3950_OccurrenceByAttributes,
12327 &ett_z3950_OccurrenceByAttributes_item,
12328 &ett_z3950_T_occurrences,
12329 &ett_z3950_T_byDatabase,
12330 &ett_z3950_T_byDatabase_item,
12331 &ett_z3950_SortRequest,
12332 &ett_z3950_SEQUENCE_OF_InternationalString,
12333 &ett_z3950_SEQUENCE_OF_SortKeySpec,
12334 &ett_z3950_SortResponse,
12335 &ett_z3950_SortKeySpec,
12336 &ett_z3950_T_missingValueAction,
12337 &ett_z3950_SortElement,
12338 &ett_z3950_T_datbaseSpecific,
12339 &ett_z3950_T_datbaseSpecific_item,
12340 &ett_z3950_SortKey,
12341 &ett_z3950_T_sortAttributes,
12342 &ett_z3950_ExtendedServicesRequest,
12343 &ett_z3950_ExtendedServicesResponse,
12344 &ett_z3950_Permissions,
12345 &ett_z3950_Permissions_item,
12346 &ett_z3950_T_allowableFunctions,
12347 &ett_z3950_Close,
12348 &ett_z3950_OtherInformation_U,
12349 &ett_z3950_T__untag_item,
12350 &ett_z3950_T_information,
12351 &ett_z3950_InfoCategory,
12352 &ett_z3950_IntUnit,
12353 &ett_z3950_Unit,
12354 &ett_z3950_StringOrNumeric,
12355 &ett_z3950_OCLC_UserInformation,
12356 &ett_z3950_SEQUENCE_OF_DBName,
12357 &ett_z3950_OPACRecord,
12358 &ett_z3950_SEQUENCE_OF_HoldingsRecord,
12359 &ett_z3950_HoldingsRecord,
12360 &ett_z3950_HoldingsAndCircData,
12361 &ett_z3950_SEQUENCE_OF_Volume,
12362 &ett_z3950_SEQUENCE_OF_CircRecord,
12363 &ett_z3950_Volume,
12364 &ett_z3950_CircRecord,
12365 &ett_z3950_DiagnosticFormat,
12366 &ett_z3950_DiagnosticFormat_item,
12367 &ett_z3950_T_diagnosticFormat_item_diagnostic,
12368 &ett_z3950_DiagFormat,
12369 &ett_z3950_T_tooMany,
12370 &ett_z3950_T_badSpec,
12371 &ett_z3950_SEQUENCE_OF_Specification,
12372 &ett_z3950_T_dbUnavail,
12373 &ett_z3950_T_why,
12374 &ett_z3950_T_attribute,
12375 &ett_z3950_T_attCombo,
12376 &ett_z3950_SEQUENCE_OF_AttributeList,
12377 &ett_z3950_T_diagFormat_term,
12378 &ett_z3950_T_diagFormat_proximity,
12379 &ett_z3950_T_scan,
12380 &ett_z3950_T_sort,
12381 &ett_z3950_T_segmentation,
12382 &ett_z3950_T_extServices,
12383 &ett_z3950_T_accessCtrl,
12384 &ett_z3950_T_diagFormat_accessCtrl_oid,
12385 &ett_z3950_T_alternative,
12386 &ett_z3950_T_diagFormat_recordSyntax,
12387 &ett_z3950_T_suggestedAlternatives,
12388 &ett_z3950_Explain_Record,
12389 &ett_z3950_TargetInfo,
12390 &ett_z3950_SEQUENCE_OF_DatabaseList,
12391 &ett_z3950_SEQUENCE_OF_NetworkAddress,
12392 &ett_z3950_DatabaseInfo,
12393 &ett_z3950_SEQUENCE_OF_HumanString,
12394 &ett_z3950_T_recordCount,
12395 &ett_z3950_SchemaInfo,
12396 &ett_z3950_T_tagTypeMapping,
12397 &ett_z3950_T_tagTypeMapping_item,
12398 &ett_z3950_SEQUENCE_OF_ElementInfo,
12399 &ett_z3950_ElementInfo,
12400 &ett_z3950_Path,
12401 &ett_z3950_Path_item,
12402 &ett_z3950_ElementDataType,
12403 &ett_z3950_TagSetInfo,
12404 &ett_z3950_T_tagSetInfo_elements,
12405 &ett_z3950_T_tagSetInfo_elements_item,
12406 &ett_z3950_RecordSyntaxInfo,
12407 &ett_z3950_T_transferSyntaxes,
12408 &ett_z3950_AttributeSetInfo,
12409 &ett_z3950_SEQUENCE_OF_AttributeType,
12410 &ett_z3950_AttributeType,
12411 &ett_z3950_SEQUENCE_OF_AttributeDescription,
12412 &ett_z3950_AttributeDescription,
12413 &ett_z3950_TermListInfo,
12414 &ett_z3950_T_termLists,
12415 &ett_z3950_T_termLists_item,
12416 &ett_z3950_ExtendedServicesInfo,
12417 &ett_z3950_AttributeDetails,
12418 &ett_z3950_SEQUENCE_OF_AttributeSetDetails,
12419 &ett_z3950_AttributeSetDetails,
12420 &ett_z3950_SEQUENCE_OF_AttributeTypeDetails,
12421 &ett_z3950_AttributeTypeDetails,
12422 &ett_z3950_SEQUENCE_OF_AttributeValue,
12423 &ett_z3950_OmittedAttributeInterpretation,
12424 &ett_z3950_AttributeValue,
12425 &ett_z3950_TermListDetails,
12426 &ett_z3950_T_scanInfo,
12427 &ett_z3950_SEQUENCE_OF_Term,
12428 &ett_z3950_ElementSetDetails,
12429 &ett_z3950_SEQUENCE_OF_PerElementDetails,
12430 &ett_z3950_RetrievalRecordDetails,
12431 &ett_z3950_PerElementDetails,
12432 &ett_z3950_SEQUENCE_OF_Path,
12433 &ett_z3950_RecordTag,
12434 &ett_z3950_SortDetails,
12435 &ett_z3950_SEQUENCE_OF_SortKeyDetails,
12436 &ett_z3950_SortKeyDetails,
12437 &ett_z3950_T_sortType,
12438 &ett_z3950_ProcessingInformation,
12439 &ett_z3950_VariantSetInfo,
12440 &ett_z3950_SEQUENCE_OF_VariantClass,
12441 &ett_z3950_VariantClass,
12442 &ett_z3950_SEQUENCE_OF_VariantType,
12443 &ett_z3950_VariantType,
12444 &ett_z3950_VariantValue,
12445 &ett_z3950_ValueSet,
12446 &ett_z3950_SEQUENCE_OF_ValueDescription,
12447 &ett_z3950_ValueRange,
12448 &ett_z3950_ValueDescription,
12449 &ett_z3950_UnitInfo,
12450 &ett_z3950_SEQUENCE_OF_UnitType,
12451 &ett_z3950_UnitType,
12452 &ett_z3950_SEQUENCE_OF_Units,
12453 &ett_z3950_Units,
12454 &ett_z3950_CategoryList,
12455 &ett_z3950_SEQUENCE_OF_CategoryInfo,
12456 &ett_z3950_CategoryInfo,
12457 &ett_z3950_CommonInfo,
12458 &ett_z3950_HumanString,
12459 &ett_z3950_HumanString_item,
12460 &ett_z3950_IconObject,
12461 &ett_z3950_IconObject_item,
12462 &ett_z3950_T_bodyType,
12463 &ett_z3950_ContactInfo,
12464 &ett_z3950_NetworkAddress,
12465 &ett_z3950_T_internetAddress,
12466 &ett_z3950_T_osiPresentationAddress,
12467 &ett_z3950_T_networkAddress_other,
12468 &ett_z3950_AccessInfo,
12469 &ett_z3950_SEQUENCE_OF_QueryTypeDetails,
12470 &ett_z3950_T_diagnosticsSets,
12471 &ett_z3950_SEQUENCE_OF_AttributeSetId,
12472 &ett_z3950_T_schemas,
12473 &ett_z3950_T_recordSyntaxes,
12474 &ett_z3950_T_resourceChallenges,
12475 &ett_z3950_T_variantSets,
12476 &ett_z3950_SEQUENCE_OF_ElementSetName,
12477 &ett_z3950_QueryTypeDetails,
12478 &ett_z3950_PrivateCapabilities,
12479 &ett_z3950_T_privateCapabilities_operators,
12480 &ett_z3950_T_privateCapabilities_operators_item,
12481 &ett_z3950_SEQUENCE_OF_SearchKey,
12482 &ett_z3950_RpnCapabilities,
12483 &ett_z3950_T_operators,
12484 &ett_z3950_Iso8777Capabilities,
12485 &ett_z3950_ProximitySupport,
12486 &ett_z3950_T_unitsSupported,
12487 &ett_z3950_T_unitsSupported_item,
12488 &ett_z3950_T_proximitySupport_unitsSupported_item_private,
12489 &ett_z3950_SearchKey,
12490 &ett_z3950_AccessRestrictions,
12491 &ett_z3950_AccessRestrictions_item,
12492 &ett_z3950_T_accessChallenges,
12493 &ett_z3950_Costs,
12494 &ett_z3950_T_otherCharges,
12495 &ett_z3950_T_otherCharges_item,
12496 &ett_z3950_Charge,
12497 &ett_z3950_DatabaseList,
12498 &ett_z3950_AttributeCombinations,
12499 &ett_z3950_SEQUENCE_OF_AttributeCombination,
12500 &ett_z3950_AttributeCombination,
12501 &ett_z3950_AttributeOccurrence,
12502 &ett_z3950_T_attributeOccurrence_attributeValues,
12503 &ett_z3950_BriefBib,
12504 &ett_z3950_SEQUENCE_OF_FormatSpec,
12505 &ett_z3950_FormatSpec,
12506 &ett_z3950_GenericRecord,
12507 &ett_z3950_TaggedElement,
12508 &ett_z3950_ElementData,
12509 &ett_z3950_SEQUENCE_OF_TaggedElement,
12510 &ett_z3950_ElementMetaData,
12511 &ett_z3950_SEQUENCE_OF_HitVector,
12512 &ett_z3950_SEQUENCE_OF_Variant,
12513 &ett_z3950_TagPath,
12514 &ett_z3950_TagPath_item,
12515 &ett_z3950_Order,
12516 &ett_z3950_Usage,
12517 &ett_z3950_HitVector,
12518 &ett_z3950_Variant,
12519 &ett_z3950_T_triples,
12520 &ett_z3950_T_triples_item,
12521 &ett_z3950_T_variant_triples_item_value,
12522 &ett_z3950_TaskPackage,
12523 &ett_z3950_PromptObject,
12524 &ett_z3950_Challenge,
12525 &ett_z3950_Challenge_item,
12526 &ett_z3950_T_promptInfo,
12527 &ett_z3950_Response,
12528 &ett_z3950_Response_item,
12529 &ett_z3950_T_promptResponse,
12530 &ett_z3950_PromptId,
12531 &ett_z3950_T_enummeratedPrompt,
12532 &ett_z3950_Encryption,
12533 &ett_z3950_DES_RN_Object,
12534 &ett_z3950_DRNType,
12535 &ett_z3950_KRBObject,
12536 &ett_z3950_KRBRequest,
12537 &ett_z3950_KRBResponse,
12538 &ett_z3950_SearchInfoReport,
12539 &ett_z3950_SearchInfoReport_item,
12540 &ett_z3950_ResultsByDB,
12541 &ett_z3950_ResultsByDB_item,
12542 &ett_z3950_T_databases,
12543 &ett_z3950_QueryExpression,
12544 &ett_z3950_T_queryExpression_term,
12545
12546 /*--- End of included file: packet-z3950-ettarr.c ---*/
12547 #line 1134 "./asn1/z3950/packet-z3950-template.c"
12548 };
12549
12550 module_t *z3950_module;
12551
12552 /* Expert info */
12553 static ei_register_info ei[] = {
12554 /* Z39.50 expert info */
12555
12556 /* MARC expert info */
12557 { &ei_marc_invalid_length, { "marc.invalid_length", PI_MALFORMED, PI_ERROR,
12558 "MARC record too short", EXPFILL }},
12559 { &ei_marc_invalid_value, { "marc.invalid_value", PI_MALFORMED, PI_ERROR,
12560 "MARC field has invalid value", EXPFILL }},
12561 { &ei_marc_invalid_record_length, { "marc.invalid_record_length", PI_MALFORMED, PI_ERROR,
12562 "MARC length field has invalid value", EXPFILL }},
12563 };
12564
12565 expert_module_t* expert_z3950;
12566
12567
12568 /* Register protocol */
12569 proto_z3950 = proto_register_protocol(PNAME, PSNAME, PFNAME);
12570 /* Register fields and subtrees */
12571 proto_register_field_array(proto_z3950, hf, array_length(hf));
12572 proto_register_subtree_array(ett, array_length(ett));
12573 expert_z3950 = expert_register_protocol(proto_z3950);
12574 expert_register_field_array(expert_z3950, ei, array_length(ei));
12575
12576 /* Register preferences */
12577 z3950_module = prefs_register_protocol(proto_z3950, NULL);
12578 prefs_register_bool_preference(z3950_module, "desegment_buffers",
12579 "Reassemble Z39.50 buffers spanning multiple TCP segments",
12580 "Whether the Z39.50 dissector should reassemble TDS buffers spanning multiple TCP segments. "
12581 "To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
12582 &z3950_desegment);
12583
12584 /* Allow dissector to be found by name. */
12585 z3950_handle = register_dissector(PSNAME, dissect_z3950_segment,
12586 proto_z3950);
12587
12588 }
12589
12590 /*--- proto_reg_handoff_z3950 ---------------------------------------*/
12591 void
proto_reg_handoff_z3950(void)12592 proto_reg_handoff_z3950(void)
12593 {
12594
12595 dissector_add_uint_with_preference("tcp.port",
12596 global_z3950_port, z3950_handle);
12597
12598
12599 /*--- Included file: packet-z3950-dis-tab.c ---*/
12600 #line 1 "./asn1/z3950/packet-z3950-dis-tab.c"
12601 register_ber_oid_dissector("1.2.840.10003.5.100", dissect_Explain_Record_PDU, proto_z3950, "Explain-record");
12602 register_ber_oid_dissector("1.2.840.10003.5.101", dissect_SutrsRecord_PDU, proto_z3950, "Sutrs-record");
12603 register_ber_oid_dissector("1.2.840.10003.5.102", dissect_OPACRecord_PDU, proto_z3950, "OPAC-record");
12604 register_ber_oid_dissector("1.2.840.10003.5.103", dissect_BriefBib_PDU, proto_z3950, "Summary-record");
12605 register_ber_oid_dissector("1.2.840.10003.5.105", dissect_GenericRecord_PDU, proto_z3950, "GRS-1-record");
12606 register_ber_oid_dissector("1.2.840.10003.5.106", dissect_TaskPackage_PDU, proto_z3950, "ESTaskPackage");
12607 register_ber_oid_dissector("1.2.840.10003.4.2", dissect_DiagnosticFormat_PDU, proto_z3950, "diag-1");
12608 register_ber_oid_dissector("1.2.840.10003.8.1", dissect_PromptObject_PDU, proto_z3950, "Prompt-1");
12609 register_ber_oid_dissector("1.2.840.10003.8.2", dissect_DES_RN_Object_PDU, proto_z3950, "DES-1");
12610 register_ber_oid_dissector("1.2.840.10003.8.3", dissect_KRBObject_PDU, proto_z3950, "KRB-1");
12611 register_ber_oid_dissector("1.2.840.10003.10.1", dissect_SearchInfoReport_PDU, proto_z3950, "SearchResult-1");
12612 register_ber_oid_dissector("1.2.840.10003.10.1000.17.1", dissect_OCLC_UserInformation_PDU, proto_z3950, "OCLC-UserInfo-1");
12613
12614
12615 /*--- End of included file: packet-z3950-dis-tab.c ---*/
12616 #line 1185 "./asn1/z3950/packet-z3950-template.c"
12617
12618 register_ber_oid_dissector(Z3950_RECORDSYNTAX_MARC21_OID, dissect_marc_record, proto_z3950, "MARC21");
12619
12620 oid_add_from_string("Z39.50", "1.2.840.10003");
12621 oid_add_from_string("Z39.50-APDU", "1.2.840.10003.2");
12622 oid_add_from_string("Z39.50-attributeSet", "1.2.840.10003.3");
12623 oid_add_from_string("Z39.50-diagnostic", "1.2.840.10003.4");
12624 oid_add_from_string("Z39.50-recordSyntax", "1.2.840.10003.5");
12625 oid_add_from_string("Z39.50-resourceReport", "1.2.840.10003.7");
12626 oid_add_from_string("Z39.50-accessControl", "1.2.840.10003.8");
12627 oid_add_from_string("Z39.50-extendedService", "1.2.840.10003.9");
12628 oid_add_from_string("Z39.50-userinfoFormat", "1.2.840.10003.10");
12629 oid_add_from_string("Z39.50-elementSpec", "1.2.840.10003.11");
12630 oid_add_from_string("Z39.50-variantSet", "1.2.840.10003.12");
12631 oid_add_from_string("Z39.50-schema", "1.2.840.10003.13");
12632 oid_add_from_string("Z39.50-tagSet", "1.2.840.10003.14");
12633 oid_add_from_string("Z39.50-negotiation", "1.2.840.10003.15");
12634 oid_add_from_string("Z39.50-query", "1.2.840.10003.16");
12635 /* MARC Record Syntaxes */
12636 oid_add_from_string("UNIMARC","1.2.840.10003.5.1");
12637 oid_add_from_string("INTERMARC","1.2.840.10003.5.2");
12638 oid_add_from_string("CCF","1.2.840.10003.5.3");
12639 oid_add_from_string("MARC21 (formerly USMARC)",Z3950_RECORDSYNTAX_MARC21_OID);
12640 oid_add_from_string("UKMARC","1.2.840.10003.5.11");
12641 oid_add_from_string("NORMARC","1.2.840.10003.5.12");
12642 oid_add_from_string("Librismarc","1.2.840.10003.5.13");
12643 oid_add_from_string("danMARC2","1.2.840.10003.5.14");
12644 oid_add_from_string("Finmarc","1.2.840.10003.5.15");
12645 oid_add_from_string("MAB","1.2.840.10003.5.16");
12646 oid_add_from_string("Canmarc","1.2.840.10003.5.17");
12647 oid_add_from_string("SBN","1.2.840.10003.5.18");
12648 oid_add_from_string("Picamarc","1.2.840.10003.5.19");
12649 oid_add_from_string("Ausmarc","1.2.840.10003.5.20");
12650 oid_add_from_string("Ibermarc","1.2.840.10003.5.21");
12651 oid_add_from_string("Catmarc","1.2.840.10003.5.22");
12652 oid_add_from_string("Malmarc","1.2.840.10003.5.23");
12653 oid_add_from_string("JPmarc","1.2.840.10003.5.24");
12654 oid_add_from_string("SWEMarc","1.2.840.10003.5.25");
12655 oid_add_from_string("SIGLEmarc","1.2.840.10003.5.26");
12656 oid_add_from_string("ISDS/ISSNmarc","1.2.840.10003.5.27");
12657 oid_add_from_string("RUSMarc","1.2.840.10003.5.28");
12658 oid_add_from_string("Hunmarc","1.2.840.10003.5.29");
12659 oid_add_from_string("NACSIS-CATP","1.2.840.10003.5.30");
12660 oid_add_from_string("FINMARC2000","1.2.840.10003.5.31");
12661 oid_add_from_string("MARC21-fin","1.2.840.10003.5.32");
12662 oid_add_from_string("COMARC","1.2.840.10003.5.33");
12663 /* Non-MARC record syntaxes */
12664 oid_add_from_string("Explain","1.2.840.10003.5.100");
12665 oid_add_from_string("Explain with ZSQL","1.2.840.10003.5.100.1");
12666 oid_add_from_string("SUTRS","1.2.840.10003.5.101");
12667 oid_add_from_string("OPAC","1.2.840.10003.5.102");
12668 oid_add_from_string("Summary","1.2.840.10003.5.103");
12669 oid_add_from_string("GRS-0","1.2.840.10003.5.104");
12670 oid_add_from_string("GRS-1","1.2.840.10003.5.105");
12671 oid_add_from_string("ESTaskPackage","1.2.840.10003.5.106");
12672 oid_add_from_string("fragment","1.2.840.10003.5.108");
12673 /* Attribute sets */
12674 oid_add_from_string("bib-1",Z3950_ATSET_BIB1_OID);
12675 oid_add_from_string("exp-1","1.2.840.10003.3.2");
12676 oid_add_from_string("ext-1","1.2.840.10003.3.3");
12677 oid_add_from_string("ccl-1","1.2.840.10003.3.4");
12678 oid_add_from_string("gils","1.2.840.10003.3.5");
12679 oid_add_from_string("stas","1.2.840.10003.3.6");
12680 oid_add_from_string("collections-1","1.2.840.10003.3.7");
12681 oid_add_from_string("cimi-1","1.2.840.10003.3.8");
12682 oid_add_from_string("geo-1","1.2.840.10003.3.9");
12683 oid_add_from_string("ZBIG","1.2.840.10003.3.10");
12684 oid_add_from_string("util","1.2.840.10003.3.11");
12685 oid_add_from_string("xd-1","1.2.840.10003.3.12");
12686 oid_add_from_string("Zthes","1.2.840.10003.3.13");
12687 oid_add_from_string("Fin-1","1.2.840.10003.3.14");
12688 oid_add_from_string("Dan-1","1.2.840.10003.3.15");
12689 oid_add_from_string("Holdings","1.2.840.10003.3.16");
12690 oid_add_from_string("MARC","1.2.840.10003.3.17");
12691 oid_add_from_string("bib-2","1.2.840.10003.3.18");
12692 oid_add_from_string("ZeeRex","1.2.840.10003.3.19");
12693 /* Diagnostic sets */
12694 oid_add_from_string("bib-1-diagnostics",Z3950_DIAGSET_BIB1_OID);
12695
12696 }
12697
12698 /* MARC routines */
12699
12700 static int
dissect_marc_record(tvbuff_t * tvb,packet_info * pinfo,proto_tree * tree,void * data _U_)12701 dissect_marc_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * data _U_)
12702 {
12703 proto_item *record_item, *leader_item,
12704 *directory_item,
12705 *fields_item,
12706 *item;
12707 proto_tree *marc_tree, *leader_tree,
12708 *directory_tree,
12709 *fields_tree;
12710 marc_directory_entry *marc_directory;
12711 guint len = tvb_reported_length(tvb);
12712 const guint8 *marc_value_str;
12713 guint record_length = 0,
12714 data_offset = 0,
12715 length_of_field_size,
12716 starting_character_position_size,
12717 directory_entry_len,
12718 directory_entry_count,
12719 dir_index,
12720 offset = 0;
12721 guint32 marc_value_char;
12722
12723 record_item = proto_tree_add_item(tree, hf_marc_record,
12724 tvb, 0, len, ENC_NA);
12725 marc_tree = proto_item_add_subtree(record_item, ett_marc_record);
12726 if (len < MARC_LEADER_LENGTH) {
12727 expert_add_info_format(pinfo, record_item,
12728 &ei_marc_invalid_record_length,
12729 "MARC record length %d is shorter than leader", len);
12730 }
12731 leader_item = proto_tree_add_item(marc_tree, hf_marc_leader, tvb, 0,
12732 MARC_LEADER_LENGTH, ENC_NA);
12733 leader_tree = proto_item_add_subtree(leader_item, ett_marc_leader);
12734
12735 marc_value_str = NULL;
12736 item = proto_tree_add_item_ret_string(leader_tree,
12737 hf_marc_leader_length, tvb, offset, 5, ENC_ASCII|ENC_NA,
12738 pinfo->pool,&marc_value_str);
12739 offset += 5;
12740
12741 if (marc_value_str) {
12742 if (isdigit_string(marc_value_str)) {
12743 record_length = (guint)strtoul(marc_value_str, NULL, 10);
12744 }
12745 else {
12746 expert_add_info_format(pinfo, item,
12747 &ei_marc_invalid_value,
12748 "MARC length field '%s' contains invalid characters",
12749 marc_value_str );
12750 }
12751 if (record_length != len) {
12752 expert_add_info_format(pinfo, item,
12753 &ei_marc_invalid_length,
12754 "MARC length field value %d does not match reported length %d",
12755 record_length, len);
12756 }
12757 }
12758
12759 proto_tree_add_item(leader_tree, hf_marc_leader_status, tvb, offset, 1, ENC_ASCII);
12760 offset += 1;
12761 proto_tree_add_item(leader_tree, hf_marc_leader_type, tvb, offset, 1, ENC_ASCII);
12762 offset += 1;
12763 proto_tree_add_item(leader_tree, hf_marc_leader_biblevel, tvb, offset, 1, ENC_ASCII);
12764 offset += 1;
12765 proto_tree_add_item(leader_tree, hf_marc_leader_control, tvb, offset, 1, ENC_ASCII);
12766 offset += 1;
12767 proto_tree_add_item(leader_tree, hf_marc_leader_encoding, tvb, offset, 1, ENC_ASCII);
12768 offset += 1;
12769 marc_value_char = MARC_CHAR_UNINITIALIZED;
12770 item = proto_tree_add_item_ret_uint(leader_tree, hf_marc_leader_indicator_count,
12771 tvb, offset, 1, ENC_ASCII, &marc_value_char);
12772 offset += 1;
12773 if (marc_value_char != MARC_CHAR_UNINITIALIZED) {
12774 if (!marc_isdigit(marc_value_char)) {
12775 expert_add_info_format(pinfo, item, &ei_marc_invalid_value,
12776 "Indicator count '%c' is invalid", marc_value_char);
12777 }
12778 else {
12779 if (marc_char_to_int(marc_value_char) != 2) {
12780 expert_add_info_format(pinfo, item, &ei_marc_invalid_length,
12781 "MARC21 requires indicator count equal 2, not %d",
12782 marc_char_to_int(marc_value_char));
12783 }
12784 }
12785 }
12786
12787 marc_value_char = MARC_CHAR_UNINITIALIZED;
12788 item = proto_tree_add_item_ret_uint(leader_tree, hf_marc_leader_subfield_count,
12789 tvb, offset, 1, ENC_ASCII, &marc_value_char);
12790 offset += 1;
12791 if (marc_value_char != MARC_CHAR_UNINITIALIZED) {
12792 if (!marc_isdigit(marc_value_char)) {
12793 expert_add_info_format(pinfo, item, &ei_marc_invalid_value,
12794 "Subfield count '%c' is invalid", marc_value_char);
12795 }
12796 else {
12797 if (marc_char_to_int(marc_value_char) != 2) {
12798 expert_add_info_format(pinfo, item, &ei_marc_invalid_length,
12799 "MARC21 requires subfield count equal 2, not %d",
12800 marc_char_to_int(marc_value_char));
12801 }
12802 }
12803 }
12804
12805 item = proto_tree_add_item_ret_string(leader_tree, hf_marc_leader_data_offset,
12806 tvb, offset, 5, ENC_ASCII|ENC_NA,
12807 pinfo->pool,&marc_value_str);
12808 offset += 5;
12809 if (marc_value_str) {
12810 if (isdigit_string(marc_value_str)) {
12811 data_offset = (guint)strtoul(marc_value_str, NULL, 10);
12812 }
12813 else {
12814 expert_add_info_format(pinfo, item,
12815 &ei_marc_invalid_value,
12816 "MARC data offset field '%s' contains invalid characters",
12817 marc_value_str );
12818 }
12819 if (data_offset < MARC_LEADER_LENGTH ||
12820 data_offset > record_length) {
12821 expert_add_info_format(pinfo, item,
12822 &ei_marc_invalid_length,
12823 "MARC data offset %d does not lie within record (length %d)",
12824 data_offset, len);
12825 }
12826 }
12827 proto_tree_add_item(leader_tree, hf_marc_leader_encoding_level, tvb, offset, 1, ENC_ASCII);
12828 offset += 1;
12829 proto_tree_add_item(leader_tree, hf_marc_leader_descriptive_cataloging, tvb, offset, 1, ENC_ASCII);
12830 offset += 1;
12831 proto_tree_add_item(leader_tree, hf_marc_leader_multipart_level, tvb, offset, 1, ENC_ASCII);
12832 offset += 1;
12833 marc_value_char = MARC_CHAR_UNINITIALIZED;
12834 item = proto_tree_add_item_ret_uint(leader_tree, hf_marc_leader_length_of_field_length,
12835 tvb, offset, 1, ENC_ASCII, &marc_value_char);
12836 offset += 1;
12837 length_of_field_size = 4;
12838 if (marc_value_char != MARC_CHAR_UNINITIALIZED) {
12839 if (!marc_isdigit(marc_value_char)) {
12840 expert_add_info_format(pinfo, item, &ei_marc_invalid_value,
12841 "Length-of field-length '%c' is invalid", marc_value_char);
12842 }
12843 else {
12844 if (marc_char_to_int(marc_value_char) != 4) {
12845 expert_add_info_format(pinfo, item, &ei_marc_invalid_length,
12846 "MARC21 requires length-of-field equal 4, not %d",
12847 marc_char_to_int(marc_value_char));
12848 }
12849 }
12850 }
12851
12852 marc_value_char = MARC_CHAR_UNINITIALIZED;
12853 item = proto_tree_add_item_ret_uint(leader_tree, hf_marc_leader_starting_character_position_length,
12854 tvb, offset, 1, ENC_ASCII, &marc_value_char);
12855 offset += 1;
12856 starting_character_position_size = 5;
12857 if (marc_value_char != MARC_CHAR_UNINITIALIZED) {
12858 if (!marc_isdigit(marc_value_char)) {
12859 expert_add_info_format(pinfo, item, &ei_marc_invalid_value,
12860 "Starting-character-position length '%c' is invalid", marc_value_char);
12861 }
12862 else {
12863 if (marc_char_to_int(marc_value_char) != 5) {
12864 expert_add_info_format(pinfo, item, &ei_marc_invalid_length,
12865 "MARC21 requires starting-character-position equal 5, not %d",
12866 marc_char_to_int(marc_value_char));
12867 }
12868 }
12869 }
12870
12871 proto_tree_add_item(leader_tree, hf_marc_leader_implementation_defined_length, tvb, offset, 1, ENC_ASCII);
12872 offset += 1;
12873
12874 /* One position is defined as unused-must-be-zero.
12875 * Don't bother displaying or checking it. */
12876 offset += 1;
12877
12878 /* Process the directory */
12879
12880 directory_entry_len = 3 + length_of_field_size
12881 + starting_character_position_size;
12882 directory_entry_count = ((data_offset - 1) - MARC_LEADER_LENGTH) / directory_entry_len;
12883
12884 marc_directory = (marc_directory_entry *)wmem_alloc0(pinfo->pool,
12885 directory_entry_count * sizeof(marc_directory_entry));
12886
12887 directory_item = proto_tree_add_item(marc_tree, hf_marc_directory,
12888 tvb, offset, data_offset - offset, ENC_NA);
12889 directory_tree = proto_item_add_subtree(directory_item, ett_marc_directory);
12890
12891 dir_index = 0;
12892 /* Minus one for the terminator character */
12893 while (offset < (data_offset - 1)) {
12894 guint32 tag_value = 0,
12895 length_value = 0,
12896 starting_char_value = 0;
12897 proto_item *length_item;
12898 proto_item *directory_entry_item;
12899 proto_tree *directory_entry_tree;
12900
12901 directory_entry_item = proto_tree_add_item(directory_tree, hf_marc_directory_entry,
12902 tvb, offset, directory_entry_len, ENC_NA);
12903 directory_entry_tree = proto_item_add_subtree(directory_entry_item, ett_marc_directory_entry);
12904
12905 marc_value_str = NULL;
12906 item = proto_tree_add_item_ret_string(directory_entry_tree, hf_marc_directory_entry_tag,
12907 tvb, offset, 3, ENC_ASCII,
12908 pinfo->pool, &marc_value_str);
12909 offset += 3;
12910 if (marc_value_str) {
12911 if (isdigit_string(marc_value_str)) {
12912 tag_value = (guint)strtoul(marc_value_str, NULL, 10);
12913 }
12914 else {
12915 expert_add_info_format(pinfo, item,
12916 &ei_marc_invalid_value,
12917 "MARC directory tag value %d ('%s') contains invalid characters",
12918 dir_index, marc_value_str );
12919 }
12920 }
12921 marc_value_str = NULL;
12922 length_item = proto_tree_add_item_ret_string(directory_entry_tree,
12923 hf_marc_directory_entry_length,
12924 tvb, offset, length_of_field_size, ENC_ASCII,
12925 pinfo->pool, &marc_value_str);
12926 offset += length_of_field_size;
12927 if (marc_value_str) {
12928 if (isdigit_string(marc_value_str)) {
12929 length_value = (guint)strtoul(marc_value_str, NULL, 10);
12930 }
12931 else {
12932 expert_add_info_format(pinfo, length_item,
12933 &ei_marc_invalid_value,
12934 "MARC directory length value %d ('%s') contains invalid characters",
12935 dir_index, marc_value_str );
12936 }
12937 }
12938 marc_value_str = NULL;
12939 item = proto_tree_add_item_ret_string(directory_entry_tree, hf_marc_directory_entry_starting_position,
12940 tvb, offset, starting_character_position_size, ENC_ASCII,
12941 pinfo->pool, &marc_value_str);
12942 offset += starting_character_position_size;
12943 if (marc_value_str) {
12944 if (isdigit_string(marc_value_str)) {
12945 starting_char_value = (guint)strtoul(marc_value_str, NULL, 10);
12946 }
12947 else {
12948 expert_add_info_format(pinfo, item,
12949 &ei_marc_invalid_value,
12950 "MARC directory entry %d starting char value '%s' contains invalid characters",
12951 dir_index, marc_value_str );
12952 }
12953 }
12954
12955 if (starting_char_value >= (record_length - data_offset)) {
12956 expert_add_info_format(pinfo, item,
12957 &ei_marc_invalid_value,
12958 "MARC directory entry %d starting char value %d is outside record size %d",
12959 dir_index, starting_char_value, (record_length - data_offset));
12960 }
12961 if ((starting_char_value + length_value) >= (record_length - data_offset)) {
12962 expert_add_info_format(pinfo, length_item,
12963 &ei_marc_invalid_value,
12964 "MARC directory entry %d length value %d goes outside record size %d",
12965 dir_index, length_value, (record_length - data_offset));
12966 }
12967 marc_directory[dir_index].tag = tag_value;
12968 marc_directory[dir_index].length = length_value;
12969 marc_directory[dir_index].starting_character = starting_char_value;
12970 dir_index++;
12971 }
12972 proto_tree_add_item(directory_tree, hf_marc_directory_terminator,
12973 tvb, offset, 1, ENC_ASCII);
12974 offset += 1;
12975
12976 fields_item = proto_tree_add_item(marc_tree, hf_marc_fields,
12977 tvb, offset, record_length - offset, ENC_NA);
12978 fields_tree = proto_item_add_subtree(fields_item, ett_marc_fields);
12979
12980 for (dir_index = 0; dir_index < directory_entry_count; dir_index++) {
12981 const gchar *tag_str;
12982 proto_item *field_item;
12983 proto_tree *field_tree;
12984
12985 field_item = proto_tree_add_item(fields_tree, hf_marc_field,
12986 tvb, offset, marc_directory[dir_index].length, ENC_NA);
12987 field_tree = proto_item_add_subtree(field_item, ett_marc_field);
12988
12989 tag_str = try_val_to_str(marc_directory[dir_index].tag, marc_tag_names);
12990 if (tag_str) {
12991 proto_item_append_text(field_item," Tag %03d (%s)",
12992 marc_directory[dir_index].tag, tag_str);
12993 }
12994 else {
12995 proto_item_append_text(field_item," Tag %03d",
12996 marc_directory[dir_index].tag);
12997 }
12998
12999 if (marc_directory[dir_index].tag < 10) {
13000 proto_tree_add_item(field_tree, hf_marc_field_control,
13001 tvb, offset, marc_directory[dir_index].length - 1, ENC_ASCII|ENC_NA);
13002 offset += marc_directory[dir_index].length - 1;
13003 proto_tree_add_item(field_tree, hf_marc_field_terminator,
13004 tvb, offset, 1, ENC_ASCII);
13005 offset += 1;
13006 }
13007 else {
13008 guint next_offset = offset + marc_directory[dir_index].length - 1;
13009 proto_tree_add_item(field_tree, hf_marc_field_indicator1,
13010 tvb, offset, 1, ENC_ASCII);
13011 offset += 1;
13012 proto_tree_add_item(field_tree, hf_marc_field_indicator2,
13013 tvb, offset, 1, ENC_ASCII);
13014 offset += 1;
13015 do {
13016 gint next_subfield;
13017 proto_tree_add_item(field_tree, hf_marc_field_subfield_indicator,
13018 tvb, offset, 1, ENC_ASCII);
13019 offset += 1;
13020 proto_tree_add_item(field_tree, hf_marc_field_subfield_tag,
13021 tvb, offset, 1, ENC_ASCII);
13022 offset += 1;
13023 next_subfield = tvb_find_guint8(tvb, offset, next_offset - offset,
13024 MARC_SUBFIELD_INDICATOR);
13025 if (next_subfield >= 0) {
13026 proto_tree_add_item(field_tree, hf_marc_field_subfield,
13027 tvb, offset, next_subfield - offset, ENC_ASCII|ENC_NA);
13028 offset += (next_subfield - offset);
13029 }
13030 else {
13031 proto_tree_add_item(field_tree, hf_marc_field_subfield,
13032 tvb, offset, next_offset - offset, ENC_ASCII|ENC_NA);
13033 offset = next_offset;
13034 }
13035 } while (offset < next_offset);
13036 proto_tree_add_item(field_tree, hf_marc_field_terminator,
13037 tvb, offset, 1, ENC_ASCII);
13038 offset += 1;
13039 }
13040
13041 }
13042 proto_tree_add_item(marc_tree, hf_marc_record_terminator,
13043 tvb, offset, 1, ENC_ASCII);
13044 offset += 1;
13045
13046 if (offset != len) {
13047 expert_add_info_format(pinfo, record_item,
13048 &ei_marc_invalid_record_length,
13049 "MARC record component length %d does not match record length %d",
13050 offset, len);
13051 }
13052
13053 return len;
13054 }
13055
13056 /*
13057 * Editor modelines
13058 *
13059 * Local Variables:
13060 * c-basic-offset: 4
13061 * tab-width: 8
13062 * indent-tabs-mode: nil
13063 * End:
13064 *
13065 * ex: set shiftwidth=4 tabstop=8 expandtab:
13066 * :indentSize=4:tabSize=8:noTabs=true:
13067 */
13068