|
|
1.1 root 1: -- do-dec.py - manually augmented DistributedOperations module
2:
3: -- $Header: /f/osi/dsap/x500as/RCS/do-dec.py,v 7.1 90/07/09 14:35:56 mrose Exp $
4: --
5: --
6: -- $Log: do-dec.py,v $
7: -- Revision 7.1 90/07/09 14:35:56 mrose
8: -- sync
9: --
10: -- Revision 7.0 89/11/23 21:50:23 mrose
11: -- Release 6.0
12: --
13:
14: --
15: -- NOTICE
16: --
17: -- Acquisition, use, and distribution of this module and related
18: -- materials are subject to the restrictions of a license agreement.
19: -- Consult the Preface in the User's Manual for the full terms of
20: -- this agreement.
21: --
22: --
23:
24:
25: DO
26: {
27: joint-iso-ccitt
28: ds(5)
29: modules(1)
30: distributedOperations(3)
31: }
32:
33: DEFINITIONS ::=
34:
35: %{
36: #include "quipu/util.h"
37: #include "quipu/entry.h"
38: #include "quipu/common.h"
39: #include "quipu/dsargument.h"
40:
41: extern LLog * log_dsap;
42:
43: #define decode_DSE_PSAPaddr parse_DSE_PSAPaddr
44: #define decode_UNIV_UTCTime parse_UNIV_UTCTime
45:
46: %}
47:
48: PREFIXES encode decode print
49: BEGIN
50:
51: -- EXPORTS
52: -- ContinuationReference ,
53: -- OperationProgress ,
54: -- DSAReferralParm;
55:
56: IMPORTS
57: DistinguishedName ,
58: Name ,
59: RelativeDistinguishedName
60: FROM IF
61: {
62: joint-iso-ccitt
63: ds(5)
64: modules(1)
65: informationFramework(1)
66: }
67:
68: AlgorithmIdentifier
69: FROM AF
70: {
71: joint-iso-ccitt
72: ds(5)
73: modules(1)
74: authenticationFramework(7)
75: }
76:
77: ReadArgument ,
78: ReadResult ,
79: CompareArgument ,
80: CompareResult ,
81: AbandonArgument ,
82: AbandonResult ,
83: ListArgument ,
84: ListResult ,
85: SearchArgument ,
86: SearchResult ,
87: AddEntryArgument ,
88: AddEntryResult ,
89: RemoveEntryArgument ,
90: RemoveEntryResult ,
91: ModifyEntryArgument ,
92: ModifyEntryResult ,
93: ModifyRDNArgument ,
94: ModifyRDNResult ,
95: SecurityParameters
96: FROM DAS
97: {
98: joint-iso-ccitt
99: ds(5)
100: modules(1)
101: directoryAbstractService(2)
102: };
103:
104: DECODER decode
105:
106: ChainedReadArgument [[P struct ds_op_arg *]]
107: ::=
108: %{
109: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedReadArgument"));
110: %}
111: CHOICE
112: {
113: ChainedReadArgumentData [[p parm]] ,
114: SEQUENCE
115: {
116: ChainedReadArgumentData [[p parm]] ,
117: AlgorithmIdentifier [[p (struct alg_id *)0 ]] ,
118: BIT STRING
119: }
120: }
121: %{
122: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedReadArgument"));
123: %}
124:
125: ChainedReadArgumentData [[P struct ds_op_arg *]]
126: ::=
127: %{
128: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedReadArgumentData"));
129: parm->dca_dsarg.arg_type = OP_READ;
130: %}
131: SET
132: {
133: ChainingArgument [[p &(parm->dca_charg)]] ,
134: [0] ReadArgument [[p &(parm->dca_dsarg.arg_rd)]]
135: }
136: %{
137: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedReadArgumentData"));
138: %}
139:
140: ChainedReadResult [[P struct ds_op_res *]]
141: ::=
142: %{
143: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedReadResult"));
144: %}
145: CHOICE
146: {
147: ChainedReadResultData [[p parm]] ,
148: SEQUENCE
149: {
150: ChainedReadResultData [[p parm]] ,
151: AlgorithmIdentifier [[p (struct alg_id *)0 ]] ,
152: BIT STRING
153: }
154: }
155: %{
156: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedReadResult"));
157: %}
158:
159: ChainedReadResultData [[P struct ds_op_res *]]
160: ::=
161: %{
162: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedReadResultData"));
163: parm->dcr_dsres.result_type = OP_READ;
164: %}
165: SET
166: {
167: ChainingResult [[p &(parm->dcr_chres)]] ,
168: [0] ReadResult [[p &(parm->dcr_dsres.res_rd)]]
169: }
170: %{
171: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedReadResultData"));
172: %}
173:
174: ChainedCompareArgument [[P struct ds_op_arg *]]
175: ::=
176: %{
177: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedCompareArgument"));
178: %}
179: CHOICE
180: {
181: ChainedCompareArgumentData [[p parm]] ,
182: SEQUENCE
183: {
184: ChainedCompareArgumentData [[p parm]] ,
185: AlgorithmIdentifier [[p (struct alg_id *)0 ]] ,
186: BIT STRING
187: }
188: }
189: %{
190: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedCompareArgument"));
191: %}
192:
193: ChainedCompareArgumentData [[P struct ds_op_arg *]]
194: ::=
195: %{
196: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedCompareArgumentData"));
197: parm->dca_dsarg.arg_type = OP_COMPARE;
198: %}
199: SET
200: {
201: ChainingArgument [[p &(parm->dca_charg)]] ,
202: [0] CompareArgument [[p &(parm->dca_dsarg.arg_cm)]]
203: }
204: %{
205: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedCompareArgumentData"));
206: %}
207:
208: ChainedCompareResult [[P struct ds_op_res *]]
209: ::=
210: %{
211: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedCompareResult"));
212: %}
213: CHOICE
214: {
215: ChainedCompareResultData [[p parm]] ,
216: SEQUENCE
217: {
218: ChainedCompareResultData [[p parm]] ,
219: AlgorithmIdentifier [[p (struct alg_id *)0 ]] ,
220: BIT STRING
221: }
222: }
223: %{
224: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedCompareResult"));
225: %}
226:
227: ChainedCompareResultData [[P struct ds_op_res *]]
228: ::=
229: %{
230: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedCompareResultData"));
231: parm->dcr_dsres.result_type = OP_COMPARE;
232: %}
233: SET
234: {
235: ChainingResult [[p &(parm->dcr_chres)]] ,
236: [0] CompareResult [[p &(parm->dcr_dsres.res_cm)]]
237: }
238: %{
239: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedCompareResultData"));
240: %}
241:
242: ChainedAbandonArgument [[P struct ds_op_arg *]]
243: ::=
244: %{
245: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedAbandonArgument"));
246: parm->dca_dsarg.arg_type = OP_ABANDON;
247: %}
248: AbandonArgument [[p &(parm->dca_dsarg.arg_ab)]]
249: %{
250: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedAbandonArgument"));
251: %}
252:
253: ChainedAbandonResult [[P struct ds_op_res *]]
254: ::=
255: %{
256: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedAbandonResult"));
257: parm->dcr_dsres.result_type = OP_ABANDON;
258: %}
259: AbandonResult
260: %{
261: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedAbandonResult"));
262: %}
263:
264: ChainedListArgument [[P struct ds_op_arg *]]
265: ::=
266: %{
267: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedListArgument"));
268: %}
269: CHOICE
270: {
271: ChainedListArgumentData [[p parm]] ,
272: SEQUENCE
273: {
274: ChainedListArgumentData [[p parm]] ,
275: AlgorithmIdentifier [[p (struct alg_id *)0 ]] ,
276: BIT STRING
277: }
278: }
279: %{
280: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedListArgument"));
281: %}
282:
283: ChainedListArgumentData [[P struct ds_op_arg *]]
284: ::=
285: %{
286: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedListArgumentData"));
287: parm->dca_dsarg.arg_type = OP_LIST;
288: %}
289: SET
290: {
291: ChainingArgument [[p &(parm->dca_charg)]] ,
292: [0] ListArgument [[p &(parm->dca_dsarg.arg_ls)]]
293: }
294: %{
295: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedListArgumentData"));
296: %}
297:
298: ChainedListResult [[P struct ds_op_res *]]
299: ::=
300: %{
301: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedListResult"));
302: %}
303: CHOICE
304: {
305: ChainedListResultData [[p parm]] ,
306: SEQUENCE
307: {
308: ChainedListResultData [[p parm]] ,
309: AlgorithmIdentifier [[p (struct alg_id *)0 ]] ,
310: BIT STRING
311: }
312: }
313: %{
314: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedListResult"));
315: %}
316:
317: ChainedListResultData [[P struct ds_op_res *]]
318: ::=
319: %{
320: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedListResultData"));
321: parm->dcr_dsres.result_type = OP_LIST;
322: %}
323: SET
324: {
325: ChainingResult [[p &(parm->dcr_chres)]] ,
326: [0] ListResult [[p &(parm->dcr_dsres.res_ls)]]
327: }
328: %{
329: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedListResultData"));
330: %}
331:
332: ChainedSearchArgument [[P struct ds_op_arg *]]
333: ::=
334: %{
335: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedSearchArgument"));
336: %}
337: CHOICE
338: {
339: ChainedSearchArgumentData [[p parm]] ,
340: SEQUENCE
341: {
342: ChainedSearchArgumentData [[p parm]] ,
343: AlgorithmIdentifier [[p (struct alg_id *)0 ]] ,
344: BIT STRING
345: }
346: }
347: %{
348: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedSearchArgument"));
349: %}
350:
351: ChainedSearchArgumentData [[P struct ds_op_arg *]]
352: ::=
353: %{
354: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedSearchArgumentData"));
355: parm->dca_dsarg.arg_type = OP_SEARCH;
356: %}
357: SET
358: {
359: ChainingArgument [[p &(parm->dca_charg)]] ,
360: [0] SearchArgument [[p &(parm->dca_dsarg.arg_sr)]]
361: }
362: %{
363: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedSearchArgumentData"));
364: %}
365:
366: ChainedSearchResult [[P struct ds_op_res *]]
367: ::=
368: %{
369: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedSearchResult"));
370: %}
371: CHOICE
372: {
373: ChainedSearchResultData [[p parm]] ,
374: SEQUENCE
375: {
376: ChainedSearchResultData [[p parm]] ,
377: AlgorithmIdentifier [[p (struct alg_id *)0 ]] ,
378: BIT STRING
379: }
380: }
381: %{
382: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedSearchResult"));
383: %}
384:
385: ChainedSearchResultData [[P struct ds_op_res *]]
386: ::=
387: %{
388: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedSearchResultData"));
389: parm->dcr_dsres.result_type = OP_SEARCH;
390: %}
391: SET
392: {
393: ChainingResult [[p &(parm->dcr_chres)]] ,
394: [0] SearchResult [[p &(parm->dcr_dsres.res_sr)]]
395: }
396: %{
397: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedSearchResultData"));
398: %}
399:
400: ChainedAddEntryArgument [[P struct ds_op_arg *]]
401: ::=
402: %{
403: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedAddEntryArgument"));
404: %}
405: CHOICE
406: {
407: ChainedAddEntryArgumentData [[p parm]] ,
408: SEQUENCE
409: {
410: ChainedAddEntryArgumentData [[p parm]] ,
411: AlgorithmIdentifier [[p (struct alg_id *)0 ]],
412: BIT STRING
413: }
414: }
415: %{
416: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedAddEntryArgument"));
417: %}
418:
419: ChainedAddEntryArgumentData [[P struct ds_op_arg *]]
420: ::=
421: %{
422: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedAddEntryArgumentData"));
423: parm->dca_dsarg.arg_type = OP_ADDENTRY;
424: %}
425: SET
426: {
427: ChainingArgument [[p &(parm->dca_charg)]] ,
428: [0] AddEntryArgument [[p &(parm->dca_dsarg.arg_ad)]]
429: }
430: %{
431: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedAddEntryArgumentData"));
432: %}
433:
434: ChainedAddEntryResult [[P struct ds_op_res *]]
435: ::=
436: %{
437: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedAddEntryResult"));
438: %}
439: CHOICE
440: {
441: ChainedAddEntryResultData [[p parm]] ,
442: SEQUENCE
443: {
444: ChainedAddEntryResultData [[p parm]] ,
445: AlgorithmIdentifier [[p (struct alg_id *)0 ]],
446: BIT STRING
447: }
448: }
449: %{
450: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedAddEntryResult"));
451: %}
452:
453: ChainedAddEntryResultData [[P struct ds_op_res *]]
454: ::=
455: %{
456: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedAddEntryArgumentResultData"));
457: parm->dcr_dsres.result_type = OP_ADDENTRY;
458: %}
459: SET
460: {
461: ChainingResult [[p &(parm->dcr_chres)]] ,
462: [0] AddEntryResult
463: }
464: %{
465: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedAddEntryArgumentResultData"));
466: %}
467:
468: ChainedRemoveEntryArgument [[P struct ds_op_arg *]]
469: ::=
470: %{
471: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedRemoveEntryArgument"));
472: %}
473: CHOICE
474: {
475: ChainedRemoveEntryArgumentData [[p parm]] ,
476: SEQUENCE
477: {
478: ChainedRemoveEntryArgumentData [[p parm]] ,
479: AlgorithmIdentifier [[p (struct alg_id *)0 ]],
480: BIT STRING
481: }
482: }
483: %{
484: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedRemoveEntryArgument"));
485: %}
486:
487: ChainedRemoveEntryArgumentData [[P struct ds_op_arg *]]
488: ::=
489: %{
490: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedRemoveEntryArgumentData"));
491: parm->dca_dsarg.arg_type = OP_REMOVEENTRY;
492: %}
493: SET
494: {
495: ChainingArgument [[p &(parm->dca_charg)]] ,
496: [0] RemoveEntryArgument [[p &(parm->dca_dsarg.arg_rm)]]
497: }
498: %{
499: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedRemoveEntryArgumentData"));
500: %}
501:
502: ChainedRemoveEntryResult [[P struct ds_op_res *]]
503: ::=
504: %{
505: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedRemoveEntryResult"));
506: %}
507: CHOICE
508: {
509: ChainedRemoveEntryResultData [[p parm]] ,
510: SEQUENCE
511: {
512: ChainedRemoveEntryResultData [[p parm]] ,
513: AlgorithmIdentifier [[p (struct alg_id *)0 ]],
514: BIT STRING
515: }
516: }
517: %{
518: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedRemoveEntryResult"));
519: %}
520:
521: ChainedRemoveEntryResultData [[P struct ds_op_res *]]
522: ::=
523: %{
524: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedRemoveEntryResultData"));
525: parm->dcr_dsres.result_type = OP_REMOVEENTRY;
526: %}
527: SET
528: {
529: ChainingResult [[p &(parm->dcr_chres)]] ,
530: [0] RemoveEntryResult
531: }
532: %{
533: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedRemoveEntryResultData"));
534: %}
535:
536: ChainedModifyEntryArgument [[P struct ds_op_arg *]]
537: ::=
538: %{
539: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedModifyEntryArgument"));
540: %}
541: CHOICE
542: {
543: ChainedModifyEntryArgumentData [[p parm]] ,
544: SEQUENCE
545: {
546: ChainedModifyEntryArgumentData [[p parm]] ,
547: AlgorithmIdentifier [[p (struct alg_id *)0 ]],
548: BIT STRING
549: }
550: }
551: %{
552: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedModifyEntryArgument"));
553: %}
554:
555: ChainedModifyEntryArgumentData [[P struct ds_op_arg *]]
556: ::=
557: %{
558: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedModifyEntryArgumentData"));
559: parm->dca_dsarg.arg_type = OP_MODIFYENTRY;
560: %}
561: SET
562: {
563: ChainingArgument [[p &(parm->dca_charg)]] ,
564: [0] ModifyEntryArgument [[p &(parm->dca_dsarg.arg_me)]]
565: }
566: %{
567: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedModifyEntryArgumentData"));
568: %}
569:
570: ChainedModifyEntryResult [[P struct ds_op_res *]]
571: ::=
572: %{
573: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedModifyEntryResult"));
574: %}
575: CHOICE
576: {
577: ChainedModifyEntryResultData [[p parm]] ,
578: SEQUENCE
579: {
580: ChainedModifyEntryResultData [[p parm]] ,
581: AlgorithmIdentifier [[p (struct alg_id *)0 ]],
582: BIT STRING
583: }
584: }
585: %{
586: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedModifyEntryResult"));
587: %}
588:
589: ChainedModifyEntryResultData [[P struct ds_op_res *]]
590: ::=
591: %{
592: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedModifyEntryResultData"));
593: parm->dcr_dsres.result_type = OP_MODIFYENTRY;
594: %}
595: SET
596: {
597: ChainingResult [[p &(parm->dcr_chres)]] ,
598: [0] ModifyEntryResult
599: }
600: %{
601: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedModifyEntryResultData"));
602: %}
603:
604: ChainedModifyRDNArgument [[P struct ds_op_arg *]]
605: ::=
606: %{
607: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedModifyRDNArgument"));
608: %}
609: CHOICE
610: {
611: ChainedModifyRDNArgumentData [[p parm]] ,
612: SEQUENCE
613: {
614: ChainedModifyRDNArgumentData [[p parm]] ,
615: AlgorithmIdentifier [[p (struct alg_id *)0 ]] ,
616: BIT STRING
617: }
618: }
619: %{
620: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedModifyRDNArgument"));
621: %}
622:
623: ChainedModifyRDNArgumentData [[P struct ds_op_arg *]]
624: ::=
625: %{
626: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedModifyRDNArgumentData"));
627: parm->dca_dsarg.arg_type = OP_MODIFYRDN;
628: %}
629: SET
630: {
631: ChainingArgument [[p &(parm->dca_charg)]] ,
632: [0] ModifyRDNArgument [[p &(parm->dca_dsarg.arg_mr)]]
633: }
634: %{
635: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedModifyRDNArgumentData"));
636: %}
637:
638: ChainedModifyRDNResult [[P struct ds_op_res *]]
639: ::=
640: %{
641: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedModifyRDNResult"));
642: %}
643: CHOICE
644: {
645: ChainedModifyRDNResultData [[p parm]] ,
646: SEQUENCE
647: {
648: ChainedModifyRDNResultData [[p parm]] ,
649: AlgorithmIdentifier [[p (struct alg_id *)0 ]] ,
650: BIT STRING
651: }
652: }
653: %{
654: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedModifyRDNResult"));
655: %}
656:
657: ChainedModifyRDNResultData [[P struct ds_op_res *]]
658: ::=
659: %{
660: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainedModifyRDNResultData"));
661: parm->dcr_dsres.result_type = OP_MODIFYRDN;
662: %}
663: SET
664: {
665: ChainingResult [[p &(parm->dcr_chres)]] ,
666: [0] ModifyRDNResult
667: }
668: %{
669: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainedModifyRDNResultData"));
670: %}
671:
672: DSAReferralParm [[P struct DSE_referral *]]
673: ::=
674: %{
675: DLOG(log_dsap, LLOG_TRACE, ("About to decode DSAReferralParm"));
676: parm->DSE_ref_prefix = NULLDN;
677: parm->DSE_ref_candidates = (ContinuationRef) smalloc(sizeof(continuation_ref));
678: %}
679: SET
680: {
681: [0] ContinuationReference [[p parm->DSE_ref_candidates]] ,
682: contextPrefix
683: [1] DistinguishedName [[p &(parm->DSE_ref_prefix)]]
684: OPTIONAL
685: }
686: %{
687: DLOG(log_dsap, LLOG_TRACE, ("Done decode DSAReferralParm"));
688: %}
689:
690: ChainingArgument [[P struct chain_arg *]]
691: ::=
692: %{
693: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainingArgument"));
694: parm->cha_originator = NULLDN;
695: parm->cha_target = NULLDN;
696: parm->cha_progress.op_resolution_phase = OP_PHASE_NOTSTARTED;
697: parm->cha_progress.op_nextrdntoberesolved = 0;
698: parm->cha_aliasderef = FALSE;
699: parm->cha_aliasedrdns = CA_NO_ALIASDEREFERENCED;
700: parm->cha_returnrefs = FALSE;
701: parm->cha_reftype = RT_SUPERIOR;
702: parm->cha_timelimit = NULLCP;
703: parm->cha_domaininfo = NULLPE;
704: %}
705: SET
706: {
707: originator
708: [0] DistinguishedName [[p &(parm->cha_originator)]]
709: OPTIONAL ,
710: targetObject
711: [1] DistinguishedName [[p &(parm->cha_target)]]
712: OPTIONAL ,
713: operationProgress
714: [2] OperationProgress [[p &(parm->cha_progress)]]
715: -- DEFAULT {notStarted} ,
716: OPTIONAL ,
717: traceInformation
718: [3] TraceInformation [[p &(parm->cha_trace)]] ,
719: aliasDereferenced
720: [4] BOOLEAN [[b parm->cha_aliasderef]]
721: -- DEFAULT FALSE ,
722: OPTIONAL ,
723: aliasedRDNs
724: [5] INTEGER [[i parm->cha_aliasedrdns]]
725: OPTIONAL ,
726: -- absent unless aliasDereferenced is TRUE
727: entryOnly
728: [11] BOOLEAN [[b parm->cha_entryonly]]
729: -- DEFAULT FALSE ,
730: OPTIONAL ,
731: -- absent unless aliasDereferenced is TRUE
732: -- and operation is search, one-level
733: returnCrossRefs
734: [6] BOOLEAN [[b parm->cha_returnrefs]]
735: -- DEFAULT FALSE ,
736: OPTIONAL ,
737: referenceType
738: [7] ReferenceType [[p &(parm->cha_reftype)]]
739: -- DEFAULT superior ,
740: OPTIONAL ,
741: info
742: [8] DomainInfo [[p &(parm->cha_domaininfo)]]
743: OPTIONAL ,
744: timeLimit
745: [9] UTCTime [[s parm->cha_timelimit]]
746: OPTIONAL ,
747: [10] SecurityParameters [[p (struct security_parms **)0 ]]
748: -- DEFAULT {}
749: OPTIONAL
750: }
751: %{
752: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainingArgument"));
753: %}
754:
755: ChainingResult [[P struct chain_res *]]
756: %{
757: struct cross_ref **xrefp;
758: %}
759: ::=
760: %{
761: DLOG(log_dsap, LLOG_TRACE, ("About to decode ChainingResult"));
762: parm->chr_domaininfo = NULLPE;
763: parm->chr_crossrefs = NULLXREF;
764: %}
765: SET
766: {
767: info
768: [0] DomainInfo [[p &(parm->chr_domaininfo)]]
769: OPTIONAL ,
770: crossReferences
771: %{
772: xrefp = &(parm->chr_crossrefs);
773: %}
774: [1] SEQUENCE OF
775: %{
776: (*xrefp) = (struct cross_ref *) smalloc(sizeof(struct cross_ref));
777: %}
778: CrossReference [[p (*xrefp)]]
779: %{
780: xrefp = &((*xrefp)->xref_next);
781: %}
782: %{
783: (*xrefp) = NULLXREF;
784: %}
785: OPTIONAL ,
786: [2] SecurityParameters [[p (struct security_parms **)0 ]]
787: -- DEFAULT {}
788: OPTIONAL
789: }
790: %{
791: DLOG(log_dsap, LLOG_TRACE, ("Done decode ChainingResult"));
792: %}
793:
794: CrossReference [[P struct cross_ref *]]
795: ::=
796: %{
797: DLOG(log_dsap, LLOG_TRACE, ("About to decode CrossReference"));
798: parm->xref_dn = NULLDN;
799: parm->xref_ap = NULLACCESSPOINT;
800: %}
801: SET
802: {
803: contextPrefix
804: [0] DistinguishedName [[p &(parm->xref_dn)]] ,
805: accessPoint
806: [1] AccessPoint [[p parm->xref_ap]]
807: }
808: %{
809: DLOG(log_dsap, LLOG_TRACE, ("Done decode CrossReference"));
810: %}
811:
812: ReferenceType [[P int*]]
813: %{
814: %}
815: ::=
816: %{
817: DLOG(log_dsap, LLOG_TRACE, ("About to decode ReferenceType"));
818: %}
819: ENUMERATED [[i (*parm)]]
820: {
821: superior(1) ,
822: subordinate(2) ,
823: cross(3) ,
824: nonSpecificSubordinate(4)
825: }
826: %{
827: DLOG(log_dsap, LLOG_TRACE, ("Done decode ReferenceType"));
828: %}
829:
830: TraceInformation [[P struct trace_info **]]
831: %{
832: struct trace_info **tip;
833: %}
834: ::=
835: %{
836: DLOG(log_dsap, LLOG_TRACE, ("About to decode TraceInformation"));
837: (*parm) = NULLTRACEINFO;
838: tip = parm;
839: %}
840: SEQUENCE OF
841: %{
842: (*tip) = (struct trace_info *) malloc(sizeof(struct trace_info));
843: %}
844: TraceItem [[p (*tip)]]
845: %{
846: tip = &((*tip)->ti_next);
847: %}
848: %{
849: (*tip) = NULLTRACEINFO;
850: DLOG(log_dsap, LLOG_TRACE, ("Done decode TraceInformation"));
851: %}
852:
853: TraceItem [[P struct trace_info *]]
854: ::=
855: %{
856: DLOG(log_dsap, LLOG_TRACE, ("About to decode TraceItem"));
857: parm->ti_dsa = NULLDN;
858: parm->ti_target = NULLDN;
859: %}
860: SET
861: {
862: dsa
863: [0] Name [[p &(parm->ti_dsa)]] ,
864: targetObject
865: [1] Name [[p &(parm->ti_target)]]
866: OPTIONAL ,
867: operationProgress
868: [2] OperationProgress [[p &(parm->ti_progress)]]
869: }
870: %{
871: DLOG(log_dsap, LLOG_TRACE, ("Done decode TraceItem"));
872: %}
873:
874: OperationProgress [[P struct op_progress *]]
875: %{
876: int phase;
877: %}
878: ::=
879: %{
880: DLOG(log_dsap, LLOG_TRACE, ("About to decode OperationProgress"));
881: parm->op_resolution_phase = 0;
882: parm->op_nextrdntoberesolved = 0;
883: %}
884: SET
885: {
886: nameResolutionPhase
887: [0] ENUMERATED [[i phase]]
888: {
889: notStarted(1) ,
890: proceeding(2) ,
891: completed(3)
892: }
893: %{
894: parm->op_resolution_phase = phase - 1;
895: %} ,
896: nextRDNToBeResolved
897: [1] INTEGER [[i parm->op_nextrdntoberesolved]]
898: %{
899: %}
900: OPTIONAL
901: }
902: %{
903: DLOG(log_dsap, LLOG_TRACE, ("Done decode OperationProgress"));
904: %}
905:
906: DomainInfo [[P PE *]]
907: %{
908: PE old_pe;
909: %}
910: ::=
911: %{
912: DLOG(log_dsap, LLOG_TRACE, ("About to decode DomainInfo"));
913: %}
914: ANY [[a old_pe]]
915: %{
916: (*parm) = old_pe;
917: DLOG(log_dsap, LLOG_TRACE, ("Done decode DomainInfo"));
918: %}
919:
920: ContinuationReference [[P struct continuation_ref *]]
921: %{
922: struct access_point **app;
923: %}
924: ::=
925: %{
926: DLOG(log_dsap, LLOG_TRACE, ("About to decode ContinuationReference"));
927: parm->cr_name = NULLDN;
928: parm->cr_aliasedRDNs = CR_NOALIASEDRDNS;
929: parm->cr_rdn_resolved = CR_RDNRESOLVED_NOTDEFINED;
930: parm->cr_reftype = RT_UNDEFINED;
931: parm->cr_next = NULLCONTINUATIONREF;
932: parm->cr_accesspoints = NULLACCESSPOINT;
933: app = &(parm->cr_accesspoints);
934: %}
935: SET
936: {
937: targetObject
938: [0] Name [[p &(parm->cr_name)]]
939: %{
940: %} ,
941: aliasedRDNs
942: [1] INTEGER [[i parm->cr_aliasedRDNs]]
943: %{
944: %}
945: OPTIONAL ,
946: operationProgress
947: [2] OperationProgress [[p &(parm->cr_progress)]]
948: %{
949: %} ,
950: rdnsResolved
951: [3] INTEGER [[i parm->cr_rdn_resolved]]
952: %{
953: %}
954: OPTIONAL ,
955: referenceType
956: [4] ReferenceType [[p &(parm->cr_reftype)]]
957: %{
958: %}
959: OPTIONAL ,
960: accessPoints
961: [5] SET OF
962: %{
963: (*app) = (struct access_point *) smalloc(sizeof(struct access_point));
964: %}
965: AccessPoint [[p (*app)]]
966: %{
967: app = &((*app)->ap_next);
968: %}
969: %{
970: (*app) = NULLACCESSPOINT;
971: %}
972: }
973: %{
974: DLOG(log_dsap, LLOG_TRACE, ("Done decode ContinuationReference"));
975: %}
976:
977: AccessPoint [[P struct access_point *]]
978: %{
979: %}
980: ::=
981: %{
982: DLOG(log_dsap, LLOG_TRACE, ("About to decode AccessPoint"));
983: parm->ap_name = NULLDN;
984: parm->ap_next = NULLACCESSPOINT;
985: parm->ap_address = (struct PSAPaddr *) smalloc(sizeof(struct PSAPaddr));
986: %}
987: SET
988: {
989: [0] Name [[p &(parm->ap_name)]]
990: %{
991: %} ,
992: [1] ISODEPresentationAddress [[p parm->ap_address]]
993: %{
994: %}
995: }
996: %{
997: DLOG(log_dsap, LLOG_TRACE, ("Done decode AccessPoint"));
998: %}
999:
1000: ISODEPresentationAddress [[P struct PSAPaddr * ]]
1001: ::=
1002: %{
1003: DLOG(log_dsap, LLOG_TRACE, ("About to decode PresentationAddress"));
1004: %}
1005: DSE.PSAPaddr [[p parm]]
1006: %{
1007: DLOG(log_dsap, LLOG_TRACE, ("Done decode PresentationAddress"));
1008: %}
1009:
1010: InvokeID [[P int*]]
1011: %{
1012: %}
1013: ::=
1014: %{
1015: DLOG(log_dsap, LLOG_TRACE, ("About to decode InvokeID"));
1016: %}
1017: INTEGER [[i (*parm)]]
1018: %{
1019: DLOG(log_dsap, LLOG_TRACE, ("Done decode InvokeID"));
1020: %}
1021:
1022: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.