Annotation of 43BSDReno/contrib/isode-beta/dsap/x500as/if-dec.py, revision 1.1.1.1

1.1       root        1: -- if-dec.py - manually-augmented InformationFramework module
                      2: 
                      3: -- $Header: /f/osi/dsap/x500as/RCS/if-dec.py,v 7.0 89/11/23 21:50:40 mrose Rel $
                      4: --
                      5: --
                      6: -- $Log:       if-dec.py,v $
                      7: -- Revision 7.0  89/11/23  21:50:40  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: DECODER decode
                     55: 
                     56: AttributeType [[P AttributeType *]]
                     57: %{
                     58: OID oid;
                     59: AttributeType AttrT_decode_aux ();
                     60: %}
                     61:         ::=
                     62:         %{
                     63:         DLOG(log_dsap, LLOG_PDUS, ("About to decode AttributeType (IF)"));
                     64:         %}
                     65:         OBJECT IDENTIFIER [[O oid]] 
                     66:         %{
                     67:        *parm = AttrT_decode_aux (oid);
                     68:         DLOG(log_dsap, LLOG_PDUS, ("Done decode AttributeType (IF)"));
                     69:         %}
                     70: 
                     71: AttributeValue [[P AttributeValue]]
                     72: %{
                     73: PE     any = NULLPE;
                     74: %}
                     75:         ::=
                     76:         %{
                     77:         DLOG(log_dsap, LLOG_PDUS, ("About to decode AttributeValue (IF)"));
                     78:             parm->av_syntax = 0;
                     79:             parm->av_struct = NULL;
                     80:         %}
                     81:         ANY [[a any]]
                     82:         %{
                     83:            parm -> av_struct = (caddr_t) any;
                     84:         DLOG(log_dsap, LLOG_PDUS, ("Done decode AttributeValue (IF)"));
                     85:         %}
                     86: 
                     87: AttributeValueAssertion [[P AVA *]]
                     88: %{
                     89: %}
                     90:         ::=
                     91:         %{
                     92:         DLOG(log_dsap, LLOG_PDUS, ("About to decode AttributeValueAssertion (IF)"));
                     93:        parm->ava_value = AttrV_alloc();
                     94:         %}
                     95:         SEQUENCE
                     96:         {
                     97:                 AttributeType [[p &parm->ava_type]]
                     98:                 %{
                     99:                 %} ,
                    100:                 AttributeValue [[p parm->ava_value]]
                    101:                 %{
                    102:                        AttrV_decode (parm->ava_type,parm->ava_value);
                    103:                 %}
                    104:         }
                    105:         %{
                    106:         DLOG(log_dsap, LLOG_PDUS, ("Done decode AttributeValueAssertion (IF)"));
                    107:         %}
                    108: 
                    109: Attribute [[P Attr_Sequence]]
                    110: %{
                    111:         AV_Sequence     av_tmp;
                    112: %}
                    113:         ::=
                    114:         %{
                    115:         DLOG(log_dsap, LLOG_PDUS, ("About to decode Attribute (IF)"));
                    116:                parm->attr_value = NULLAV;
                    117:                parm->attr_acl = NULLACL_INFO;
                    118:                parm->attr_link = NULLATTR;
                    119:         %}
                    120:         SEQUENCE
                    121:         {
                    122:         type
                    123:                 AttributeType [[p &(parm->attr_type)]]
                    124:                 %{
                    125:                 %} ,
                    126:         values
                    127:                 SET OF
                    128:                        %{
                    129:                                av_tmp = avs_comp_alloc();
                    130:                                av_tmp->avseq_next = NULLAV;
                    131:                        %}
                    132:                         AttributeValue [[p &(av_tmp->avseq_av)]]
                    133:                         %{
                    134:                                AttrV_decode (parm->attr_type,&(av_tmp->avseq_av));
                    135:                                parm->attr_value = avs_merge(parm->attr_value, av_tmp);
                    136:                         %}
                    137:         }
                    138:         %{
                    139:         DLOG(log_dsap, LLOG_PDUS, ("Done decode Attribute (IF)"));
                    140:         %}
                    141: 
                    142: RelativeDistinguishedName [[P RDN*]]
                    143: %{
                    144:         AVA             ava_next_s;
                    145:         AVA             * ava_next = &(ava_next_s);
                    146:         RDN               rdn_tmp;
                    147: %}
                    148:         ::=
                    149:         %{
                    150:         DLOG(log_dsap, LLOG_PDUS, ("About to decode RelativeDistinguishedName (IF)"));
                    151:                 (*parm) = NULLRDN;
                    152:         %}
                    153:         SET OF
                    154:         %{
                    155:         %}
                    156:                 AttributeValueAssertion [[p ava_next]]
                    157:                 %{
                    158:                        rdn_tmp = rdn_comp_alloc();
                    159:                        rdn_tmp->rdn_next = NULLRDN;    
                    160:                        rdn_tmp->rdn_at = ava_next->ava_type;
                    161:                        rdn_tmp->rdn_av.av_syntax = ava_next->ava_value->av_syntax;
                    162:                        rdn_tmp->rdn_av.av_struct = ava_next->ava_value->av_struct;
                    163:                        free ((char *)ava_next->ava_value);
                    164:                        (*parm) = rdn_merge((*parm), rdn_tmp);
                    165:                 %}
                    166:         %{
                    167:         DLOG(log_dsap, LLOG_PDUS, ("Done decode RelativeDistinguishedName (IF)"));
                    168:         %}
                    169: 
                    170: RDNSequence [[P DN*]]
                    171: %{
                    172:         DN              * dn_next;
                    173: %}
                    174:         ::=
                    175:         %{
                    176:         DLOG(log_dsap, LLOG_PDUS, ("About to decode RDNSequence (IF)"));
                    177:                 (*parm) = NULLDN;
                    178:                dn_next = parm;
                    179:         %}
                    180:         SEQUENCE OF
                    181:                %{
                    182:                        (*dn_next) = dn_comp_alloc();
                    183:                %}
                    184:                 RelativeDistinguishedName [[p &((*dn_next)->dn_rdn)]]
                    185:                 %{
                    186:                         dn_next = &((*dn_next)->dn_parent);
                    187:                 %}
                    188:         %{
                    189:                (*dn_next) = NULLDN;
                    190:         DLOG(log_dsap, LLOG_PDUS, ("Done decode RDNSequence (IF)"));
                    191:         %}
                    192: 
                    193: DistinguishedName [[P DN*]]
                    194: %{
                    195: %}
                    196:         ::=
                    197:         %{
                    198:         DLOG(log_dsap, LLOG_TRACE, ("About to decode DistinguishedName (IF)"));
                    199:         %}
                    200:         RDNSequence [[p parm]]
                    201:         %{
                    202:         DLOG(log_dsap, LLOG_TRACE, ("Done decode DistinguishedName (IF)"));
                    203:         %}
                    204: 
                    205: Name [[P DN*]]
                    206: %{
                    207: %}
                    208:         ::=
                    209:         %{
                    210:         DLOG(log_dsap, LLOG_PDUS, ("About to decode Name (IF)"));
                    211:         %}
                    212:         CHOICE
                    213:         {
                    214:                 RDNSequence [[p parm]]
                    215:                 %{
                    216:                 %}
                    217:         }
                    218:         %{
                    219:         DLOG(log_dsap, LLOG_PDUS, ("Done decode Name (IF)"));
                    220:         %}
                    221: 
                    222: END

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.