DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T q

⟦39f6aa345⟧ TextFile

    Length: 9222 (0x2406)
    Types: TextFile
    Names: »qu-enc.py«

Derivation

└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape
    └─⟦eba4602b1⟧ »./isode-5.0.tar.Z« 
        └─⟦d3ac74d73⟧ 
            └─⟦this⟧ »isode-5.0/dsap/x500as/qu-enc.py« 

TextFile

-- quipu-enc.py - additional QUIPU directory type definitions module

-- $Header: /f/osi/dsap/x500as/RCS/qu-enc.py,v 6.1 89/03/23 22:27:27 mrose Exp $
--
--
-- $Log:	qu-enc.py,v $
-- Revision 6.1  89/03/23  22:27:27  mrose
-- out-the-door
-- 
-- Revision 6.0  89/03/18  23:29:56  mrose
-- Release 5.0
-- 

--
--				  NOTICE
--
--    Acquisition, use, and distribution of this module and related
--    materials are subject to the restrictions of a license agreement.
--    Consult the Preface in the User's Manual for the full terms of
--    this agreement.
--
--


Quipu
	{
	ccitt
	data(9)
	pss(2342)
	ucl(19200300)
	quipu(99)
	directoryDefinitions(1)
	}

DEFINITIONS ::=

%{
#include <stdio.h>
#include "quipu/util.h"
#include "quipu/entry.h"

extern  LLog    * log_dsap;
#define encode_UNIV_PrintableString build_UNIV_PrintableString
#define encode_UNIV_UTCTime build_UNIV_UTCTime
%}

PREFIXES encode decode print

BEGIN

IMPORTS
	NameError ,
	ServiceError ,
	SecurityError
		FROM DAS
			{
			joint-iso-ccitt
			ds(5)
			modules(1)
			directoryAbstractService(2)
			}

	DistinguishedName ,
	RelativeDistinguishedName ,
	Attribute ,
	AttributeType
		FROM IF
			{
			joint-iso-ccitt
			ds(5)
			modules(1)
			informationFramework(1)
			};

-- ReliableROSData
-- 	::=
-- 	SEQUENCE
-- 	{
-- 	rosOperation
-- 		INTEGER ,
		-- the operation being applied
-- 	data
-- 		ANY ,
		-- the Operation Argument
-- 	oldVersion
-- 		ANY ,
		-- data version to which operation should be applied
-- 	newVersion
-- 		ANY
		-- version number which results from operation
-- 	}

ENCODER encode

AccessSelector [[P struct acl_info *]]
        ::=
        %{
                DLOG(log_dsap, LLOG_TRACE, ("About to encode AccessSelector"));
        %}
        CHOICE <<parm->acl_selector_type + 1>>
        {
        entry
                [0] NULL ,
        other
                [2] NULL ,
        prefix
                [3] NameList [[p parm->acl_name]] ,
        group
                [4] NameList [[p parm->acl_name]]
        }
        %{
                DLOG(log_dsap, LLOG_TRACE, ("Done encode AccessSelector"));
        %}

AccessCategories [[P int]]
        ::=
        %{
                DLOG(log_dsap, LLOG_TRACE, ("About to encode AccessCategories"));
        %}
        ENUMERATED [[i parm]]
        {
                none (0) ,
                detect (1) ,
                compare (2) ,
                read (3) ,
                add (4) ,
                write (5)
        }
        %{
                DLOG(log_dsap, LLOG_TRACE, ("Done encode AccessCategories"));
        %}

ACLInfo [[P struct acl_info *]]
%{
struct acl_info * ai_tmp;
%}
        ::=
        %{
                DLOG(log_dsap, LLOG_TRACE, ("About to encode ACLInfo"));
        %}
        SET OF
        <<ai_tmp=parm; ai_tmp != NULLACL_INFO; ai_tmp=ai_tmp->acl_next>>
                SEQUENCE
                {
                        AccessSelector [[p ai_tmp]] ,
                        AccessCategories [[p ai_tmp->acl_categories]]
                }
        %{
                DLOG(log_dsap, LLOG_TRACE, ("Done encode ACLInfo"));
        %}

AttributeACL [[P struct acl_attr *]]
%{
struct oid_seq  * os_tmp;
%}
        ::=
        %{
                DLOG(log_dsap, LLOG_TRACE, ("About to encode AttributeACL"));
        %}
        SEQUENCE
        {
                SET OF
                <<os_tmp=parm->aa_types; os_tmp != NULLOIDSEQ; os_tmp=os_tmp->oid_next>>
			-- AttributeType
                        OBJECT IDENTIFIER [[O os_tmp->oid_oid]] ,
                ACLInfo [[p parm->aa_acl]]
                    -- DEFAULT {{other , read}, {entry, write}}
                    OPTIONAL <<test_acl_default(parm->aa_acl) != OK>>
        }
        %{
                DLOG(log_dsap, LLOG_TRACE, ("Done encode AttributeACL"));
        %}

ACLSyntax [[P struct acl *]]
%{
struct acl_attr *       aa_tmp;
%}
        ::=
        %{
                DLOG(log_dsap, LLOG_TRACE, ("About to encode ACLSyntax"));
        %}
        SEQUENCE
        {
        childACL
                [0] ACLInfo [[p parm->ac_child]]
                    -- DEFAULT {{other , read}, {entry, write}} ,
                    OPTIONAL <<test_acl_default(parm->ac_child) != OK>> ,
        entryACL
                [1] ACLInfo [[p parm->ac_entry]]
                    -- DEFAULT {{other , read}, {entry, write}} ,
                    OPTIONAL <<test_acl_default(parm->ac_entry) != OK>> ,
        defaultAttributeACL
                [2] ACLInfo [[p parm->ac_default]]
                    -- DEFAULT {{other , read}, {entry, write}} ,
                    OPTIONAL <<test_acl_default(parm->ac_default) != OK>> ,
                [3] SET OF
                <<aa_tmp=parm->ac_attributes; aa_tmp!=NULLACL_ATTR; aa_tmp=aa_tmp->aa_next>>
                        AttributeACL [[p aa_tmp]]
        }
        %{
                DLOG(log_dsap, LLOG_TRACE, ("Done encode ACLSyntax"));
        %}

NameList [[P struct dn_seq *]]
%{
struct dn_seq   *       dns_tmp;
%}
        ::=
        %{
                DLOG(log_dsap, LLOG_TRACE, ("About to encode NameList"));
        %}
        SET OF
        <<dns_tmp=parm; dns_tmp!=NULLDNSEQ; dns_tmp=dns_tmp->dns_next>>
                DistinguishedName [[p dns_tmp->dns_dn]]
        %{
                DLOG(log_dsap, LLOG_TRACE, ("Done encode NameList"));
        %}

EDBInfoSyntax [[P struct edb_info *]]
        ::=
        %{
                DLOG(log_dsap, LLOG_TRACE, ("About to encode EDBInfoSyntax"));
        %}
        SEQUENCE
        {
        edb
                DistinguishedName [[p parm->edb_name]] ,
        getFromDSA
                DistinguishedName [[p parm->edb_getfrom]]
		    OPTIONAL <<parm->edb_getfrom != NULLDN>> ,
        sendToDSAs
                NameList [[p parm->edb_sendto]] ,
	getEDBAllowed
		NameList [[p parm->edb_allowed]]
        }
        %{
                DLOG(log_dsap, LLOG_TRACE, ("Done encode EDBInfoSyntax"));
        %}

TreeStructureSyntax [[P struct tree_struct *]]
%{
OID     oid_tmp;
int	do_once;
%}
        ::=
        %{
                DLOG(log_dsap, LLOG_TRACE, ("About to encode TreeStructureSyntax"));
		if (parm->tree_object == NULLOBJECTCLASS) {
	                DLOG(log_dsap, LLOG_DEBUG, ("NULL OID in tree structure"));
			oid_tmp = NULLOID;
		} else {
	                oid_tmp = oid_cpy(parm->tree_object->oc_ot.ot_oid);
	                DLOG(log_dsap, LLOG_DEBUG, ("oc encodes as oid: %s", sprintoid(oid_tmp)));
		}
        %}
        SET
	{
	mandatoryObjectClasses
		[1] SET OF
		%{
	                DLOG(log_dsap, LLOG_DEBUG, ("Another mandatory oc"));
		%}
		<<do_once = 1; do_once != 0; do_once = 0>>
                	OBJECT IDENTIFIER [[O oid_tmp]] ,
	optionalObjectClasses
		[2] SET OF
                	OBJECT IDENTIFIER
		    OPTIONAL <<FALSE>> ,
	permittedRDNs
		[3] SET OF
			SET OF
				AttributeType [[p NULLAttrT]]
	}
        %{
		if(oid_tmp != NULLOID)
		    oid_free (oid_tmp);
                DLOG(log_dsap, LLOG_TRACE, ("Done encode TreeStructureSyntax"));
        %}

EntryDataBlock [[P struct entry *]]
%{
struct entry    * ent_tmp;
%}
        ::=
        %{
                DLOG(log_dsap, LLOG_TRACE, ("About to encode EntryDataBlock"));
        %}
        SEQUENCE OF
        <<ent_tmp = parm; ent_tmp != NULLENTRY; ent_tmp=ent_tmp->e_sibling>>
                RelativeEntry [[p ent_tmp]]
        %{
                DLOG(log_dsap, LLOG_TRACE, ("Done encode EntryDataBlock"));
        %}

RelativeEntry [[P struct entry *]]
%{
Attr_Sequence   as_tmp;
%}
        ::=
        %{
                DLOG(log_dsap, LLOG_TRACE, ("About to encode RelativeEntry"));
        %}
        SEQUENCE
        {
                RelativeDistinguishedName [[p parm->e_name]] ,
                SET OF
                <<as_tmp = parm->e_attributes; as_tmp != NULLATTR; as_tmp=as_tmp->attr_link>>
                        Attribute [[p as_tmp]]
        }
        %{
                DLOG(log_dsap, LLOG_TRACE, ("Done encode RelativeEntry"));
        %}

EDBVersion [[P char *]]
%{
%}
	::=
        %{
                DLOG(log_dsap, LLOG_TRACE, ("About to encode EDBVersion"));
		if(parm == NULLCP)
		    LLOG(log_dsap, LLOG_EXCEPTIONS, ("NULL CP Version encoded!"));
        %}
	UTCTime [[s parm]]
        %{
                DLOG(log_dsap, LLOG_TRACE, ("Done encode EDBVersion"));
        %}

GetEntryDataBlockArgument [[P struct getedb_arg *]]
	::=
        %{
                DLOG(log_dsap, LLOG_TRACE, ("About to encode GetEntryDataBlockArgument"));
        %}
	SET
	{
	entry
		[0] DistinguishedName [[p parm->ga_entry]] ,
	sendIfMoreRecentThan
		[1] EDBVersion [[p parm->ga_version]]
		    OPTIONAL <<parm->ga_version != NULL>>
			-- if omitted, send in any case
	}
        %{
                DLOG(log_dsap, LLOG_TRACE, ("Done encode GetEntryDataBlockArgument"));
        %}

GetEntryDataBlockResult [[P struct getedb_result *]]
	::=
        %{
                DLOG(log_dsap, LLOG_TRACE, ("About to encode GetEntryDataBlockResult"));
        %}
	SEQUENCE
	{
	versionHeld
		[0] EDBVersion [[p parm->gr_version]] ,
		[1] EntryDataBlock [[p parm->gr_edb]]
		    OPTIONAL <<parm->gr_edb != NULLENTRY>>
	}
        %{
                DLOG(log_dsap, LLOG_TRACE, ("Done encode GetEntryDataBlockResult"));
        %}

END