Annotation of 43BSDReno/contrib/isode-beta/h/quipu/entry.h, revision 1.1.1.1

1.1       root        1: /* entry.h - */
                      2: 
                      3: /*
                      4:  * $Header: /f/osi/h/quipu/RCS/entry.h,v 7.0 89/11/23 21:56:36 mrose Rel $
                      5:  *
                      6:  *
                      7:  * $Log:       entry.h,v $
                      8:  * Revision 7.0  89/11/23  21:56:36  mrose
                      9:  * Release 6.0
                     10:  * 
                     11:  */
                     12: 
                     13: /*
                     14:  *                               NOTICE
                     15:  *
                     16:  *    Acquisition, use, and distribution of this module and related
                     17:  *    materials are subject to the restrictions of a license agreement.
                     18:  *    Consult the Preface in the User's Manual for the full terms of
                     19:  *    this agreement.
                     20:  *
                     21:  */
                     22: 
                     23: 
                     24: #ifndef QUIPUENTRY
                     25: #define QUIPUENTRY
                     26: 
                     27: #include "quipu/attrvalue.h"
                     28: #include "quipu/dsp.h"
                     29: 
                     30: struct acl_attr {
                     31:     struct oid_seq   *aa_types;
                     32:     struct acl_info  *aa_acl;
                     33:     struct acl_attr  *aa_next;
                     34: };
                     35: 
                     36: #define NULLACL_ATTR ((struct acl_attr *)0)
                     37: #define acl_attr_alloc()  (struct acl_attr *) smalloc (sizeof (struct acl_attr));
                     38: 
                     39: struct acl_attr * acl_attr_cpy();
                     40: 
                     41: struct acl {                    /* represents ACL                       */
                     42:     struct acl_info  *ac_child;
                     43:     struct acl_info  *ac_entry;
                     44:     struct acl_info  *ac_default;
                     45:     struct acl_attr  *ac_attributes;
                     46: };
                     47: 
                     48: #define acl_alloc()  (struct acl *) smalloc (sizeof (struct acl));
                     49: #define NULLACL (struct acl *)NULL
                     50: 
                     51: struct acl * acl_cpy();
                     52: struct acl * str2acl();
                     53: 
                     54: /* Entry is the structure which is used to hold the DIT in core         */
                     55: 
                     56: typedef struct entry {
                     57:                                /* First components refer to the entry  */
                     58:                                /* itself                               */
                     59:     RDN         e_name;
                     60: 
                     61:     Attr_Sequence e_attributes; /* the attributes of the entry          */
                     62:                                /* ALL attributes held, including the   */
                     63:                                /* special ones                         */
                     64: 
                     65:     char        e_leaf;         /* TRUE if entry is leaf                */
                     66:     char        e_complete;     /* TRUE if all attributes present       */
                     67: 
                     68:     u_char      e_data;         /* Info on data in entry                */
                     69: #define E_DATA_MASTER             1
                     70: #define E_TYPE_SLAVE              2
                     71: #define E_TYPE_CACHE_FROM_MASTER  3
                     72: #define E_TYPE_CONSTRUCTOR        4
                     73: 
                     74:     char        e_allchildrenpresent;
                     75:                                /* set  TRUE or FALSE                   */
                     76: 
                     77:                                /* structures referring to special      */
                     78:                                /* attributes in the entry              */
                     79: 
                     80:     struct acl  *e_acl;         /* The ACL for the entry                */
                     81: 
                     82:     DN          e_alias;        /* if present, entry is alias           */
                     83: 
                     84:     struct dsa_info *e_dsainfo; /* only present if entry represents DSA */
                     85: 
                     86: 
                     87:                                /* Second block refer to children of    */
                     88:                                /* entry                                */
                     89: 
                     90:     char        *e_edbversion;
                     91:                                /* only present for non leaf - non-cache */
                     92:                                /* this refers to all the child entries  */
                     93:                                /* NULL if edb is not held               */
                     94: 
                     95:     AV_Sequence e_master;      /* Master DSA(s) of EDB                 */
                     96:     AV_Sequence        e_slave;        /* Slave DSAs of EDB                    */
                     97: 
                     98:                                /* Final block is the linkage of the    */
                     99:                                /* structure to the tree                */
                    100:     struct entry *e_sibling;    /*across the tree                       */
                    101:     struct entry *e_parent;
                    102:     struct entry *e_child;
                    103: 
                    104:     time_t     e_age;          /* time entry created (for cache use only) */
                    105: 
                    106:     char        e_lock;         /* TRUE if EDB locked -> no write to disk */
                    107: } entry, *Entry;
                    108: 
                    109: #define NULLENTRY ((Entry)0)
                    110: #define entry_alloc()           (Entry) calloc (1,sizeof(entry));
                    111: Entry getentry_block();
                    112: Entry directory_load();
                    113: int find_entry ();
                    114: int find_master_entry ();
                    115: int really_find_entry ();
                    116: Entry local_find_entry ();
                    117: Entry get_default_entry ();
                    118: 
                    119: struct oid_seq {
                    120:    OID  oid_oid;
                    121:    struct oid_seq *oid_next;
                    122: };
                    123: #define NULLOIDSEQ ((struct oid_seq*) 0)
                    124: 
                    125: #define oid_seq_alloc()         (struct oid_seq  *) smalloc (sizeof (struct oid_seq))
                    126: struct oid_seq * oid_seq_cpy();
                    127: struct oid_seq * oid_seq_merge();
                    128: 
                    129: struct tree_struct {            /* represents TreeStructure             */
                    130:     objectclass        *tree_object;
                    131: };
                    132: #define NULLTREE ((struct tree_struct *)0)
                    133: #define tree_struct_alloc()     (struct tree_struct *) smalloc (sizeof (struct tree_struct))
                    134: 
                    135: struct tree_struct * tree_struct_cpy ();
                    136: struct tree_struct * str2schema ();
                    137: 
                    138: struct dn_seq {
                    139:     DN  dns_dn;
                    140:     struct dn_seq *dns_next;
                    141: };
                    142: #define NULLDNSEQ ((struct dn_seq *)  0)
                    143: #define dn_seq_alloc()          (struct dn_seq *) smalloc (sizeof (struct dn_seq))
                    144: struct dn_seq *dn_seq_cpy();
                    145: struct dn_seq *str2dnseq();
                    146: 
                    147: struct dsa_info {               /* represents DSA information           */
                    148:                                /* UpdateInfoSyntax                     */
                    149:     struct PSAPaddr *dsa_addr;  /* type from ISODE                      */
                    150:                                /* might need to allow for multiple     */
                    151:                                /* addresses, but not now               */
                    152:                                /* also OR Address                      */
                    153:                                /* leave for now                        */
                    154: 
                    155:                                /* List of EDBs handled                 */
                    156:                                /* by this dsa                          */
                    157:     AV_Sequence             dsa_attr;
                    158:     char *          dsa_version;
                    159:                                /* info to assess reliability of a DSA */               
                    160:     time_t          dsa_last_success;
                    161:     time_t          dsa_last_attempt;
                    162:     int                     dsa_failures;
                    163: };
                    164: 
                    165: #define NULLDSA ((struct dsa_info *)0)
                    166: 
                    167: #define dsa_info_alloc()   (struct dsa_info *) smalloc (sizeof (struct dsa_info));
                    168: 
                    169: struct edb_info {               /* represent EDBInfo                    */
                    170:     DN          edb_name;
                    171:     DN          edb_getfrom;    /* DSA I get EDBupdates from            */
                    172:     struct dn_seq  *edb_sendto;  /* where I send EDB updates to          */
                    173:     struct dn_seq  *edb_allowed;  /* Who is allowed updates */
                    174: };
                    175: #define NULLEDB ((struct edb_info *) 0)
                    176: 
                    177: #define edb_info_alloc()   (struct edb_info *) smalloc (sizeof (struct edb_info));
                    178: struct edb_info * edb_info_cpy ();
                    179: struct edb_info * str2update ();
                    180: 
                    181: DN get_copy_dn ();
                    182: 
                    183: struct getedb_arg {
                    184:        DN      ga_entry;
                    185:        char *  ga_version;
                    186:        struct getedb_arg * get_next;
                    187: };
                    188: #define NULL_GETARG (struct getedb_arg *) NULL
                    189: 
                    190: struct getedb_result {
                    191:        char * gr_version;
                    192:        Entry  gr_edb;
                    193:        struct getedb_result * gr_next;
                    194: };
                    195: #define NULL_GETRESULT (struct getedb_result *) NULL
                    196: 
                    197:        
                    198: #endif

unix.superglobalmegacorp.com

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