|
|
1.1 ! root 1: -- if-enc.py - manually-augmented InformationFramework module ! 2: ! 3: -- $Header: /f/osi/dsap/x500as/RCS/if-enc.py,v 7.0 89/11/23 21:50:41 mrose Rel $ ! 4: -- ! 5: -- ! 6: -- $Log: if-enc.py,v $ ! 7: -- Revision 7.0 89/11/23 21:50:41 mrose ! 8: -- Release 6.0 ! 9: -- ! 10: ! 11: -- ! 12: -- NOTICE ! 13: -- ! 14: -- Acquisition, use, and distribution of this module and related ! 15: -- materials are subject to the restrictions of a license agreement. ! 16: -- Consult the Preface in the User's Manual for the full terms of ! 17: -- this agreement. ! 18: -- ! 19: -- ! 20: ! 21: ! 22: IF ! 23: { ! 24: joint-iso-ccitt ! 25: ds(5) ! 26: modules(1) ! 27: informationFramework(1) ! 28: } ! 29: ! 30: DEFINITIONS ::= ! 31: ! 32: %{ ! 33: #include <stdio.h> ! 34: #include "quipu/util.h" ! 35: #include "quipu/attrvalue.h" ! 36: ! 37: extern LLog * log_dsap; ! 38: PE grab_pe(); ! 39: %} ! 40: ! 41: PREFIXES encode decode print ! 42: ! 43: BEGIN ! 44: ! 45: -- EXPORTS ! 46: -- AttributeType, ! 47: -- AttributeValue, ! 48: -- AttributeValueAssertion, ! 49: -- Attribute, ! 50: -- RelativeDistinguishedName, ! 51: -- DistinguishedName, ! 52: -- Name; ! 53: ! 54: ENCODER encode ! 55: ! 56: AttributeType [[P AttributeType]] ! 57: %{ ! 58: OID new_oid = grab_oid(parm); ! 59: %} ! 60: ::= ! 61: %{ ! 62: DLOG(log_dsap, LLOG_PDUS, ("About to encode AttributeType (IF)")); ! 63: %} ! 64: OBJECT IDENTIFIER [[O new_oid]] ! 65: %{ ! 66: DLOG(log_dsap, LLOG_PDUS, ("Done encode AttributeType (IF)")); ! 67: %} ! 68: ! 69: AttributeValue [[P AttributeValue]] ! 70: %{ ! 71: PE new_pe = grab_pe(parm); ! 72: %} ! 73: ::= ! 74: %{ ! 75: DLOG(log_dsap, LLOG_PDUS, ("About to encode AttributeValue (IF)")); ! 76: %} ! 77: ANY [[a new_pe]] ! 78: %{ ! 79: pe_free (new_pe); ! 80: DLOG(log_dsap, LLOG_PDUS, ("Done encode AttributeValue (IF)")); ! 81: %} ! 82: ! 83: AttributeValueAssertion [[P AVA *]] ! 84: %{ ! 85: %} ! 86: ::= ! 87: %{ ! 88: DLOG(log_dsap, LLOG_PDUS, ("About to encode AttributeValueAssertion (IF)")); ! 89: %} ! 90: SEQUENCE ! 91: { ! 92: AttributeType [[p parm->ava_type]] ! 93: %{ ! 94: %} , ! 95: AttributeValue [[p parm->ava_value]] ! 96: %{ ! 97: %} ! 98: } ! 99: %{ ! 100: DLOG(log_dsap, LLOG_PDUS, ("Done encode AttributeValueAssertion (IF)")); ! 101: %} ! 102: ! 103: Attribute [[P Attr_Sequence]] ! 104: %{ ! 105: AV_Sequence avs_temp; ! 106: %} ! 107: ::= ! 108: %{ ! 109: DLOG(log_dsap, LLOG_PDUS, ("About to encode Attribute (IF)")); ! 110: %} ! 111: SEQUENCE ! 112: { ! 113: type ! 114: AttributeType [[p parm->attr_type]] ! 115: %{ ! 116: %} , ! 117: values ! 118: SET OF ! 119: %{ ! 120: %} ! 121: <<avs_temp=parm->attr_value;avs_temp!=NULLAV;avs_temp=avs_temp->avseq_next>> ! 122: AttributeValue [[p &(avs_temp->avseq_av)]] ! 123: %{ ! 124: %} ! 125: %{ ! 126: %} ! 127: } ! 128: %{ ! 129: DLOG(log_dsap, LLOG_PDUS, ("Done encode Attribute (IF)")); ! 130: %} ! 131: ! 132: RelativeDistinguishedName [[P RDN]] ! 133: %{ ! 134: AVA ava_temp_s; ! 135: AVA * ava_temp = &(ava_temp_s); ! 136: RDN rdn_temp; ! 137: %} ! 138: ::= ! 139: %{ ! 140: DLOG(log_dsap, LLOG_PDUS, ("About to encode RelativeDistinguishedName (IF)")); ! 141: %} ! 142: SET OF ! 143: %{ ! 144: ava_temp->ava_type = rdn_temp->rdn_at; ! 145: ava_temp->ava_value = &rdn_temp->rdn_av; ! 146: %} ! 147: <<rdn_temp=parm;rdn_temp!=NULLRDN;rdn_temp=rdn_temp->rdn_next>> ! 148: AttributeValueAssertion [[p ava_temp]] ! 149: %{ ! 150: %} ! 151: %{ ! 152: DLOG(log_dsap, LLOG_PDUS, ("Done encode RelativeDistinguishedName (IF)")); ! 153: %} ! 154: ! 155: RDNSequence [[P DN]] ! 156: %{ ! 157: DN dn_temp; ! 158: %} ! 159: ::= ! 160: %{ ! 161: DLOG(log_dsap, LLOG_PDUS, ("About to encode RDNSequence (IF)")); ! 162: %} ! 163: SEQUENCE OF ! 164: %{ ! 165: %} ! 166: <<dn_temp=parm;dn_temp!=NULLDN;dn_temp=dn_temp->dn_parent>> ! 167: RelativeDistinguishedName [[p dn_temp->dn_rdn]] ! 168: %{ ! 169: %} ! 170: %{ ! 171: DLOG(log_dsap, LLOG_PDUS, ("Done encode RDNSequence (IF)")); ! 172: %} ! 173: ! 174: DistinguishedName [[P DN]] ! 175: %{ ! 176: %} ! 177: ::= ! 178: %{ ! 179: DLOG(log_dsap, LLOG_TRACE, ("About to encode DistinguishedName (IF)")); ! 180: %} ! 181: RDNSequence [[p parm]] ! 182: %{ ! 183: DLOG(log_dsap, LLOG_TRACE, ("Done encode DistinguishedName (IF)")); ! 184: %} ! 185: ! 186: Name [[P DN]] ! 187: %{ ! 188: %} ! 189: ::= ! 190: %{ ! 191: DLOG(log_dsap, LLOG_PDUS, ("About to encode Name (IF)")); ! 192: %} ! 193: CHOICE ! 194: <<1>> ! 195: { ! 196: RDNSequence [[p parm]] ! 197: %{ ! 198: %} ! 199: } ! 200: %{ ! 201: DLOG(log_dsap, LLOG_PDUS, ("Done encode Name (IF)")); ! 202: %} ! 203: ! 204: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.