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 e

⟦a5937237f⟧ TextFile

    Length: 5895 (0x1707)
    Types: TextFile
    Names: »entry.h«

Derivation

└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
    └─⟦35176feda⟧ »EurOpenD22/isode/isode-6.tar.Z« 
        └─⟦de7628f85⟧ 
            └─⟦this⟧ »isode-6.0/h/quipu/entry.h« 

TextFile

/* entry.h - */

/*
 * $Header: /f/osi/h/quipu/RCS/entry.h,v 7.0 89/11/23 21:56:36 mrose Rel $
 *
 *
 * $Log:	entry.h,v $
 * Revision 7.0  89/11/23  21:56:36  mrose
 * Release 6.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.
 *
 */


#ifndef QUIPUENTRY
#define QUIPUENTRY

#include "quipu/attrvalue.h"
#include "quipu/dsp.h"

struct acl_attr {
    struct oid_seq   *aa_types;
    struct acl_info  *aa_acl;
    struct acl_attr  *aa_next;
};

#define NULLACL_ATTR ((struct acl_attr *)0)
#define acl_attr_alloc()  (struct acl_attr *) smalloc (sizeof (struct acl_attr));

struct acl_attr * acl_attr_cpy();

struct acl {                    /* represents ACL                       */
    struct acl_info  *ac_child;
    struct acl_info  *ac_entry;
    struct acl_info  *ac_default;
    struct acl_attr  *ac_attributes;
};

#define acl_alloc()  (struct acl *) smalloc (sizeof (struct acl));
#define NULLACL (struct acl *)NULL

struct acl * acl_cpy();
struct acl * str2acl();

/* Entry is the structure which is used to hold the DIT in core         */

typedef struct entry {
				/* First components refer to the entry  */
				/* itself                               */
    RDN         e_name;

    Attr_Sequence e_attributes; /* the attributes of the entry          */
				/* ALL attributes held, including the   */
				/* special ones                         */

    char        e_leaf;         /* TRUE if entry is leaf                */
    char        e_complete;     /* TRUE if all attributes present       */

    u_char      e_data;         /* Info on data in entry                */
#define E_DATA_MASTER             1
#define E_TYPE_SLAVE              2
#define E_TYPE_CACHE_FROM_MASTER  3
#define E_TYPE_CONSTRUCTOR        4

    char        e_allchildrenpresent;
				/* set  TRUE or FALSE                   */

				/* structures referring to special      */
				/* attributes in the entry              */

    struct acl  *e_acl;         /* The ACL for the entry                */

    DN          e_alias;        /* if present, entry is alias           */

    struct dsa_info *e_dsainfo; /* only present if entry represents DSA */


				/* Second block refer to children of    */
				/* entry                                */

    char        *e_edbversion;
				/* only present for non leaf - non-cache */
				/* this refers to all the child entries  */
				/* NULL if edb is not held               */

    AV_Sequence e_master;	/* Master DSA(s) of EDB                 */
    AV_Sequence	e_slave;	/* Slave DSAs of EDB                    */

				/* Final block is the linkage of the    */
				/* structure to the tree                */
    struct entry *e_sibling;    /*across the tree                       */
    struct entry *e_parent;
    struct entry *e_child;

    time_t	e_age;		/* time entry created (for cache use only) */

    char        e_lock;         /* TRUE if EDB locked -> no write to disk */
} entry, *Entry;

#define NULLENTRY ((Entry)0)
#define entry_alloc()           (Entry) calloc (1,sizeof(entry));
Entry getentry_block();
Entry directory_load();
int find_entry ();
int find_master_entry ();
int really_find_entry ();
Entry local_find_entry ();
Entry get_default_entry ();

struct oid_seq {
   OID  oid_oid;
   struct oid_seq *oid_next;
};
#define NULLOIDSEQ ((struct oid_seq*) 0)

#define oid_seq_alloc()         (struct oid_seq  *) smalloc (sizeof (struct oid_seq))
struct oid_seq * oid_seq_cpy();
struct oid_seq * oid_seq_merge();

struct tree_struct {            /* represents TreeStructure             */
    objectclass        *tree_object;
};
#define NULLTREE ((struct tree_struct *)0)
#define tree_struct_alloc()     (struct tree_struct *) smalloc (sizeof (struct tree_struct))

struct tree_struct * tree_struct_cpy ();
struct tree_struct * str2schema ();

struct dn_seq {
    DN  dns_dn;
    struct dn_seq *dns_next;
};
#define NULLDNSEQ ((struct dn_seq *)  0)
#define dn_seq_alloc()          (struct dn_seq *) smalloc (sizeof (struct dn_seq))
struct dn_seq *dn_seq_cpy();
struct dn_seq *str2dnseq();

struct dsa_info {               /* represents DSA information           */
				/* UpdateInfoSyntax                     */
    struct PSAPaddr *dsa_addr;  /* type from ISODE                      */
				/* might need to allow for multiple     */
				/* addresses, but not now               */
				/* also OR Address                      */
				/* leave for now                        */

				/* List of EDBs handled                 */
				/* by this dsa                          */
    AV_Sequence	     dsa_attr;
    char *	     dsa_version;
				/* info to assess reliability of a DSA */		
    time_t	     dsa_last_success;
    time_t	     dsa_last_attempt;
    int		     dsa_failures;
};

#define NULLDSA ((struct dsa_info *)0)

#define dsa_info_alloc()   (struct dsa_info *) smalloc (sizeof (struct dsa_info));

struct edb_info {               /* represent EDBInfo                    */
    DN          edb_name;
    DN          edb_getfrom;    /* DSA I get EDBupdates from            */
    struct dn_seq  *edb_sendto;  /* where I send EDB updates to          */
    struct dn_seq  *edb_allowed;  /* Who is allowed updates */
};
#define NULLEDB ((struct edb_info *) 0)

#define edb_info_alloc()   (struct edb_info *) smalloc (sizeof (struct edb_info));
struct edb_info * edb_info_cpy ();
struct edb_info * str2update ();

DN get_copy_dn ();

struct getedb_arg {
	DN 	ga_entry;
	char * 	ga_version;
	struct getedb_arg * get_next;
};
#define NULL_GETARG (struct getedb_arg *) NULL

struct getedb_result {
	char * gr_version;
	Entry  gr_edb;
	struct getedb_result * gr_next;
};
#define NULL_GETRESULT (struct getedb_result *) NULL

	
#endif