X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fslap.h;h=f1d55cab3628a8fc53bd71f9cdea230a4bc91e7a;hb=5631f25839a4a83521993639a96909267ea7bce6;hp=a3c11195d80f78bf4fd4815d6bc8c0844134d6c8;hpb=04e499e28c5e5e17de82bac1a73198aa11ad134f;p=openldap diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h index a3c11195d8..f1d55cab36 100644 --- a/servers/slapd/slap.h +++ b/servers/slapd/slap.h @@ -71,11 +71,18 @@ 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 +#if defined(LDAP_SLAPI) && !defined(SLAP_OVERLAY_ACCESS) +#define SLAP_OVERLAY_ACCESS +#endif + /* * ITS#3705: bail out if unknown config directives appear in slapd.conf */ @@ -1985,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, @@ -2087,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; @@ -2169,6 +2184,24 @@ typedef struct slap_callback { struct slap_overinfo; +typedef enum slap_operation_e { + op_bind = 0, + op_unbind, + op_search, + op_compare, + op_modify, + op_modrdn, + op_add, + op_delete, + op_abandon, + op_cancel, + op_extended, + op_aux_operational, + op_aux_chk_referrals, + op_aux_chk_controls, + op_last +} slap_operation_t; + typedef struct slap_overinst { BackendInfo on_bi; slap_response *on_response; @@ -2262,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; @@ -2287,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 */ @@ -2371,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