]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slap.h
alternate fix to ITS#3916
[openldap] / servers / slapd / slap.h
index 718263a1a39ba9163ed92fa741694427f27faeb9..f1d55cab3628a8fc53bd71f9cdea230a4bc91e7a 100644 (file)
@@ -71,12 +71,15 @@ LDAP_BEGIN_DECL
 #define SLAP_CONTROL_X_TREE_DELETE LDAP_CONTROL_X_TREE_DELETE
 #define SLAPD_CONF_UNKNOWN_BAILOUT
 
+#define SLAP_ORDERED_PRETTYNORM
+#define SLAP_AUTHZ_SYNTAX
+
 #ifdef ENABLE_REWRITE
 #define SLAP_AUTH_REWRITE      1 /* use librewrite for sasl-regexp */
 #endif
 #endif
 
-#ifdef LDAP_SLAPI
+#if defined(LDAP_SLAPI) && !defined(SLAP_OVERLAY_ACCESS)
 #define SLAP_OVERLAY_ACCESS
 #endif
 
@@ -1989,6 +1992,12 @@ typedef int (BI_has_subordinates) LDAP_P(( struct slap_op *op,
 typedef int (BI_access_allowed) LDAP_P(( struct slap_op *op, Entry *e,
        AttributeDescription *desc, struct berval *val, slap_access_t access,
        AccessControlState *state, slap_mask_t *maskp ));
+typedef int (BI_acl_group) LDAP_P(( struct slap_op *op, Entry *target,
+       struct berval *gr_ndn, struct berval *op_ndn,
+       ObjectClass *group_oc, AttributeDescription *group_at ));
+typedef int (BI_acl_attribute) LDAP_P(( struct slap_op *op, Entry *target,
+       struct berval *entry_ndn, AttributeDescription *entry_at,
+       BerVarray *vals, slap_access_t access ));
 #endif /* SLAP_OVERLAY_ACCESS */
 
 typedef int (BI_connection_init) LDAP_P(( BackendDB *bd,
@@ -2091,6 +2100,8 @@ struct slap_backend_info {
        BI_has_subordinates     *bi_has_subordinates;
 #ifdef SLAP_OVERLAY_ACCESS
        BI_access_allowed       *bi_access_allowed;
+       BI_acl_group            *bi_acl_group;
+       BI_acl_attribute        *bi_acl_attribute;
 #endif /* SLAP_OVERLAY_ACCESS */
 
        BI_connection_init      *bi_connection_init;
@@ -2284,7 +2295,6 @@ typedef struct slap_op_header {
        char            oh_log_prefix[sizeof("conn=18446744073709551615 op=18446744073709551615")];
 
 #ifdef LDAP_SLAPI
-       void    *oh_pb;                  /* NS-SLAPI plugin */
        void    *oh_extensions;         /* NS-SLAPI plugin */
 #endif
 } Opheader;
@@ -2309,11 +2319,6 @@ typedef struct slap_op {
 
 #define o_log_prefix o_hdr->oh_log_prefix
 
-#ifdef LDAP_SLAPI
-#define o_pb o_hdr->oh_pb
-#define o_extensions o_hdr->oh_extensions
-#endif
-
        ber_tag_t       o_tag;          /* tag of the request */
        time_t          o_time;         /* time op was initiated */
        int                     o_tincr;        /* counter for multiple ops with same o_time */
@@ -2393,6 +2398,8 @@ typedef struct slap_op {
 
        char o_nocaching;
        char o_delete_glue_parent;
+       char o_no_schema_check;
+#define get_no_schema_check(op)                        ((op)->o_no_schema_check)
 
 #define SLAP_CONTROL_NONE      0
 #define SLAP_CONTROL_IGNORED   1