Diff for /servers/slapd/slap.h between versions 1.452.2.14 and 1.452.2.15

version 1.452.2.14, 2004/03/22 17:33:28 version 1.452.2.15, 2004/04/06 18:16:01
Line 1 Line 1
 /* slap.h - stand alone ldap server include file */  /* slap.h - stand alone ldap server include file */
 /* $OpenLDAP: pkg/ldap/servers/slapd/slap.h,v 1.527 2004/03/20 11:56:31 hyc Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/slap.h,v 1.452.2.14 2004/03/22 17:33:28 kurt Exp $ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
  * Copyright 1998-2004 The OpenLDAP Foundation.   * Copyright 1998-2004 The OpenLDAP Foundation.
Line 530  typedef struct slap_matching_rule { Line 530  typedef struct slap_matching_rule {
          */           */
         struct slap_matching_rule       *smr_associated;          struct slap_matching_rule       *smr_associated;
   
 #define SLAP_MR_ASSOCIATED(mr,amr)      (((mr) == (amr)) || \  #define SLAP_MR_ASSOCIATED(mr,amr)      \
         ((mr)->smr_associated == (amr)))          (((mr) == (amr)) || ((mr)->smr_associated == (amr)))
   
         LDAP_SLIST_ENTRY(slap_matching_rule)smr_next;          LDAP_SLIST_ENTRY(slap_matching_rule)smr_next;
   
Line 1395  typedef struct syncinfo_s { Line 1395  typedef struct syncinfo_s {
 struct slap_backend_db {  struct slap_backend_db {
         BackendInfo     *bd_info;       /* pointer to shared backend info */          BackendInfo     *bd_info;       /* pointer to shared backend info */
   
           /* fields in this structure (and routines acting on this structure)
              should be renamed from be_ to bd_ */
   
         /* BackendInfo accessors */          /* BackendInfo accessors */
 #define         be_config       bd_info->bi_db_config  #define         be_config       bd_info->bi_db_config
 #define         be_type         bd_info->bi_type  #define         be_type         bd_info->bi_type
Line 1412  struct slap_backend_db { Line 1415  struct slap_backend_db {
   
 #define         be_extended     bd_info->bi_extended  #define         be_extended     bd_info->bi_extended
   
   #define         be_chk_referrals        bd_info->bi_chk_referrals
 #define         be_fetch        bd_info->bi_entry_get_rw  #define         be_fetch        bd_info->bi_entry_get_rw
 #define         be_release      bd_info->bi_entry_release_rw  #define         be_release      bd_info->bi_entry_release_rw
 #define         be_chk_referrals        bd_info->bi_chk_referrals  
 #define         be_group        bd_info->bi_acl_group  #define         be_group        bd_info->bi_acl_group
 #define         be_attribute    bd_info->bi_acl_attribute  #define         be_attribute    bd_info->bi_acl_attribute
 #define         be_operational  bd_info->bi_operational  #define         be_operational  bd_info->bi_operational
Line 1445  struct slap_backend_db { Line 1448  struct slap_backend_db {
 #define         be_entry_modify bd_info->bi_tool_entry_modify  #define         be_entry_modify bd_info->bi_tool_entry_modify
 #endif  #endif
   
 #define SLAP_BFLAG_NOLASTMOD            0x0001U  /* Database flags */
 #define SLAP_BFLAG_NO_SCHEMA_CHECK      0x0002U  #define SLAP_DBFLAG_NOLASTMOD           0x0001U
 #define SLAP_BFLAG_GLUE_INSTANCE        0x0010U /* a glue backend */  #define SLAP_DBFLAG_NO_SCHEMA_CHECK     0x0002U
 #define SLAP_BFLAG_GLUE_SUBORDINATE     0x0020U /* child of a glue hierarchy */  #define SLAP_DBFLAG_GLUE_INSTANCE       0x0010U /* a glue backend */
 #define SLAP_BFLAG_GLUE_LINKED          0x0040U /* child is connected to parent */  #define SLAP_DBFLAG_GLUE_SUBORDINATE 0x0020U    /* child of a glue hierarchy */
 #define SLAP_BFLAG_MONITOR                      0x0080U /* a monitor backend */  #define SLAP_DBFLAG_GLUE_LINKED         0x0040U /* child is connected to parent */
 #define SLAP_BFLAG_INCREMENT            0x0100U  #define SLAP_DBFLAG_SHADOW                      0x8000U /* a shadow */
 #define SLAP_BFLAG_ALIASES                      0x1000U  
 #define SLAP_BFLAG_REFERRALS            0x2000U  
 #define SLAP_BFLAG_SUBENTRIES           0x4000U  
 #define SLAP_BFLAG_DYNAMIC                      0x8000U  
         slap_mask_t     be_flags;          slap_mask_t     be_flags;
 #define SLAP_LASTMOD(be)        (!((be)->be_flags & SLAP_BFLAG_NOLASTMOD))  #define SLAP_DBFLAGS(be)                        ((be)->be_flags)
 #define SLAP_NO_SCHEMA_CHECK(be)        (((be)->be_flags & SLAP_BFLAG_NO_SCHEMA_CHECK))  #define SLAP_NOLASTMOD(be)                      (SLAP_DBFLAGS(be) & SLAP_DBFLAG_NOLASTMOD)
 #define SLAP_GLUE_INSTANCE(be)  ((be)->be_flags & SLAP_BFLAG_GLUE_INSTANCE)  #define SLAP_LASTMOD(be)                        (!SLAP_NOLASTMOD(be))
 #define SLAP_GLUE_SUBORDINATE(be) \  #define SLAP_NO_SCHEMA_CHECK(be)        \
         ((be)->be_flags & SLAP_BFLAG_GLUE_SUBORDINATE)          (SLAP_DBFLAGS(be) & SLAP_DBFLAG_NO_SCHEMA_CHECK)
 #define SLAP_GLUE_LINKED(be)    ((be)->be_flags & SLAP_BFLAG_GLUE_LINKED)  #define SLAP_GLUE_INSTANCE(be)          \
           (SLAP_DBFLAGS(be) & SLAP_DBFLAG_GLUE_INSTANCE)
 #define SLAP_MONITOR(be)        ((be)->be_flags & SLAP_BFLAG_MONITOR)  #define SLAP_GLUE_SUBORDINATE(be)       \
 #define SLAP_INCREMENT(be)      ((be)->be_flags & SLAP_BFLAG_INCREMENT)          (SLAP_DBFLAGS(be) & SLAP_DBFLAG_GLUE_SUBORDINATE)
   #define SLAP_GLUE_LINKED(be)            \
 #define SLAP_ALIASES(be)        ((be)->be_flags & SLAP_BFLAG_ALIASES)          (SLAP_DBFLAGS(be) & SLAP_DBFLAG_GLUE_LINKED)
 #define SLAP_REFERRALS(be)      ((be)->be_flags & SLAP_BFLAG_REFERRALS)  #define SLAP_SHADOW(be)                         (SLAP_DBFLAGS(be) & SLAP_DBFLAG_SHADOW)
 #define SLAP_SUBENTRIES(be)     ((be)->be_flags & SLAP_BFLAG_SUBENTRIES)  
 #define SLAP_DYNAMIC(be)        ((be)->be_flags & SLAP_BFLAG_DYNAMIC)  
   
   
         slap_mask_t     be_restrictops;         /* restriction operations */          slap_mask_t     be_restrictops;         /* restriction operations */
 #define SLAP_RESTRICT_OP_ADD            0x0001U  #define SLAP_RESTRICT_OP_ADD            0x0001U
Line 1517  struct slap_backend_db { Line 1513  struct slap_backend_db {
         /* Required Security Strength Factor */          /* Required Security Strength Factor */
         slap_ssf_set_t be_ssf_set;          slap_ssf_set_t be_ssf_set;
   
         /* these should be renamed from be_ to bd_ */  
         BerVarray       be_suffix;      /* the DN suffixes of data in this backend */          BerVarray       be_suffix;      /* the DN suffixes of data in this backend */
         BerVarray       be_nsuffix;     /* the normalized DN suffixes in this backend */          BerVarray       be_nsuffix;     /* the normalized DN suffixes in this backend */
         struct berval be_schemadn;      /* per-backend subschema subentry DN */          struct berval be_schemadn;      /* per-backend subschema subentry DN */
Line 1532  struct slap_backend_db { Line 1527  struct slap_backend_db {
         struct slap_limits **be_limits; /* regex-based size and time limits */          struct slap_limits **be_limits; /* regex-based size and time limits */
         AccessControl *be_acl;  /* access control list for this backend    */          AccessControl *be_acl;  /* access control list for this backend    */
         slap_access_t   be_dfltaccess;  /* access given if no acl matches          */          slap_access_t   be_dfltaccess;  /* access given if no acl matches          */
   
           /* Replica Information */
         struct slap_replica_info **be_replica;  /* replicas of this backend (in master) */          struct slap_replica_info **be_replica;  /* replicas of this backend (in master) */
         char    *be_replogfile; /* replication log file (in master)        */          char    *be_replogfile; /* replication log file (in master)        */
         struct berval be_update_ndn;    /* allowed to make changes (in replicas) */          struct berval be_update_ndn;    /* allowed to make changes (in replicas) */
         BerVarray       be_update_refs; /* where to refer modifying clients to */          BerVarray       be_update_refs; /* where to refer modifying clients to */
         char    *be_realm;  
         void    *be_private;    /* anything the backend database needs     */  
   
         void    *be_pb;         /* Netscape plugin */  
         LDAP_TAILQ_HEAD( be_pcl, slap_csn_entry )       be_pending_csn_list;          LDAP_TAILQ_HEAD( be_pcl, slap_csn_entry )       be_pending_csn_list;
         ldap_pvt_thread_mutex_t                                 be_pcl_mutex;          ldap_pvt_thread_mutex_t                                 be_pcl_mutex;
         struct berval                                                   be_context_csn;          struct berval                                                   be_context_csn;
         ldap_pvt_thread_mutex_t                                 be_context_csn_mutex;          ldap_pvt_thread_mutex_t                                 be_context_csn_mutex;
         LDAP_STAILQ_HEAD( be_si, syncinfo_s )   be_syncinfo; /* For syncrepl */          LDAP_STAILQ_HEAD( be_si, syncinfo_s )   be_syncinfo; /* For syncrepl */
   
           char    *be_realm;
           void    *be_pb;         /* Netscape plugin */
   
           void    *be_private;    /* anything the backend database needs     */
 };  };
   
 struct slap_conn;  struct slap_conn;
Line 1664  typedef struct slap_rep { Line 1662  typedef struct slap_rep {
                 rep_search_s sru_search;                  rep_search_s sru_search;
         } sr_un;          } sr_un;
         slap_mask_t sr_flags;          slap_mask_t sr_flags;
 #define REP_ENTRY_MODIFIABLE    0x00000001  #define REP_ENTRY_MODIFIABLE    0x0001U
 #define REP_ENTRY_MUSTBEFREED   0x00000002  #define REP_ENTRY_MUSTBEFREED   0x0002U
 #define REP_MATCHED_MUSTBEFREED 0x00000010  #define REP_MATCHED_MUSTBEFREED 0x0010U
   #define REP_REF_MUSTBEFREED             0x0020U
 } SlapReply;  } SlapReply;
   
 /* short hands for response members */  /* short hands for response members */
Line 1688  typedef int (BI_op_add) LDAP_P(( struct Line 1687  typedef int (BI_op_add) LDAP_P(( struct
 typedef int (BI_op_delete) LDAP_P(( struct slap_op *op, struct slap_rep *rs ));  typedef int (BI_op_delete) LDAP_P(( struct slap_op *op, struct slap_rep *rs ));
 typedef int (BI_op_abandon) LDAP_P(( struct slap_op *op, struct slap_rep *rs ));  typedef int (BI_op_abandon) LDAP_P(( struct slap_op *op, struct slap_rep *rs ));
 typedef int (BI_op_cancel) LDAP_P(( struct slap_op *op, struct slap_rep *rs ));  typedef int (BI_op_cancel) LDAP_P(( struct slap_op *op, struct slap_rep *rs ));
 typedef int (BI_op_extended) LDAP_P(( struct slap_op *op, struct slap_rep *rs ));  typedef int (BI_op_extended) LDAP_P((
 typedef int (BI_entry_release_rw) LDAP_P(( struct slap_op *op, Entry *e, int rw ));          struct slap_op *op, struct slap_rep *rs ));
   typedef int (BI_chk_referrals) LDAP_P((
           struct slap_op *op, struct slap_rep *rs ));
   typedef int (BI_entry_release_rw)
           LDAP_P(( struct slap_op *op, Entry *e, int rw ));
 typedef int (BI_entry_get_rw) LDAP_P(( struct slap_op *op, struct berval *ndn,  typedef int (BI_entry_get_rw) LDAP_P(( struct slap_op *op, struct berval *ndn,
         ObjectClass *oc, AttributeDescription *at, int rw, Entry **e ));          ObjectClass *oc, AttributeDescription *at, int rw, Entry **e ));
 typedef int (BI_chk_referrals) LDAP_P(( struct slap_op *op, struct slap_rep *rs ));  typedef int (BI_operational) LDAP_P(( struct slap_op *op, struct slap_rep *rs,
 typedef int (BI_operational) LDAP_P(( struct slap_op *op, struct slap_rep *rs, int opattrs, Attribute **ap ));          int opattrs, Attribute **ap ));
 typedef int (BI_has_subordinates) LDAP_P(( struct slap_op *op, Entry *e, int *hasSubs ));  typedef int (BI_has_subordinates) LDAP_P(( struct slap_op *op,
           Entry *e, int *hasSubs ));
 typedef int (BI_connection_init) LDAP_P((BackendDB *bd,  
                 struct slap_conn *c));  typedef int (BI_connection_init) LDAP_P(( BackendDB *bd,
 typedef int (BI_connection_destroy) LDAP_P((BackendDB *bd,          struct slap_conn *c ));
                 struct slap_conn *c));  typedef int (BI_connection_destroy) LDAP_P(( BackendDB *bd,
           struct slap_conn *c ));
   
 typedef int (BI_tool_entry_open) LDAP_P(( BackendDB *be, int mode ));  typedef int (BI_tool_entry_open) LDAP_P(( BackendDB *be, int mode ));
 typedef int (BI_tool_entry_close) LDAP_P(( BackendDB *be ));  typedef int (BI_tool_entry_close) LDAP_P(( BackendDB *be ));
Line 1707  typedef ID (BI_tool_entry_first) LDAP_P( Line 1711  typedef ID (BI_tool_entry_first) LDAP_P(
 typedef ID (BI_tool_entry_next) LDAP_P(( BackendDB *be ));  typedef ID (BI_tool_entry_next) LDAP_P(( BackendDB *be ));
 typedef Entry* (BI_tool_entry_get) LDAP_P(( BackendDB *be, ID id ));  typedef Entry* (BI_tool_entry_get) LDAP_P(( BackendDB *be, ID id ));
 typedef ID (BI_tool_entry_put) LDAP_P(( BackendDB *be, Entry *e,   typedef ID (BI_tool_entry_put) LDAP_P(( BackendDB *be, Entry *e, 
                         struct berval *text ));          struct berval *text ));
 typedef int (BI_tool_entry_reindex) LDAP_P(( BackendDB *be, ID id ));  typedef int (BI_tool_entry_reindex) LDAP_P(( BackendDB *be, ID id ));
 typedef int (BI_tool_sync) LDAP_P(( BackendDB *be ));  typedef int (BI_tool_sync) LDAP_P(( BackendDB *be ));
 typedef ID (BI_tool_dn2id_get) LDAP_P(( BackendDB *be, struct berval *dn ));  typedef ID (BI_tool_dn2id_get) LDAP_P(( BackendDB *be, struct berval *dn ));
 typedef int (BI_tool_id2entry_get) LDAP_P(( BackendDB *be, ID id, Entry **e ));  typedef int (BI_tool_id2entry_get) LDAP_P(( BackendDB *be, ID id, Entry **e ));
 typedef ID (BI_tool_entry_modify) LDAP_P(( BackendDB *be, Entry *e,   typedef ID (BI_tool_entry_modify) LDAP_P(( BackendDB *be, Entry *e, 
                         struct berval *text ));          struct berval *text ));
   
 struct slap_backend_info {  struct slap_backend_info {
         char    *bi_type; /* type of backend */          char    *bi_type; /* type of backend */
Line 1787  struct slap_backend_info { Line 1791  struct slap_backend_info {
         BI_op_extended  *bi_extended;          BI_op_extended  *bi_extended;
   
         /* Auxilary Functions */          /* Auxilary Functions */
           BI_chk_referrals        *bi_chk_referrals;
         BI_entry_get_rw         *bi_entry_get_rw;          BI_entry_get_rw         *bi_entry_get_rw;
         BI_entry_release_rw     *bi_entry_release_rw;          BI_entry_release_rw     *bi_entry_release_rw;
         BI_chk_referrals        *bi_chk_referrals;  
   
         BI_operational  *bi_operational;          BI_operational  *bi_operational;
         BI_has_subordinates     *bi_has_subordinates;          BI_has_subordinates     *bi_has_subordinates;
Line 1813  struct slap_backend_info { Line 1817  struct slap_backend_info {
 #define SLAP_INDEX_ADD_OP               0x0001  #define SLAP_INDEX_ADD_OP               0x0001
 #define SLAP_INDEX_DELETE_OP    0x0002  #define SLAP_INDEX_DELETE_OP    0x0002
   
           slap_mask_t     bi_flags; /* backend flags */
   #define SLAP_BFLAG_MONITOR                      0x0001U /* a monitor backend */
   #define SLAP_BFLAG_INCREMENT            0x0100U
   #define SLAP_BFLAG_ALIASES                      0x1000U
   #define SLAP_BFLAG_REFERRALS            0x2000U
   #define SLAP_BFLAG_SUBENTRIES           0x4000U
   #define SLAP_BFLAG_DYNAMIC                      0x8000U
   
   #define SLAP_BFLAGS(be)         ((be)->bd_info->bi_flags)
   #define SLAP_MONITOR(be)        (SLAP_BFLAGS(be) & SLAP_BFLAG_MONITOR)
   #define SLAP_INCREMENT(be)      (SLAP_BFLAGS(be) & SLAP_BFLAG_INCREMENT)
   #define SLAP_ALIASES(be)        (SLAP_BFLAGS(be) & SLAP_BFLAG_ALIASES)
   #define SLAP_REFERRALS(be)      (SLAP_BFLAGS(be) & SLAP_BFLAG_REFERRALS)
   #define SLAP_SUBENTRIES(be)     (SLAP_BFLAGS(be) & SLAP_BFLAG_SUBENTRIES)
   #define SLAP_DYNAMIC(be)        (SLAP_BFLAGS(be) & SLAP_BFLAG_DYNAMIC)
   
         char **bi_controls;             /* supported controls */          char **bi_controls;             /* supported controls */
   
         unsigned int bi_nDB;    /* number of databases of this type */          unsigned int bi_nDB;    /* number of databases of this type */
Line 1874  typedef struct slap_paged_state { Line 1894  typedef struct slap_paged_state {
         ID ps_id;          ID ps_id;
 } PagedResultsState;  } PagedResultsState;
   
   
 #define LDAP_PSEARCH_BY_ADD                     0x01  #define LDAP_PSEARCH_BY_ADD                     0x01
 #define LDAP_PSEARCH_BY_DELETE          0x02  #define LDAP_PSEARCH_BY_DELETE          0x02
 #define LDAP_PSEARCH_BY_PREMODIFY       0x03  #define LDAP_PSEARCH_BY_PREMODIFY       0x03
Line 1902  struct slap_session_entry { Line 1921  struct slap_session_entry {
 };  };
   
 struct slap_csn_entry {  struct slap_csn_entry {
         struct berval *csn;          struct berval *ce_csn;
         unsigned long opid;          unsigned long ce_opid;
         unsigned long connid;          unsigned long ce_connid;
 #define SLAP_CSN_PENDING        1  #define SLAP_CSN_PENDING        1
 #define SLAP_CSN_COMMIT         2  #define SLAP_CSN_COMMIT         2
         long state;          long ce_state;
         LDAP_TAILQ_ENTRY (slap_csn_entry) csn_link;          LDAP_TAILQ_ENTRY (slap_csn_entry) ce_csn_link;
 };  };
   
 /*  /*

Removed from v.1.452.2.14  
changed lines
  Added in v.1.452.2.15


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org