Annotation of 43BSDReno/contrib/isode-beta/dsap/x500as/if-dec.py, revision 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.