/* $OpenLDAP$ */
/*
- * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
*/
#ifndef PROTO_SLAP_H
LDAP_SLAPD_F (int) ad_define_option LDAP_P(( const char *name,
const char *fname, int lineno ));
+LDAP_SLAPD_F (MatchingRule *) ad_mr(
+ AttributeDescription *ad,
+ unsigned usage );
+
/*
* add.c
*/
LDAP_SLAPD_F (void) attr_free LDAP_P(( Attribute *a ));
LDAP_SLAPD_F (Attribute *) attr_dup LDAP_P(( Attribute *a ));
+#ifdef SLAP_NVALUES
+#define attr_mergeit( e, d, v ) attr_merge( e, d, v, NULL /* FIXME */ )
+#define attr_mergeit_one( e, d, v ) attr_merge_one( e, d, v, NULL /* FIXME */ )
+
+LDAP_SLAPD_F (int) attr_merge LDAP_P(( Entry *e,
+ AttributeDescription *desc,
+ BerVarray vals,
+ BerVarray nvals ));
+LDAP_SLAPD_F (int) attr_merge_one LDAP_P(( Entry *e,
+ AttributeDescription *desc,
+ struct berval *val,
+ struct berval *nval ));
+#else
+#define attr_mergeit( e, d, v ) attr_merge( e, d, v )
+#define attr_mergeit_one( e, d, v ) attr_merge_one( e, d, v )
LDAP_SLAPD_F (int) attr_merge LDAP_P(( Entry *e,
AttributeDescription *desc,
BerVarray vals ));
LDAP_SLAPD_F (int) attr_merge_one LDAP_P(( Entry *e,
AttributeDescription *desc,
struct berval *val ));
+#endif
LDAP_SLAPD_F (Attribute *) attrs_find LDAP_P((
Attribute *a, AttributeDescription *desc ));
LDAP_SLAPD_F (Attribute *) attr_find LDAP_P((
Connection *co,
Operation *op,
int senderrors ));
-
-LDAP_SLAPD_F (char *) get_supported_ctrl LDAP_P((int index));
-
-LDAP_SLAPD_F (slap_mask_t) get_supported_ctrl_mask LDAP_P((int index));
+LDAP_SLAPD_F (int) register_supported_control LDAP_P((
+ const char *controloid,
+ slap_mask_t controlmask,
+ char **controlexops,
+ SLAP_CTRL_PARSE_FN *controlparsefn ));
+LDAP_SLAPD_F (int) slap_controls_init LDAP_P ((void));
+LDAP_SLAPD_F (void) controls_destroy LDAP_P ((void));
+LDAP_SLAPD_F (int) controls_root_dse_info LDAP_P ((Entry *e));
+LDAP_SLAPD_F (int) get_supported_controls LDAP_P (( char ***ctrloidsp, slap_mask_t **ctrlmasks ));
/*
* config.c
Syntax *syntax,
struct berval *val ));
+#ifdef SLAP_NVALUES
LDAP_SLAPD_F (int) dnNormalize LDAP_P((
+ slap_mask_t use,
Syntax *syntax,
+ MatchingRule *mr,
struct berval *val,
- struct berval **normalized ));
-
-LDAP_SLAPD_F (int) dnNormalize2 LDAP_P((
+ struct berval *normalized ));
+#define dnNormalize2(s,v,n) dnNormalize(0,(s),NULL,(v),(n))
+#else
+LDAP_SLAPD_F (int) dnNormalize LDAP_P((
Syntax *syntax,
struct berval *val,
struct berval *normalized ));
+#define dnNormalize2(s,v,n) dnNormalize((s),(v),(n))
+#endif
LDAP_SLAPD_F (int) dnPretty LDAP_P((
Syntax *syntax,
LDAP_SLAPD_F (void) entry_free LDAP_P(( Entry *e ));
LDAP_SLAPD_F (int) entry_cmp LDAP_P(( Entry *a, Entry *b ));
-LDAP_SLAPD_F (int) entry_dn_cmp LDAP_P(( Entry *a, Entry *b ));
-LDAP_SLAPD_F (int) entry_id_cmp LDAP_P(( Entry *a, Entry *b ));
+LDAP_SLAPD_F (int) entry_dn_cmp LDAP_P(( const void *v_a, const void *v_b ));
+LDAP_SLAPD_F (int) entry_id_cmp LDAP_P(( const void *v_a, const void *v_b ));
/*
* extended.c
*/
+#ifdef LDAP_EXOP_X_CANCEL
+const struct berval slap_EXOP_CANCEL;
+#endif
+const struct berval slap_EXOP_WHOAMI;
+const struct berval slap_EXOP_MODIFY_PASSWD;
+const struct berval slap_EXOP_START_TLS;
+
typedef int (SLAP_EXTOP_MAIN_FN) LDAP_P((
Connection *conn, Operation *op,
- const char * reqoid,
+ struct berval * reqoid,
struct berval * reqdata,
char ** rspoid,
struct berval ** rspdata,
BerVarray *refs ));
typedef int (SLAP_EXTOP_GETOID_FN) LDAP_P((
- int index, char *oid, int blen ));
+ int index, struct berval *oid, int blen ));
LDAP_SLAPD_F (int) load_extop LDAP_P((
- const char *ext_oid,
+ struct berval *ext_oid,
SLAP_EXTOP_MAIN_FN *ext_main ));
LDAP_SLAPD_F (int) extops_init LDAP_P(( void ));
LDAP_SLAPD_F (struct berval *) get_supported_extop LDAP_P((int index));
+/*
+ * * cancel.c
+ * */
+LDAP_SLAPD_F ( SLAP_EXTOP_MAIN_FN ) cancel_extop;
+
/*
* filter.c
*/
LDAP_SLAPD_F (void) vrFilter2bv LDAP_P(( ValuesReturnFilter *f, struct berval *fstr ));
LDAP_SLAPD_F (int) filter_has_subordinates LDAP_P(( Filter *filter ));
+LDAP_SLAPD_F (int) filter_escape_value LDAP_P(( struct berval *in,
+ struct berval *out ));
/*
* filterentry.c
LDAP_SLAPD_F (int) slap_shutdown LDAP_P(( Backend *be ));
LDAP_SLAPD_F (int) slap_destroy LDAP_P((void));
-LDAP_SLAPD_V (char *) slap_known_controls[];
+LDAP_SLAPD_V (char **) slap_known_controls;
/*
* kerberos.c
*/
LDAP_SLAPD_F( int ) modify_check_duplicates(
AttributeDescription *ad, MatchingRule *mr,
- BerVarray vals, BerVarray mods,
+ BerVarray vals, BerVarray mods, int permissive,
const char **text, char *textbuf, size_t textlen );
LDAP_SLAPD_F( int ) modify_add_values( Entry *e,
Modification *mod,
+ int permissive,
const char **text, char *textbuf, size_t textlen );
LDAP_SLAPD_F( int ) modify_delete_values( Entry *e,
Modification *mod,
+ int permissive,
const char **text, char *textbuf, size_t textlen );
LDAP_SLAPD_F( int ) modify_replace_values( Entry *e,
Modification *mod,
+ int permissive,
const char **text, char *textbuf, size_t textlen );
LDAP_SLAPD_F( void ) slap_mod_free( Modification *mod, int freeit );
LDAP_SLAPD_F (int) is_entry_objectclass LDAP_P((
Entry *, ObjectClass *oc, int set_flags ));
#define is_entry_alias(e) \
- (((e)->e_ocflags & SLAP_OC__END) ? ((e)->e_ocflags & SLAP_OC_ALIAS) : \
- is_entry_objectclass((e), slap_schema.si_oc_alias, 1))
+ (((e)->e_ocflags & SLAP_OC__END) \
+ ? (((e)->e_ocflags & SLAP_OC_ALIAS) != 0) \
+ : is_entry_objectclass((e), slap_schema.si_oc_alias, 1))
#define is_entry_referral(e) \
- (((e)->e_ocflags & SLAP_OC__END) ? ((e)->e_ocflags & SLAP_OC_REFERRAL) : \
- is_entry_objectclass((e), slap_schema.si_oc_referral, 1))
+ (((e)->e_ocflags & SLAP_OC__END) \
+ ? (((e)->e_ocflags & SLAP_OC_REFERRAL) != 0) \
+ : is_entry_objectclass((e), slap_schema.si_oc_referral, 1))
#define is_entry_subentry(e) \
- (((e)->e_ocflags & SLAP_OC__END) ? ((e)->e_ocflags & SLAP_OC_SUBENTRY) : \
- is_entry_objectclass((e), slap_schema.si_oc_subentry, 1))
+ (((e)->e_ocflags & SLAP_OC__END) \
+ ? (((e)->e_ocflags & SLAP_OC_SUBENTRY) != 0) \
+ : is_entry_objectclass((e), slap_schema.si_oc_subentry, 1))
#define is_entry_collectiveAttributeSubentry(e) \
- (((e)->e_ocflags & SLAP_OC__END) ? ((e)->e_ocflags & SLAP_OC_COLLECTIVEATTRIBUTESUBENTRY) : \
- is_entry_objectclass((e), slap_schema.si_oc_collectiveAttributeSubentry, 1))
+ (((e)->e_ocflags & SLAP_OC__END) \
+ ? (((e)->e_ocflags & SLAP_OC_COLLECTIVEATTRIBUTESUBENTRY) != 0) \
+ : is_entry_objectclass((e), slap_schema.si_oc_collectiveAttributeSubentry, 1))
#define is_entry_dynamicObject(e) \
- (((e)->e_ocflags & SLAP_OC__END) ? ((e)->e_ocflags & SLAP_OC_DYNAMICOBJECT) : \
- is_entry_objectclass((e), slap_schema.si_oc_dynamicObject, 1))
+ (((e)->e_ocflags & SLAP_OC__END) \
+ ? (((e)->e_ocflags & SLAP_OC_DYNAMICOBJECT) != 0) \
+ : is_entry_objectclass((e), slap_schema.si_oc_dynamicObject, 1))
LDAP_SLAPD_F (int) oc_schema_info( Entry *e );
const char *rspoid, struct berval *rspdata,
LDAPControl **ctrls ));
+LDAP_SLAPD_F (void) slap_send_ldap_intermediate_resp LDAP_P((
+ Connection *conn, Operation *op,
+ ber_int_t err, const char *matched,
+ const char *text, BerVarray refs,
+ const char *rspoid, struct berval *rspdata,
+ LDAPControl **ctrls ));
+
LDAP_SLAPD_F (void) send_ldap_partial LDAP_P((
Connection *conn, Operation *op,
const char *rspoid, struct berval *rspdata,
LDAP_SLAPD_F (int) slap_sasl_setpass(
Connection *conn,
Operation *op,
- const char *reqoid,
+ struct berval *reqoid,
struct berval *reqdata,
char **rspoid,
struct berval **rspdata,
LDAP_SLAPD_F (int) slap_sasl_setpolicy LDAP_P(( const char * ));
LDAP_SLAPD_F (slap_response) slap_cb_null_response;
LDAP_SLAPD_F (slap_sresult) slap_cb_null_sresult;
+LDAP_SLAPD_F (slap_sendreference) slap_cb_null_sreference;
/*
*/
LDAP_SLAPD_F (Filter *) str2filter LDAP_P(( const char *str ));
-/*
- * suffixalias.c
- */
-LDAP_SLAPD_F (void) suffix_alias LDAP_P(( Backend *be, struct berval *ndn ));
-
/* syntax.c */
LDAP_SLAPD_F (Syntax *) syn_find LDAP_P((
const char *synname ));
/*
* value.c
*/
+#ifdef SLAP_NVALUES
+LDAP_SLAPD_F (int) asserted_value_validate_normalize LDAP_P((
+ AttributeDescription *ad,
+ MatchingRule *mr,
+ unsigned usage,
+ struct berval *in,
+ struct berval *out,
+ const char ** text ));
+#else
LDAP_SLAPD_F (int) value_validate LDAP_P((
MatchingRule *mr,
struct berval *in,
struct berval *in,
struct berval *out,
const char ** text ));
+#define value_find(ad,values,value) (value_find_ex((ad),0,(values),(value)))
+#endif
+
LDAP_SLAPD_F (int) value_match LDAP_P((
int *match,
AttributeDescription *ad,
struct berval *v1,
void *v2,
const char ** text ));
-#define value_find(ad,values,value) (value_find_ex((ad),0,(values),(value)))
LDAP_SLAPD_F (int) value_find_ex LDAP_P((
AttributeDescription *ad,
unsigned flags,
BerVarray values,
struct berval *value ));
+
LDAP_SLAPD_F (int) value_add LDAP_P((
BerVarray *vals,
BerVarray addvals ));