]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slap.h
ITS#3092: Rename sl_free() and friends to slap_sl_free()
[openldap] / servers / slapd / slap.h
index b600750fe50431dd37f3f383ca234b8ca830aeae..667f6694d5c6fa2f4f83b321053de8498e17669a 100644 (file)
@@ -530,8 +530,8 @@ typedef struct slap_matching_rule {
         */
        struct slap_matching_rule       *smr_associated;
 
-#define SLAP_MR_ASSOCIATED(mr,amr)     (((mr) == (amr)) || \
-       ((mr)->smr_associated == (amr)))
+#define SLAP_MR_ASSOCIATED(mr,amr)     \
+       (((mr) == (amr)) || ((mr)->smr_associated == (amr)))
 
        LDAP_SLIST_ENTRY(slap_matching_rule)smr_next;
 
@@ -1034,7 +1034,6 @@ typedef struct slap_mod {
        AttributeDescription *sm_desc;
        struct berval sm_type;
        BerVarray sm_values;
-#define sm_bvalues sm_values
        BerVarray sm_nvalues;
 } Modification;
 
@@ -1043,7 +1042,6 @@ typedef struct slap_mod_list {
 #define sml_op         sml_mod.sm_op
 #define sml_desc       sml_mod.sm_desc
 #define        sml_type        sml_mod.sm_type
-#define sml_bvalues    sml_mod.sm_values
 #define sml_values     sml_mod.sm_values
 #define sml_nvalues    sml_mod.sm_nvalues
        struct slap_mod_list *sml_next;
@@ -1055,7 +1053,6 @@ typedef struct slap_ldap_modlist {
 #define ml_op          ml_mod.mod_op
 #define ml_type                ml_mod.mod_type
 #define ml_values      ml_mod.mod_values
-#define ml_bvalues     ml_mod.mod_values
 } LDAPModList;
 
 /*
@@ -1287,6 +1284,7 @@ struct slap_limits_set {
        int     lms_s_unchecked;
        int     lms_s_pr;
        int     lms_s_pr_hide;
+       int     lms_s_pr_total;
 };
 
 struct slap_limits {
@@ -1395,6 +1393,9 @@ typedef struct syncinfo_s {
 struct slap_backend_db {
        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 */
 #define                be_config       bd_info->bi_db_config
 #define                be_type         bd_info->bi_type
@@ -1445,33 +1446,30 @@ struct slap_backend_db {
 #define                be_entry_modify bd_info->bi_tool_entry_modify
 #endif
 
-#define SLAP_BFLAG_NOLASTMOD           0x0001U
-#define SLAP_BFLAG_NO_SCHEMA_CHECK     0x0002U
-#define        SLAP_BFLAG_GLUE_INSTANCE        0x0010U /* a glue backend */
-#define        SLAP_BFLAG_GLUE_SUBORDINATE     0x0020U /* child of a glue hierarchy */
-#define        SLAP_BFLAG_GLUE_LINKED          0x0040U /* child is connected to parent */
-#define SLAP_BFLAG_MONITOR                     0x0080U /* 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
+/* Database flags */
+#define SLAP_DBFLAG_NOLASTMOD          0x0001U
+#define SLAP_DBFLAG_NO_SCHEMA_CHECK    0x0002U
+#define        SLAP_DBFLAG_GLUE_INSTANCE       0x0010U /* a glue backend */
+#define        SLAP_DBFLAG_GLUE_SUBORDINATE    0x0020U /* child of a glue hierarchy */
+#define        SLAP_DBFLAG_GLUE_LINKED         0x0040U /* child is connected to parent */
+#define SLAP_DBFLAG_SHADOW             0x8000U /* a shadow */
+#define SLAP_DBFLAG_SYNC_SHADOW                0x1000U /* a sync shadow */
+#define SLAP_DBFLAG_SLURP_SHADOW       0x2000U /* a slurp shadow */
        slap_mask_t     be_flags;
-#define SLAP_LASTMOD(be)       (!((be)->be_flags & SLAP_BFLAG_NOLASTMOD))
-#define SLAP_NO_SCHEMA_CHECK(be)       (((be)->be_flags & SLAP_BFLAG_NO_SCHEMA_CHECK))
-#define        SLAP_GLUE_INSTANCE(be)  ((be)->be_flags & SLAP_BFLAG_GLUE_INSTANCE)
-#define        SLAP_GLUE_SUBORDINATE(be) \
-       ((be)->be_flags & SLAP_BFLAG_GLUE_SUBORDINATE)
-#define        SLAP_GLUE_LINKED(be)    ((be)->be_flags & SLAP_BFLAG_GLUE_LINKED)
-
-#define SLAP_MONITOR(be)       ((be)->be_flags & SLAP_BFLAG_MONITOR)
-#define SLAP_INCREMENT(be)     ((be)->be_flags & SLAP_BFLAG_INCREMENT)
-
-#define SLAP_ALIASES(be)       ((be)->be_flags & SLAP_BFLAG_ALIASES)
-#define SLAP_REFERRALS(be)     ((be)->be_flags & SLAP_BFLAG_REFERRALS)
-#define SLAP_SUBENTRIES(be)    ((be)->be_flags & SLAP_BFLAG_SUBENTRIES)
-#define SLAP_DYNAMIC(be)       ((be)->be_flags & SLAP_BFLAG_DYNAMIC)
-
+#define SLAP_DBFLAGS(be)                       ((be)->be_flags)
+#define SLAP_NOLASTMOD(be)                     (SLAP_DBFLAGS(be) & SLAP_DBFLAG_NOLASTMOD)
+#define SLAP_LASTMOD(be)                       (!SLAP_NOLASTMOD(be))
+#define SLAP_NO_SCHEMA_CHECK(be)       \
+       (SLAP_DBFLAGS(be) & SLAP_DBFLAG_NO_SCHEMA_CHECK)
+#define        SLAP_GLUE_INSTANCE(be)          \
+       (SLAP_DBFLAGS(be) & SLAP_DBFLAG_GLUE_INSTANCE)
+#define        SLAP_GLUE_SUBORDINATE(be)       \
+       (SLAP_DBFLAGS(be) & SLAP_DBFLAG_GLUE_SUBORDINATE)
+#define        SLAP_GLUE_LINKED(be)            \
+       (SLAP_DBFLAGS(be) & SLAP_DBFLAG_GLUE_LINKED)
+#define SLAP_SHADOW(be)                                (SLAP_DBFLAGS(be) & SLAP_DBFLAG_SHADOW)
+#define SLAP_SYNC_SHADOW(be)                   (SLAP_DBFLAGS(be) & SLAP_DBFLAG_SYNC_SHADOW)
+#define SLAP_SLURP_SHADOW(be)                  (SLAP_DBFLAGS(be) & SLAP_DBFLAG_SLURP_SHADOW)
 
        slap_mask_t     be_restrictops;         /* restriction operations */
 #define SLAP_RESTRICT_OP_ADD           0x0001U
@@ -1517,7 +1515,6 @@ struct slap_backend_db {
        /* Required Security Strength Factor */
        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_nsuffix;     /* the normalized DN suffixes in this backend */
        struct berval be_schemadn;      /* per-backend subschema subentry DN */
@@ -1532,19 +1529,22 @@ struct slap_backend_db {
        struct slap_limits **be_limits; /* regex-based size and time limits */
        AccessControl *be_acl;  /* access control list for this backend    */
        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) */
        char    *be_replogfile; /* replication log file (in master)        */
        struct berval be_update_ndn;    /* allowed to make changes (in replicas) */
        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_pvt_thread_mutex_t                                 be_pcl_mutex;
        struct berval                                                   be_context_csn;
        ldap_pvt_thread_mutex_t                                 be_context_csn_mutex;
        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;
@@ -1664,9 +1664,10 @@ typedef struct slap_rep {
                rep_search_s sru_search;
        } sr_un;
        slap_mask_t sr_flags;
-#define REP_ENTRY_MODIFIABLE   0x00000001
-#define REP_ENTRY_MUSTBEFREED  0x00000002
-#define REP_MATCHED_MUSTBEFREED        0x00000010
+#define REP_ENTRY_MODIFIABLE   0x0001U
+#define REP_ENTRY_MUSTBEFREED  0x0002U
+#define REP_MATCHED_MUSTBEFREED        0x0010U
+#define REP_REF_MUSTBEFREED            0x0020U
 } SlapReply;
 
 /* short hands for response members */
@@ -1688,18 +1689,23 @@ typedef int (BI_op_add) 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_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_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_op_extended) LDAP_P((
+       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,
        ObjectClass *oc, AttributeDescription *at, int rw, Entry **e ));
-typedef int (BI_operational) LDAP_P(( struct slap_op *op, struct slap_rep *rs, int opattrs, Attribute **ap ));
-typedef int (BI_has_subordinates) LDAP_P(( struct slap_op *op, Entry *e, int *hasSubs ));
+typedef int (BI_operational) LDAP_P(( struct slap_op *op, struct slap_rep *rs,
+       int opattrs, Attribute **ap ));
+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_destroy) LDAP_P((BackendDB *bd,
-               struct slap_conn *c));
+typedef int (BI_connection_init) LDAP_P(( BackendDB *bd,
+       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_close) LDAP_P(( BackendDB *be ));
@@ -1707,13 +1713,13 @@ typedef ID (BI_tool_entry_first) 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 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_sync) LDAP_P(( BackendDB *be ));
 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 ID (BI_tool_entry_modify) LDAP_P(( BackendDB *be, Entry *e, 
-                       struct berval *text ));
+       struct berval *text ));
 
 struct slap_backend_info {
        char    *bi_type; /* type of backend */
@@ -1813,6 +1819,22 @@ struct slap_backend_info {
 #define SLAP_INDEX_ADD_OP              0x0001
 #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 */
 
        unsigned int bi_nDB;    /* number of databases of this type */
@@ -1871,10 +1893,9 @@ typedef unsigned long PagedResultsCookie;
 typedef struct slap_paged_state {
        Backend *ps_be;
        PagedResultsCookie ps_cookie;
-       ID ps_id;
+       int ps_count;
 } PagedResultsState;
 
-
 #define LDAP_PSEARCH_BY_ADD                    0x01
 #define LDAP_PSEARCH_BY_DELETE         0x02
 #define LDAP_PSEARCH_BY_PREMODIFY      0x03
@@ -1902,13 +1923,13 @@ struct slap_session_entry {
 };
 
 struct slap_csn_entry {
-       struct berval *csn;
-       unsigned long opid;
-       unsigned long connid;
+       struct berval *ce_csn;
+       unsigned long ce_opid;
+       unsigned long ce_connid;
 #define SLAP_CSN_PENDING       1
 #define SLAP_CSN_COMMIT                2
-       long state;
-       LDAP_TAILQ_ENTRY (slap_csn_entry) csn_link;
+       long ce_state;
+       LDAP_TAILQ_ENTRY (slap_csn_entry) ce_csn_link;
 };
 
 /*
@@ -2339,7 +2360,12 @@ typedef int (SLAP_CTRL_PARSE_FN) LDAP_P((
        SlapReply *rs,
        LDAPControl *ctrl ));
 
-#define SLMALLOC_SLAB_SIZE     (1024*1024)
+#define SLAP_SLAB_SIZE (1024*1024)
+
+#if defined(LDAP_DEVEL) && defined(ENABLE_REWRITE)
+/* use librewrite for sasl-regexp */
+#define SLAP_SASL_REWRITE      1
+#endif /* LDAP_DEVEL && ENABLE_REWRITE */
 
 LDAP_END_DECL