Annotation of 43BSDReno/contrib/isode-beta/h/quipu/entry.h, revision 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.