]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slap.h
ITS#4310 seems to affect also back-ldbm
[openldap] / servers / slapd / slap.h
index c83c35b48414fd8fc5248691f050672c2a99c338..f880a0bd27d672b32ce0efe91307062a87a4a506 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2005 The OpenLDAP Foundation.
+ * Copyright 1998-2006 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -58,7 +58,6 @@
 
 LDAP_BEGIN_DECL
 
-
 #ifdef LDAP_DEVEL
 #define SLAP_LIGHTWEIGHT_DISPATCHER /* experimental slapd architecture */
 #define SLAP_MULTI_CONN_ARRAY
@@ -68,7 +67,6 @@ LDAP_BEGIN_DECL
 
 #define SLAP_ACL_HONOR_DISCLOSE        /* partially implemented */
 #define SLAP_ACL_HONOR_MANAGE  /* not yet implemented */
-#define SLAP_DYNACL
 #define SLAP_OVERLAY_ACCESS
 #define LDAP_COMP_MATCH
 #define LDAP_DYNAMIC_OBJECTS
@@ -212,13 +210,6 @@ LDAP_BEGIN_DECL
 #define SLAPD_ROLE_ATTR                        "roleOccupant"
 #define SLAPD_ROLE_CLASS               "organizationalRole"
 
-#ifdef SLAPD_ACI_ENABLED
-#define SLAPD_ACI_SYNTAX               "1.3.6.1.4.1.4203.666.2.1"
-#endif /* SLAPD_ACI_ENABLED */
-
-/* change this to "OpenLDAPset" */
-#define SLAPD_ACI_SET_ATTR             "template"
-
 #define SLAPD_TOP_OID                  "2.5.6.0"
 
 LDAP_SLAPD_V (int) slap_debug;
@@ -1215,7 +1206,7 @@ typedef enum slap_access_e {
        ACL_COMPARE,
        ACL_SEARCH,
        ACL_READ,
-       ACL_WRITE,
+       ACL_WRITE_,
        ACL_MANAGE,
 
        /* always leave at end of levels but not greater than ACL_LEVEL_MASK */
@@ -1230,8 +1221,10 @@ typedef enum slap_access_e {
        ACL_QUALIFIER_MASK = 0x0f00,
 
        /* write granularity */
-       ACL_WADD = ACL_WRITE|ACL_QUALIFIER1,
-       ACL_WDEL = ACL_WRITE|ACL_QUALIFIER2
+       ACL_WADD = ACL_WRITE_|ACL_QUALIFIER1,
+       ACL_WDEL = ACL_WRITE_|ACL_QUALIFIER2,
+
+       ACL_WRITE = ACL_WADD|ACL_WDEL
 } slap_access_t;
 
 typedef enum slap_control_e {
@@ -1439,16 +1432,6 @@ typedef struct slap_access {
 
 #ifdef SLAP_DYNACL
        slap_dynacl_t           *a_dynacl;
-#else /* ! SLAP_DYNACL */
-#ifdef SLAPD_ACI_ENABLED
-       /* NOTE: ACIs have been moved under the "dynacl" interface,
-        * which is currently built only when LDAP_DEVEL is defined.
-        *
-        * In any case, SLAPD_ACI_ENABLED, set by --enable-aci,
-        * is required to enable ACI support.
-        */
-       AttributeDescription    *a_aci_at;
-#endif /* SLAPD_ACI_ENABLED */
 #endif /* SLAP_DYNACL */
 
        /* ACL Groups */
@@ -1479,12 +1462,15 @@ typedef struct slap_acl {
        struct slap_acl *acl_next;
 } AccessControl;
 
+typedef enum {
+       ACL_STATE_NOT_RECORDED                  = 0x0,
+       ACL_STATE_RECORDED_VD                   = 0x1,
+       ACL_STATE_RECORDED_NV                   = 0x2,
+       ACL_STATE_RECORDED                      = ( ACL_STATE_RECORDED_VD | ACL_STATE_RECORDED_NV )
+} slap_acl_state_t;
+
 typedef struct slap_acl_state {
-       unsigned as_recorded;
-#define ACL_STATE_NOT_RECORDED                 0x0
-#define ACL_STATE_RECORDED_VD                  0x1
-#define ACL_STATE_RECORDED_NV                  0x2
-#define ACL_STATE_RECORDED                             0x3
+       slap_acl_state_t as_recorded;
 
        /* Access state */
        AccessControl *as_vd_acl;
@@ -1502,14 +1488,6 @@ typedef struct slap_acl_state {
 #define ACL_STATE_INIT { ACL_STATE_NOT_RECORDED, NULL, NULL, 0UL, \
        { { 0, 0 } }, 0, NULL, 0, 0, NULL }
 
-#ifdef SLAPD_ACI_ENABLED
-typedef enum slap_aci_scope_t {
-       SLAP_ACI_SCOPE_ENTRY            = 0x1,
-       SLAP_ACI_SCOPE_CHILDREN         = 0x2,
-       SLAP_ACI_SCOPE_SUBTREE          = ( SLAP_ACI_SCOPE_ENTRY | SLAP_ACI_SCOPE_CHILDREN )
-} slap_aci_scope_t;
-#endif /* SLAPD_ACI_ENABLED */
-
 /*
  * Backend-info
  * represents a backend 
@@ -2858,6 +2836,8 @@ typedef int (SLAP_CTRL_PARSE_FN) LDAP_P((
        SlapReply *rs,
        LDAPControl *ctrl ));
 
+typedef int (*SLAP_ENTRY_INFO_FN) LDAP_P(( void *arg, Entry *e ));
+
 #define SLAP_SLAB_SIZE (1024*1024)
 #define SLAP_SLAB_STACK 1
 #define SLAP_SLAB_SOBLOCK 64