|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T e
Length: 5895 (0x1707) Types: TextFile Names: »entry.h«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦35176feda⟧ »EurOpenD22/isode/isode-6.tar.Z« └─⟦de7628f85⟧ └─⟦this⟧ »isode-6.0/h/quipu/entry.h«
/* 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