X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fslap.h;h=96f7747cdc61507b7078e96ddab5161b98aae9c7;hb=d6449b1d57964b189259f7388f03418fb09e3000;hp=ca7967cba1472e9c527959e07da42ff7e24d3d0e;hpb=9a38d98d375e059c367b97ce1ee50f0fbe9d68b7;p=openldap diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h index ca7967cba1..96f7747cdc 100644 --- a/servers/slapd/slap.h +++ b/servers/slapd/slap.h @@ -307,6 +307,18 @@ typedef struct slap_syntax { #define slap_syntax_is_ber(s) slap_syntax_is_flag((s),SLAP_SYNTAX_BER) #define slap_syntax_is_hidden(s) slap_syntax_is_flag((s),SLAP_SYNTAX_HIDE) +typedef struct slap_syntax_defs_rec { + char *sd_desc; + int sd_flags; + slap_syntax_validate_func *sd_validate; + slap_syntax_transform_func *sd_normalize; + slap_syntax_transform_func *sd_pretty; +#ifdef SLAPD_BINARY_CONVERSION + slap_syntax_transform_func *sd_ber2str; + slap_syntax_transform_func *sd_str2ber; +#endif +} slap_syntax_defs_rec; + /* X -> Y Converter */ typedef int slap_mr_convert_func LDAP_P(( struct berval * in, @@ -414,6 +426,18 @@ typedef struct slap_matching_rule { #define smr_extensions smr_mrule.mr_extensions } MatchingRule; +typedef struct slap_mrule_defs_rec { + char * mrd_desc; + slap_mask_t mrd_usage; + slap_mr_convert_func * mrd_convert; + slap_mr_normalize_func * mrd_normalize; + slap_mr_match_func * mrd_match; + slap_mr_indexer_func * mrd_indexer; + slap_mr_filter_func * mrd_filter; + + char * mrd_associated; +} slap_mrule_defs_rec; + struct slap_backend_db; struct slap_entry; struct slap_attr; @@ -598,6 +622,7 @@ struct slap_internal_schema { AttributeDescription *si_ad_supportedLDAPVersion; AttributeDescription *si_ad_supportedSASLMechanisms; AttributeDescription *si_ad_supportedFeatures; + AttributeDescription *si_ad_monitorContext; AttributeDescription *si_ad_vendorName; AttributeDescription *si_ad_vendorVersion; @@ -1196,6 +1221,10 @@ struct slap_backend_db { BerVarray be_suffix; /* the DN suffixes of data in this backend */ BerVarray be_nsuffix; /* the normalized DN suffixes in this backend */ BerVarray be_suffixAlias; /* pairs of DN suffix aliases and deref values */ +#ifdef SLAPD_SCHEMA_DN + struct berval be_schemadn; /* per-backend subschema subentry DN */ + struct berval be_schemandn; /* normalized subschema DN */ +#endif struct berval be_rootdn; /* the magic "root" name (DN) for this db */ struct berval be_rootndn; /* the magic "root" normalized name (DN) for this db */ struct berval be_rootpw; /* the magic "root" password for this db */ @@ -1489,6 +1518,8 @@ typedef struct slap_op { volatile sig_atomic_t o_abandon; /* abandon flag */ + char o_do_not_cache; /* don't cache from this op */ + #define SLAP_NO_CONTROL 0 #define SLAP_NONCRITICAL_CONTROL 1 #define SLAP_CRITICAL_CONTROL 2 @@ -1511,6 +1542,7 @@ typedef struct slap_op { slap_callback *o_callback; /* callback pointers */ LDAPControl **o_ctrls; /* controls */ + void *o_threadctx; /* thread pool thread context */ void *o_private; /* anything the backend needs */ LDAP_STAILQ_ENTRY(slap_op) o_next; /* next operation in list */ @@ -1586,6 +1618,8 @@ typedef struct slap_conn { int c_sasl_layers; /* true if we need to install SASL i/o handlers */ void *c_sasl_context; /* SASL session context */ void *c_sasl_extra; /* SASL session extra stuff */ + struct slap_op *c_sasl_bindop; /* set to current op if it's a bind */ + ldap_pvt_thread_mutex_t c_sasl_bindmutex; /* lock for bindop */ PagedResultsState c_pagedresults_state; /* paged result state */