1 /* $OpenLDAP: pkg/ldap/servers/slapd/proto-slap.h,v 1.670.2.26 2008/07/08 19:25:38 quanah Exp $ */
2 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
4 * Copyright 1998-2008 The OpenLDAP Foundation.
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted only as authorized by the OpenLDAP
11 * A copy of this license is available in the file LICENSE in the
12 * top-level directory of the distribution or, alternatively, at
13 * <http://www.OpenLDAP.org/license.html>.
15 /* Portions Copyright (c) 1995 Regents of the University of Michigan.
16 * All rights reserved.
18 * Redistribution and use in source and binary forms are permitted
19 * provided that this notice is preserved and that due credit is given
20 * to the University of Michigan at Ann Arbor. The name of the University
21 * may not be used to endorse or promote products derived from this
22 * software without specific prior written permission. This software
23 * is provided ``as is'' without express or implied warranty.
29 #include <ldap_cdefs.h>
34 struct config_args_s
; /* config.h */
35 struct config_reply_s
; /* config.h */
41 #ifdef SLAPD_ACI_ENABLED
42 LDAP_SLAPD_F (int) dynacl_aci_init
LDAP_P(( void ));
43 #endif /* SLAPD_ACI_ENABLED */
44 #endif /* SLAP_DYNACL */
49 LDAP_SLAPD_F (int) access_allowed_mask
LDAP_P((
51 Entry
*e
, AttributeDescription
*desc
, struct berval
*val
,
53 AccessControlState
*state
,
55 #define access_allowed(op,e,desc,val,access,state) access_allowed_mask(op,e,desc,val,access,state,NULL)
56 LDAP_SLAPD_F (int) slap_access_allowed
LDAP_P((
59 AttributeDescription
*desc
,
62 AccessControlState
*state
,
63 slap_mask_t
*maskp
));
64 LDAP_SLAPD_F (int) slap_access_always_allowed
LDAP_P((
67 AttributeDescription
*desc
,
70 AccessControlState
*state
,
71 slap_mask_t
*maskp
));
73 LDAP_SLAPD_F (int) acl_check_modlist
LDAP_P((
74 Operation
*op
, Entry
*e
, Modifications
*ml
));
76 LDAP_SLAPD_F (void) acl_append( AccessControl
**l
, AccessControl
*a
, int pos
);
79 LDAP_SLAPD_F (int) slap_dynacl_register
LDAP_P(( slap_dynacl_t
*da
));
80 LDAP_SLAPD_F (slap_dynacl_t
*) slap_dynacl_get
LDAP_P(( const char *name
));
81 #endif /* SLAP_DYNACL */
82 LDAP_SLAPD_F (int) acl_init
LDAP_P(( void ));
84 LDAP_SLAPD_F (int) acl_get_part
LDAP_P((
89 LDAP_SLAPD_F (int) acl_match_set
LDAP_P((
93 struct berval
*default_set_attribute
));
94 LDAP_SLAPD_F (int) acl_string_expand
LDAP_P((
95 struct berval
*newbuf
, struct berval
*pattern
,
96 char *match
, int nmatch
, regmatch_t
*matches
));
101 LDAP_SLAPD_V (LDAP_CONST
char *) style_strings
[];
103 LDAP_SLAPD_F (int) parse_acl
LDAP_P(( Backend
*be
,
104 const char *fname
, int lineno
,
105 int argc
, char **argv
, int pos
));
107 LDAP_SLAPD_F (char *) access2str
LDAP_P(( slap_access_t access
));
108 LDAP_SLAPD_F (slap_access_t
) str2access
LDAP_P(( const char *str
));
110 #define ACCESSMASK_MAXLEN sizeof("unknown (+wrscan)")
111 LDAP_SLAPD_F (char *) accessmask2str
LDAP_P(( slap_mask_t mask
, char*, int debug
));
112 LDAP_SLAPD_F (slap_mask_t
) str2accessmask
LDAP_P(( const char *str
));
113 LDAP_SLAPD_F (void) acl_unparse
LDAP_P(( AccessControl
*, struct berval
* ));
114 LDAP_SLAPD_F (void) acl_destroy
LDAP_P(( AccessControl
*, AccessControl
* ));
115 LDAP_SLAPD_F (void) acl_free
LDAP_P(( AccessControl
*a
));
121 LDAP_SLAPD_F (int) slap_str2ad
LDAP_P((
123 AttributeDescription
**ad
,
124 const char **text
));
126 LDAP_SLAPD_F (int) slap_bv2ad
LDAP_P((
128 AttributeDescription
**ad
,
129 const char **text
));
131 LDAP_SLAPD_F (void) ad_destroy
LDAP_P(( AttributeDescription
* ));
133 #define ad_cmp(l,r) (((l)->ad_cname.bv_len < (r)->ad_cname.bv_len) \
134 ? -1 : (((l)->ad_cname.bv_len > (r)->ad_cname.bv_len) \
135 ? 1 : strcasecmp((l)->ad_cname.bv_val, (r)->ad_cname.bv_val )))
137 LDAP_SLAPD_F (int) is_ad_subtype
LDAP_P((
138 AttributeDescription
*sub
,
139 AttributeDescription
*super
));
141 LDAP_SLAPD_F (int) ad_inlist
LDAP_P((
142 AttributeDescription
*desc
,
143 AttributeName
*attrs
));
145 LDAP_SLAPD_F (int) slap_str2undef_ad
LDAP_P((
147 AttributeDescription
**ad
,
151 LDAP_SLAPD_F (int) slap_bv2undef_ad
LDAP_P((
153 AttributeDescription
**ad
,
157 LDAP_SLAPD_F (AttributeDescription
*) slap_bv2tmp_ad
LDAP_P((
161 LDAP_SLAPD_F (int) slap_ad_undef_promote
LDAP_P((
163 AttributeType
*nat
));
165 LDAP_SLAPD_F (AttributeDescription
*) ad_find_tags
LDAP_P((
167 struct berval
*tags
));
169 LDAP_SLAPD_F (AttributeName
*) str2anlist
LDAP_P(( AttributeName
*an
,
170 char *str
, const char *brkstr
));
171 LDAP_SLAPD_F (void) anlist_free
LDAP_P(( AttributeName
*an
,
172 int freename
, void *ctx
));
174 LDAP_SLAPD_F (char **) anlist2charray_x
LDAP_P((
175 AttributeName
*an
, int dup
, void *ctx
));
176 LDAP_SLAPD_F (char **) anlist2charray
LDAP_P(( AttributeName
*an
, int dup
));
177 LDAP_SLAPD_F (char **) anlist2attrs
LDAP_P(( AttributeName
*anlist
));
178 LDAP_SLAPD_F (AttributeName
*) file2anlist
LDAP_P((
179 AttributeName
*, const char *, const char * ));
180 LDAP_SLAPD_F (int) an_find
LDAP_P(( AttributeName
*a
, struct berval
*s
));
181 LDAP_SLAPD_F (int) ad_define_option
LDAP_P(( const char *name
,
182 const char *fname
, int lineno
));
183 LDAP_SLAPD_F (void) ad_unparse_options
LDAP_P(( BerVarray
*res
));
185 LDAP_SLAPD_F (MatchingRule
*) ad_mr(
186 AttributeDescription
*ad
,
189 LDAP_SLAPD_V( AttributeName
* ) slap_anlist_no_attrs
;
190 LDAP_SLAPD_V( AttributeName
* ) slap_anlist_all_user_attributes
;
191 LDAP_SLAPD_V( AttributeName
* ) slap_anlist_all_operational_attributes
;
192 LDAP_SLAPD_V( AttributeName
* ) slap_anlist_all_attributes
;
197 LDAP_SLAPD_F (int) slap_mods2entry
LDAP_P(( Modifications
*mods
, Entry
**e
,
198 int initial
, int dup
, const char **text
, char *textbuf
, size_t textlen
));
200 LDAP_SLAPD_F (int) slap_entry2mods
LDAP_P(( Entry
*e
,
201 Modifications
**mods
, const char **text
,
202 char *textbuf
, size_t textlen
));
203 LDAP_SLAPD_F( int ) slap_add_opattrs(
206 char *textbuf
, size_t textlen
,
213 LDAP_SLAPD_V(int) at_oc_cache
;
214 LDAP_SLAPD_F (void) at_config
LDAP_P((
215 const char *fname
, int lineno
,
216 int argc
, char **argv
));
217 LDAP_SLAPD_F (AttributeType
*) at_find
LDAP_P((
219 LDAP_SLAPD_F (AttributeType
*) at_bvfind
LDAP_P((
220 struct berval
*name
));
221 LDAP_SLAPD_F (int) at_find_in_list
LDAP_P((
222 AttributeType
*sat
, AttributeType
**list
));
223 LDAP_SLAPD_F (int) at_append_to_list
LDAP_P((
224 AttributeType
*sat
, AttributeType
***listp
));
225 LDAP_SLAPD_F (int) at_delete_from_list
LDAP_P((
226 int pos
, AttributeType
***listp
));
227 LDAP_SLAPD_F (int) at_schema_info
LDAP_P(( Entry
*e
));
228 LDAP_SLAPD_F (int) at_add
LDAP_P((
229 LDAPAttributeType
*at
, int user
,
230 AttributeType
**sat
, AttributeType
*prev
, const char **err
));
231 LDAP_SLAPD_F (void) at_destroy
LDAP_P(( void ));
233 LDAP_SLAPD_F (int) is_at_subtype
LDAP_P((
235 AttributeType
*super
));
237 LDAP_SLAPD_F (const char *) at_syntax
LDAP_P((
238 AttributeType
*at
));
239 LDAP_SLAPD_F (int) is_at_syntax
LDAP_P((
243 LDAP_SLAPD_F (int) at_start
LDAP_P(( AttributeType
**at
));
244 LDAP_SLAPD_F (int) at_next
LDAP_P(( AttributeType
**at
));
245 LDAP_SLAPD_F (void) at_delete
LDAP_P(( AttributeType
*at
));
247 LDAP_SLAPD_F (void) at_unparse
LDAP_P((
248 BerVarray
*bva
, AttributeType
*start
, AttributeType
*end
, int system
));
250 LDAP_SLAPD_F (int) register_at
LDAP_P((
252 AttributeDescription
**ad
,
258 LDAP_SLAPD_F (void) attr_free
LDAP_P(( Attribute
*a
));
259 LDAP_SLAPD_F (Attribute
*) attr_dup
LDAP_P(( Attribute
*a
));
261 #ifdef LDAP_COMP_MATCH
262 LDAP_SLAPD_F (void) comp_tree_free
LDAP_P(( Attribute
*a
));
265 #define attr_mergeit( e, d, v ) attr_merge( e, d, v, NULL /* FIXME */ )
266 #define attr_mergeit_one( e, d, v ) attr_merge_one( e, d, v, NULL /* FIXME */ )
268 LDAP_SLAPD_F (Attribute
*) attr_alloc
LDAP_P(( AttributeDescription
*ad
));
269 LDAP_SLAPD_F (Attribute
*) attrs_alloc
LDAP_P(( int num
));
270 LDAP_SLAPD_F (int) attr_prealloc
LDAP_P(( int num
));
271 LDAP_SLAPD_F (int) attr_valfind
LDAP_P(( Attribute
*a
,
276 LDAP_SLAPD_F (int) attr_valadd
LDAP_P(( Attribute
*a
,
280 LDAP_SLAPD_F (int) attr_merge
LDAP_P(( Entry
*e
,
281 AttributeDescription
*desc
,
284 LDAP_SLAPD_F (int) attr_merge_one
LDAP_P(( Entry
*e
,
285 AttributeDescription
*desc
,
287 struct berval
*nval
));
288 LDAP_SLAPD_F (int) attr_normalize
LDAP_P(( AttributeDescription
*desc
,
289 BerVarray vals
, BerVarray
*nvalsp
, void *memctx
));
290 LDAP_SLAPD_F (int) attr_normalize_one
LDAP_P(( AttributeDescription
*desc
,
291 struct berval
*val
, struct berval
*nval
, void *memctx
));
292 LDAP_SLAPD_F (int) attr_merge_normalize
LDAP_P(( Entry
*e
,
293 AttributeDescription
*desc
,
294 BerVarray vals
, void *memctx
));
295 LDAP_SLAPD_F (int) attr_merge_normalize_one
LDAP_P(( Entry
*e
,
296 AttributeDescription
*desc
,
297 struct berval
*val
, void *memctx
));
298 LDAP_SLAPD_F (Attribute
*) attrs_find
LDAP_P((
299 Attribute
*a
, AttributeDescription
*desc
));
300 LDAP_SLAPD_F (Attribute
*) attr_find
LDAP_P((
301 Attribute
*a
, AttributeDescription
*desc
));
302 LDAP_SLAPD_F (int) attr_delete
LDAP_P((
303 Attribute
**attrs
, AttributeDescription
*desc
));
305 LDAP_SLAPD_F (void) attrs_free
LDAP_P(( Attribute
*a
));
306 LDAP_SLAPD_F (Attribute
*) attrs_dup
LDAP_P(( Attribute
*a
));
307 LDAP_SLAPD_F (int) attr_init
LDAP_P(( void ));
308 LDAP_SLAPD_F (int) attr_destroy
LDAP_P(( void ));
314 LDAP_SLAPD_F (int) get_ava
LDAP_P((
319 const char **text
));
320 LDAP_SLAPD_F (void) ava_free
LDAP_P((
322 AttributeAssertion
*ava
,
329 #define be_match( be1, be2 ) ( (be1) == (be2) || \
330 ( (be1) && (be2) && (be1)->be_nsuffix == (be2)->be_nsuffix ) )
332 LDAP_SLAPD_F (int) backend_init
LDAP_P((void));
333 LDAP_SLAPD_F (int) backend_add
LDAP_P((BackendInfo
*aBackendInfo
));
334 LDAP_SLAPD_F (int) backend_num
LDAP_P((Backend
*be
));
335 LDAP_SLAPD_F (int) backend_startup
LDAP_P((Backend
*be
));
336 LDAP_SLAPD_F (int) backend_startup_one
LDAP_P((Backend
*be
, struct config_reply_s
*cr
));
337 LDAP_SLAPD_F (int) backend_sync
LDAP_P((Backend
*be
));
338 LDAP_SLAPD_F (int) backend_shutdown
LDAP_P((Backend
*be
));
339 LDAP_SLAPD_F (int) backend_destroy
LDAP_P((void));
340 LDAP_SLAPD_F (void) backend_stopdown_one
LDAP_P((BackendDB
*bd
));
341 LDAP_SLAPD_F (void) backend_destroy_one
LDAP_P((BackendDB
*bd
, int dynamic
));
343 LDAP_SLAPD_F (BackendInfo
*) backend_info
LDAP_P(( const char *type
));
344 LDAP_SLAPD_F (BackendDB
*) backend_db_init
LDAP_P(( const char *type
,
345 BackendDB
*be
, int idx
, struct config_reply_s
*cr
));
346 LDAP_SLAPD_F (void) backend_db_insert
LDAP_P((BackendDB
*bd
, int idx
));
347 LDAP_SLAPD_F (void) backend_db_move
LDAP_P((BackendDB
*bd
, int idx
));
349 LDAP_SLAPD_F (BackendDB
*) select_backend
LDAP_P((
351 int noSubordinates
));
353 LDAP_SLAPD_F (int) be_issuffix
LDAP_P(( Backend
*be
,
354 struct berval
*suffix
));
355 LDAP_SLAPD_F (int) be_issubordinate
LDAP_P(( Backend
*be
,
356 struct berval
*subordinate
));
357 LDAP_SLAPD_F (int) be_isroot
LDAP_P(( Operation
*op
));
358 LDAP_SLAPD_F (int) be_isroot_dn
LDAP_P(( Backend
*be
, struct berval
*ndn
));
359 LDAP_SLAPD_F (int) be_isroot_pw
LDAP_P(( Operation
*op
));
360 LDAP_SLAPD_F (int) be_rootdn_bind
LDAP_P(( Operation
*op
, SlapReply
*rs
));
361 LDAP_SLAPD_F (int) be_slurp_update
LDAP_P(( Operation
*op
));
362 #define be_isupdate( op ) be_slurp_update( (op) )
363 LDAP_SLAPD_F (int) be_shadow_update
LDAP_P(( Operation
*op
));
364 LDAP_SLAPD_F (int) be_isupdate_dn
LDAP_P(( Backend
*be
, struct berval
*ndn
));
365 LDAP_SLAPD_F (struct berval
*) be_root_dn
LDAP_P(( Backend
*be
));
366 LDAP_SLAPD_F (int) be_entry_get_rw
LDAP_P(( Operation
*o
,
367 struct berval
*ndn
, ObjectClass
*oc
,
368 AttributeDescription
*at
, int rw
, Entry
**e
));
369 LDAP_SLAPD_F (int) be_entry_release_rw
LDAP_P((
370 Operation
*o
, Entry
*e
, int rw
));
371 #define be_entry_release_r( o, e ) be_entry_release_rw( o, e, 0 )
372 #define be_entry_release_w( o, e ) be_entry_release_rw( o, e, 1 )
374 LDAP_SLAPD_F (int) backend_unbind
LDAP_P((Operation
*op
, SlapReply
*rs
));
375 LDAP_SLAPD_F (int) backend_connection_init
LDAP_P((Connection
*conn
));
376 LDAP_SLAPD_F (int) backend_connection_destroy
LDAP_P((Connection
*conn
));
378 LDAP_SLAPD_F( int ) backend_check_controls
LDAP_P((
381 LDAP_SLAPD_F( int ) backend_check_restrictions
LDAP_P((
384 struct berval
*opdata
));
386 LDAP_SLAPD_F( int ) backend_check_referrals
LDAP_P((
390 LDAP_SLAPD_F (int) backend_group
LDAP_P((
393 struct berval
*gr_ndn
,
394 struct berval
*op_ndn
,
395 ObjectClass
*group_oc
,
396 AttributeDescription
*group_at
399 LDAP_SLAPD_F (int) backend_attribute
LDAP_P((
402 struct berval
*entry_ndn
,
403 AttributeDescription
*entry_at
,
408 LDAP_SLAPD_F (int) backend_access
LDAP_P((
412 AttributeDescription
*entry_at
,
414 slap_access_t access
,
415 slap_mask_t
*mask
));
417 LDAP_SLAPD_F (int) backend_operational
LDAP_P((
422 LDAP_SLAPD_V(BackendInfo
) slap_binfo
[];
428 LDAP_SLAPD_F (int) glue_sub_init( void );
429 LDAP_SLAPD_F (int) glue_sub_attach( void );
430 LDAP_SLAPD_F (int) glue_sub_add( BackendDB
*be
, int advert
, int online
);
431 LDAP_SLAPD_F (int) glue_sub_del( BackendDB
*be
);
436 LDAP_SLAPD_F (int) overlay_register
LDAP_P(( slap_overinst
*on
));
437 LDAP_SLAPD_F (int) overlay_config
LDAP_P(( BackendDB
*be
, const char *ov
,
438 int idx
, BackendInfo
**res
, ConfigReply
*cr
));
439 LDAP_SLAPD_F (void) overlay_destroy_one
LDAP_P((
441 slap_overinst
*on
));
442 LDAP_SLAPD_F (slap_overinst
*) overlay_next
LDAP_P(( slap_overinst
*on
));
443 LDAP_SLAPD_F (slap_overinst
*) overlay_find
LDAP_P(( const char *name
));
444 LDAP_SLAPD_F (int) overlay_is_over
LDAP_P(( BackendDB
*be
));
445 LDAP_SLAPD_F (int) overlay_is_inst
LDAP_P(( BackendDB
*be
, const char *name
));
446 LDAP_SLAPD_F (int) overlay_register_control
LDAP_P((
449 LDAP_SLAPD_F (int) overlay_op_walk
LDAP_P((
452 slap_operation_t which
,
454 slap_overinst
*on
));
455 LDAP_SLAPD_F (int) overlay_entry_get_ov
LDAP_P((
459 AttributeDescription
*ad
,
462 slap_overinst
*ov
));
463 LDAP_SLAPD_F (int) overlay_entry_release_ov
LDAP_P((
467 slap_overinst
*ov
));
468 LDAP_SLAPD_F (void) overlay_insert
LDAP_P((
469 BackendDB
*be
, slap_overinst
*on
, slap_overinst
***prev
, int idx
));
470 LDAP_SLAPD_F (void) overlay_move
LDAP_P((
471 BackendDB
*be
, slap_overinst
*on
, int idx
));
472 #ifdef SLAP_CONFIG_DELETE
473 LDAP_SLAPD_F (void) overlay_remove
LDAP_P((
474 BackendDB
*be
, slap_overinst
*on
));
475 #endif /* SLAP_CONFIG_DELETE */
479 LDAP_SLAPD_F (int) slap_loglevel_register
LDAP_P (( slap_mask_t m
, struct berval
*s
));
480 LDAP_SLAPD_F (int) slap_loglevel_get
LDAP_P(( struct berval
*s
, int *l
));
481 LDAP_SLAPD_F (int) str2loglevel
LDAP_P(( const char *s
, int *l
));
482 LDAP_SLAPD_F (int) loglevel2bvarray
LDAP_P(( int l
, BerVarray
*bva
));
483 LDAP_SLAPD_F (const char *) loglevel2str
LDAP_P(( int l
));
484 LDAP_SLAPD_F (int) loglevel2bv
LDAP_P(( int l
, struct berval
*bv
));
485 LDAP_SLAPD_F (int) loglevel_print
LDAP_P(( FILE *out
));
486 LDAP_SLAPD_F (int) slap_cf_aux_table_parse
LDAP_P(( const char *word
, void *bc
, slap_cf_aux_table
*tab0
, LDAP_CONST
char *tabmsg
));
487 LDAP_SLAPD_F (int) slap_cf_aux_table_unparse
LDAP_P(( void *bc
, struct berval
*bv
, slap_cf_aux_table
*tab0
));
492 LDAP_SLAPD_V (BerMemoryFunctions
) ch_mfuncs
;
493 LDAP_SLAPD_F (void *) ch_malloc
LDAP_P(( ber_len_t size
));
494 LDAP_SLAPD_F (void *) ch_realloc
LDAP_P(( void *block
, ber_len_t size
));
495 LDAP_SLAPD_F (void *) ch_calloc
LDAP_P(( ber_len_t nelem
, ber_len_t size
));
496 LDAP_SLAPD_F (char *) ch_strdup
LDAP_P(( const char *string
));
497 LDAP_SLAPD_F (void) ch_free
LDAP_P(( void * ));
507 #ifdef LDAP_COMP_MATCH
508 struct comp_attribute_aliasing
;
510 LDAP_SLAPD_F (int) test_comp_filter_entry
LDAP_P((
513 MatchingRuleAssertion
* mr
));
515 LDAP_SLAPD_F (int) dup_comp_filter
LDAP_P((
518 ComponentFilter
*in_f
,
519 ComponentFilter
**out_f
));
521 LDAP_SLAPD_F (int) get_aliased_filter_aa
LDAP_P((
523 AttributeAssertion
* a_assert
,
524 struct comp_attribute_aliasing
* aa
,
525 const char** text
));
527 LDAP_SLAPD_F (int) get_aliased_filter
LDAP_P((
529 MatchingRuleAssertion
* ma
,
530 struct comp_attribute_aliasing
* aa
,
531 const char** text
));
533 LDAP_SLAPD_F (int) get_comp_filter
LDAP_P((
536 ComponentFilter
** filt
,
537 const char **text
));
539 LDAP_SLAPD_F (int) insert_component_reference
LDAP_P((
540 ComponentReference
*cr
,
541 ComponentReference
** cr_list
));
543 LDAP_SLAPD_F (int) is_component_reference
LDAP_P((
546 LDAP_SLAPD_F (int) extract_component_reference
LDAP_P((
548 ComponentReference
** cr
));
550 LDAP_SLAPD_F (int) componentFilterMatch
LDAP_P((
555 struct berval
*value
,
556 void *assertedValue
));
558 LDAP_SLAPD_F (int) directoryComponentsMatch
LDAP_P((
563 struct berval
*value
,
564 void *assertedValue
));
566 LDAP_SLAPD_F (int) allComponentsMatch
LDAP_P((
571 struct berval
*value
,
572 void *assertedValue
));
574 LDAP_SLAPD_F (ComponentReference
*) dup_comp_ref
LDAP_P((
576 ComponentReference
*cr
));
578 LDAP_SLAPD_F (int) componentFilterValidate
LDAP_P((
580 struct berval
* bv
));
582 LDAP_SLAPD_F (int) allComponentsValidate
LDAP_P((
584 struct berval
* bv
));
586 LDAP_SLAPD_F (void) component_free
LDAP_P((
587 ComponentFilter
*f
));
589 LDAP_SLAPD_F (void) free_ComponentData
LDAP_P((
592 LDAP_SLAPD_V (test_membership_func
*) is_aliased_attribute
;
594 LDAP_SLAPD_V (free_component_func
*) component_destructor
;
596 LDAP_SLAPD_V (get_component_info_func
*) get_component_description
;
598 LDAP_SLAPD_V (component_encoder_func
*) component_encoder
;
600 LDAP_SLAPD_V (convert_attr_to_comp_func
*) attr_converter
;
602 LDAP_SLAPD_V (alloc_nibble_func
*) nibble_mem_allocator
;
604 LDAP_SLAPD_V (free_nibble_func
*) nibble_mem_free
;
610 LDAP_SLAPD_V( struct slap_control_ids
) slap_cids
;
611 LDAP_SLAPD_F (void) slap_free_ctrls
LDAP_P((
613 LDAPControl
**ctrls
));
614 LDAP_SLAPD_F (int) slap_parse_ctrl
LDAP_P((
617 LDAPControl
*control
,
618 const char **text
));
619 LDAP_SLAPD_F (int) get_ctrls
LDAP_P((
623 LDAP_SLAPD_F (int) register_supported_control2
LDAP_P((
624 const char *controloid
,
625 slap_mask_t controlmask
,
627 SLAP_CTRL_PARSE_FN
*controlparsefn
,
630 #define register_supported_control(oid, mask, exops, fn, cid) \
631 register_supported_control2((oid), (mask), (exops), (fn), 0, (cid))
632 LDAP_SLAPD_F (int) slap_controls_init
LDAP_P ((void));
633 LDAP_SLAPD_F (void) controls_destroy
LDAP_P ((void));
634 LDAP_SLAPD_F (int) controls_root_dse_info
LDAP_P ((Entry
*e
));
635 LDAP_SLAPD_F (int) get_supported_controls
LDAP_P ((
636 char ***ctrloidsp
, slap_mask_t
**ctrlmasks
));
637 LDAP_SLAPD_F (int) slap_find_control_id
LDAP_P ((
638 const char *oid
, int *cid
));
639 LDAP_SLAPD_F (int) slap_global_control
LDAP_P ((
640 Operation
*op
, const char *oid
, int *cid
));
641 LDAP_SLAPD_F (int) slap_remove_control
LDAP_P((
645 BI_chk_controls fnc
));
647 #ifdef SLAP_CONTROL_X_SESSION_TRACKING
649 slap_ctrl_session_tracking_add
LDAP_P((
655 LDAPControl
*ctrl
));
657 slap_ctrl_session_tracking_request_add
LDAP_P((
658 Operation
*op
, SlapReply
*rs
, LDAPControl
*ctrl
));
659 #endif /* SLAP_CONTROL_X_SESSION_TRACKING */
664 LDAP_SLAPD_F (int) read_config
LDAP_P(( const char *fname
, const char *dir
));
665 LDAP_SLAPD_F (void) config_destroy
LDAP_P ((void));
666 LDAP_SLAPD_F (char **) slap_str2clist
LDAP_P((
667 char ***, char *, const char * ));
668 LDAP_SLAPD_F (int) bverb_to_mask
LDAP_P((
669 struct berval
*bword
, slap_verbmasks
*v
));
670 LDAP_SLAPD_F (int) verb_to_mask
LDAP_P((
671 const char *word
, slap_verbmasks
*v
));
672 LDAP_SLAPD_F (int) verbs_to_mask
LDAP_P((
673 int argc
, char *argv
[], slap_verbmasks
*v
, slap_mask_t
*m
));
674 LDAP_SLAPD_F (int) mask_to_verbs
LDAP_P((
675 slap_verbmasks
*v
, slap_mask_t m
, BerVarray
*bva
));
676 LDAP_SLAPD_F (int) enum_to_verb
LDAP_P((
677 slap_verbmasks
*v
, slap_mask_t m
, struct berval
*bv
));
678 LDAP_SLAPD_F (int) slap_verbmasks_init
LDAP_P(( slap_verbmasks
**vp
, slap_verbmasks
*v
));
679 LDAP_SLAPD_F (int) slap_verbmasks_destroy
LDAP_P(( slap_verbmasks
*v
));
680 LDAP_SLAPD_F (int) slap_verbmasks_append
LDAP_P(( slap_verbmasks
**vp
,
681 slap_mask_t m
, struct berval
*v
, slap_mask_t
*ignore
));
682 LDAP_SLAPD_F (int) slap_tls_get_config
LDAP_P((
683 LDAP
*ld
, int opt
, char **val
));
684 LDAP_SLAPD_F (void) bindconf_tls_defaults
LDAP_P(( slap_bindconf
*bc
));
685 LDAP_SLAPD_F (int) bindconf_tls_parse
LDAP_P((
686 const char *word
, slap_bindconf
*bc
));
687 LDAP_SLAPD_F (int) bindconf_tls_unparse
LDAP_P((
688 slap_bindconf
*bc
, struct berval
*bv
));
689 LDAP_SLAPD_F (int) bindconf_parse
LDAP_P((
690 const char *word
, slap_bindconf
*bc
));
691 LDAP_SLAPD_F (int) bindconf_unparse
LDAP_P((
692 slap_bindconf
*bc
, struct berval
*bv
));
693 LDAP_SLAPD_F (int) bindconf_tls_set
LDAP_P((
694 slap_bindconf
*bc
, LDAP
*ld
));
695 LDAP_SLAPD_F (void) bindconf_free
LDAP_P(( slap_bindconf
*bc
));
696 LDAP_SLAPD_F (int) slap_client_connect
LDAP_P(( LDAP
**ldp
, slap_bindconf
*sb
));
697 LDAP_SLAPD_F (int) config_generic_wrapper
LDAP_P(( Backend
*be
,
698 const char *fname
, int lineno
, int argc
, char **argv
));
699 LDAP_SLAPD_F (char *) anlist_unparse
LDAP_P(( AttributeName
*, char *, ber_len_t buflen
));
702 LDAP_SLAPD_V (int) slapi_plugins_used
;
708 LDAP_SLAPD_F (int) connections_init
LDAP_P((void));
709 LDAP_SLAPD_F (int) connections_shutdown
LDAP_P((void));
710 LDAP_SLAPD_F (int) connections_destroy
LDAP_P((void));
711 LDAP_SLAPD_F (int) connections_timeout_idle
LDAP_P((time_t));
713 LDAP_SLAPD_F (Connection
*) connection_client_setup
LDAP_P((
715 ldap_pvt_thread_start_t
*func
,
717 LDAP_SLAPD_F (void) connection_client_enable
LDAP_P(( Connection
*c
));
718 LDAP_SLAPD_F (void) connection_client_stop
LDAP_P(( Connection
*c
));
720 #ifdef LDAP_PF_LOCAL_SENDMSG
721 #define LDAP_PF_LOCAL_SENDMSG_ARG(arg) , arg
723 #define LDAP_PF_LOCAL_SENDMSG_ARG(arg)
726 LDAP_SLAPD_F (Connection
*) connection_init
LDAP_P((
730 const char* peername
,
734 LDAP_PF_LOCAL_SENDMSG_ARG(struct berval
*peerbv
)));
736 LDAP_SLAPD_F (void) connection_closing
LDAP_P((
737 Connection
*c
, const char *why
));
738 LDAP_SLAPD_F (int) connection_state_closing
LDAP_P(( Connection
*c
));
739 LDAP_SLAPD_F (const char *) connection_state2str
LDAP_P(( int state
))
740 LDAP_GCCATTR((const));
742 LDAP_SLAPD_F (int) connection_read_activate
LDAP_P((ber_socket_t s
));
743 LDAP_SLAPD_F (int) connection_write
LDAP_P((ber_socket_t s
));
745 LDAP_SLAPD_F (unsigned long) connections_nextid(void);
747 LDAP_SLAPD_F (Connection
*) connection_first
LDAP_P(( ber_socket_t
* ));
748 LDAP_SLAPD_F (Connection
*) connection_next
LDAP_P((
749 Connection
*, ber_socket_t
*));
750 LDAP_SLAPD_F (void) connection_done
LDAP_P((Connection
*));
752 LDAP_SLAPD_F (void) connection2anonymous
LDAP_P((Connection
*));
753 LDAP_SLAPD_F (void) connection_fake_init
LDAP_P((
755 OperationBuffer
*opbuf
,
757 LDAP_SLAPD_F (void) connection_fake_init2
LDAP_P((
759 OperationBuffer
*opbuf
,
762 LDAP_SLAPD_F (void) operation_fake_init
LDAP_P((
767 LDAP_SLAPD_F (void) connection_assign_nextid
LDAP_P((Connection
*));
772 LDAP_SLAPD_F (int) cr_schema_info( Entry
*e
);
773 LDAP_SLAPD_F (void) cr_unparse
LDAP_P((
774 BerVarray
*bva
, ContentRule
*start
, ContentRule
*end
, int system
));
776 LDAP_SLAPD_F (int) cr_add
LDAP_P((
782 LDAP_SLAPD_F (void) cr_destroy
LDAP_P(( void ));
784 LDAP_SLAPD_F (ContentRule
*) cr_find
LDAP_P((
785 const char *crname
));
786 LDAP_SLAPD_F (ContentRule
*) cr_bvfind
LDAP_P((
787 struct berval
*crname
));
793 LDAP_SLAPD_V( int ) slap_serverID
;
794 LDAP_SLAPD_V( const struct berval
) slap_ldapsync_bv
;
795 LDAP_SLAPD_V( const struct berval
) slap_ldapsync_cn_bv
;
796 LDAP_SLAPD_F (void) slap_get_commit_csn
LDAP_P((
797 Operation
*, struct berval
*maxcsn
));
798 LDAP_SLAPD_F (void) slap_rewind_commit_csn
LDAP_P(( Operation
* ));
799 LDAP_SLAPD_F (void) slap_graduate_commit_csn
LDAP_P(( Operation
* ));
800 LDAP_SLAPD_F (Entry
*) slap_create_context_csn_entry
LDAP_P(( Backend
*, struct berval
*));
801 LDAP_SLAPD_F (int) slap_get_csn
LDAP_P(( Operation
*, struct berval
*, int ));
802 LDAP_SLAPD_F (void) slap_queue_csn
LDAP_P(( Operation
*, struct berval
* ));
807 LDAP_SLAPD_F (void) slapd_add_internal(ber_socket_t s
, int isactive
);
808 LDAP_SLAPD_F (int) slapd_daemon_init( const char *urls
);
809 LDAP_SLAPD_F (int) slapd_daemon_destroy(void);
810 LDAP_SLAPD_F (int) slapd_daemon(void);
811 LDAP_SLAPD_F (Listener
**) slapd_get_listeners
LDAP_P((void));
812 LDAP_SLAPD_F (void) slapd_remove
LDAP_P((ber_socket_t s
, Sockbuf
*sb
,
813 int wasactive
, int wake
, int locked
));
814 LDAP_SLAPD_F (void) slapd_sd_lock
LDAP_P((void));
815 LDAP_SLAPD_F (void) slapd_sd_unlock
LDAP_P((void));
817 LDAP_SLAPD_F (RETSIGTYPE
) slap_sig_shutdown
LDAP_P((int sig
));
818 LDAP_SLAPD_F (RETSIGTYPE
) slap_sig_wake
LDAP_P((int sig
));
819 LDAP_SLAPD_F (void) slap_wake_listener
LDAP_P((void));
821 LDAP_SLAPD_F (void) slapd_set_write
LDAP_P((ber_socket_t s
, int wake
));
822 LDAP_SLAPD_F (void) slapd_clr_write
LDAP_P((ber_socket_t s
, int wake
));
823 LDAP_SLAPD_F (void) slapd_set_read
LDAP_P((ber_socket_t s
, int wake
));
824 LDAP_SLAPD_F (int) slapd_clr_read
LDAP_P((ber_socket_t s
, int wake
));
826 LDAP_SLAPD_V (volatile sig_atomic_t) slapd_abrupt_shutdown
;
827 LDAP_SLAPD_V (volatile sig_atomic_t) slapd_shutdown
;
828 LDAP_SLAPD_V (int) slapd_register_slp
;
829 LDAP_SLAPD_V (const char *) slapd_slp_attrs
;
830 LDAP_SLAPD_V (slap_ssf_t
) local_ssf
;
831 LDAP_SLAPD_V (struct runqueue_s
) slapd_rq
;
834 LDAP_SLAPD_F (ber_socket_t
) slapd_socknew(ber_socket_t s
);
835 LDAP_SLAPD_F (ber_socket_t
) slapd_sock2fd(ber_socket_t s
);
836 LDAP_SLAPD_V (SOCKET
*) slapd_ws_sockets
;
837 #define SLAP_FD2SOCK(s) slapd_ws_sockets[s]
838 #define SLAP_SOCK2FD(s) slapd_sock2fd(s)
839 #define SLAP_SOCKNEW(s) slapd_socknew(s)
841 #define SLAP_FD2SOCK(s) s
842 #define SLAP_SOCK2FD(s) s
843 #define SLAP_SOCKNEW(s) s
850 #define dn_match(dn1, dn2) ( ber_bvcmp((dn1), (dn2)) == 0 )
851 #define bvmatch(bv1, bv2) ( ((bv1)->bv_len == (bv2)->bv_len) && (memcmp((bv1)->bv_val, (bv2)->bv_val, (bv1)->bv_len) == 0) )
853 LDAP_SLAPD_F (int) dnValidate
LDAP_P((
855 struct berval
*val
));
856 LDAP_SLAPD_F (int) rdnValidate
LDAP_P((
858 struct berval
*val
));
860 LDAP_SLAPD_F (slap_mr_normalize_func
) dnNormalize
;
862 LDAP_SLAPD_F (slap_mr_normalize_func
) rdnNormalize
;
864 LDAP_SLAPD_F (slap_syntax_transform_func
) dnPretty
;
866 LDAP_SLAPD_F (slap_syntax_transform_func
) rdnPretty
;
868 LDAP_SLAPD_F (int) dnPrettyNormal
LDAP_P((
871 struct berval
*pretty
,
872 struct berval
*normal
,
875 LDAP_SLAPD_F (int) dnMatch
LDAP_P((
880 struct berval
*value
,
881 void *assertedValue
));
883 LDAP_SLAPD_F (int) dnRelativeMatch
LDAP_P((
888 struct berval
*value
,
889 void *assertedValue
));
891 LDAP_SLAPD_F (int) rdnMatch
LDAP_P((
896 struct berval
*value
,
897 void *assertedValue
));
900 LDAP_SLAPD_F (int) dnIsSuffix
LDAP_P((
901 const struct berval
*dn
, const struct berval
*suffix
));
903 LDAP_SLAPD_F (int) dnIsOneLevelRDN
LDAP_P(( struct berval
*rdn
));
905 LDAP_SLAPD_F (int) dnExtractRdn
LDAP_P((
906 struct berval
*dn
, struct berval
*rdn
, void *ctx
));
908 LDAP_SLAPD_F (int) rdn_validate
LDAP_P(( struct berval
* rdn
));
910 LDAP_SLAPD_F (ber_len_t
) dn_rdnlen
LDAP_P(( Backend
*be
, struct berval
*dn
));
912 LDAP_SLAPD_F (void) build_new_dn
LDAP_P((
913 struct berval
* new_dn
,
914 struct berval
* parent_dn
,
915 struct berval
* newrdn
,
918 LDAP_SLAPD_F (void) dnParent
LDAP_P(( struct berval
*dn
, struct berval
*pdn
));
919 LDAP_SLAPD_F (void) dnRdn
LDAP_P(( struct berval
*dn
, struct berval
*rdn
));
921 LDAP_SLAPD_F (int) dnX509normalize
LDAP_P(( void *x509_name
, struct berval
*out
));
923 LDAP_SLAPD_F (int) dnX509peerNormalize
LDAP_P(( void *ssl
, struct berval
*dn
));
925 LDAP_SLAPD_F (int) dnPrettyNormalDN
LDAP_P(( Syntax
*syntax
, struct berval
*val
, LDAPDN
*dn
, int flags
, void *ctx
));
926 #define dnPrettyDN(syntax, val, dn, ctx) \
927 dnPrettyNormalDN((syntax),(val),(dn), SLAP_LDAPDN_PRETTY, ctx)
928 #define dnNormalDN(syntax, val, dn, ctx) \
929 dnPrettyNormalDN((syntax),(val),(dn), 0, ctx)
931 typedef int (SLAP_CERT_MAP_FN
) LDAP_P(( void *ssl
, struct berval
*dn
));
932 LDAP_SLAPD_F (int) register_certificate_map_function
LDAP_P(( SLAP_CERT_MAP_FN
*fn
));
937 LDAP_SLAPD_V (const Entry
) slap_entry_root
;
939 LDAP_SLAPD_F (int) entry_init
LDAP_P((void));
940 LDAP_SLAPD_F (int) entry_destroy
LDAP_P((void));
942 LDAP_SLAPD_F (Entry
*) str2entry
LDAP_P(( char *s
));
943 LDAP_SLAPD_F (Entry
*) str2entry2
LDAP_P(( char *s
, int checkvals
));
944 LDAP_SLAPD_F (char *) entry2str
LDAP_P(( Entry
*e
, int *len
));
946 LDAP_SLAPD_F (ber_len_t
) entry_flatsize
LDAP_P(( Entry
*e
, int norm
));
947 LDAP_SLAPD_F (void) entry_partsize
LDAP_P(( Entry
*e
, ber_len_t
*len
,
948 int *nattrs
, int *nvals
, int norm
));
950 LDAP_SLAPD_F (int) entry_header
LDAP_P(( EntryHeader
*eh
));
951 #ifdef SLAP_ZONE_ALLOC
952 LDAP_SLAPD_F (int) entry_decode
LDAP_P((
953 EntryHeader
*eh
, Entry
**e
, void *ctx
));
955 LDAP_SLAPD_F (int) entry_decode
LDAP_P((
956 EntryHeader
*eh
, Entry
**e
));
958 LDAP_SLAPD_F (int) entry_encode
LDAP_P(( Entry
*e
, struct berval
*bv
));
960 LDAP_SLAPD_F (void) entry_clean
LDAP_P(( Entry
*e
));
961 LDAP_SLAPD_F (void) entry_free
LDAP_P(( Entry
*e
));
962 LDAP_SLAPD_F (int) entry_cmp
LDAP_P(( Entry
*a
, Entry
*b
));
963 LDAP_SLAPD_F (int) entry_dn_cmp
LDAP_P(( const void *v_a
, const void *v_b
));
964 LDAP_SLAPD_F (int) entry_id_cmp
LDAP_P(( const void *v_a
, const void *v_b
));
965 LDAP_SLAPD_F (Entry
*) entry_dup
LDAP_P(( Entry
*e
));
966 LDAP_SLAPD_F (Entry
*) entry_dup_bv
LDAP_P(( Entry
*e
));
967 LDAP_SLAPD_F (Entry
*) entry_alloc
LDAP_P((void));
968 LDAP_SLAPD_F (int) entry_prealloc
LDAP_P((int num
));
973 LDAP_SLAPD_F (int) exop_root_dse_info
LDAP_P ((Entry
*e
));
975 #define exop_is_write( op ) ((op->ore_flags & SLAP_EXOP_WRITES) != 0)
977 LDAP_SLAPD_V( const struct berval
) slap_EXOP_CANCEL
;
978 LDAP_SLAPD_V( const struct berval
) slap_EXOP_WHOAMI
;
979 LDAP_SLAPD_V( const struct berval
) slap_EXOP_MODIFY_PASSWD
;
980 LDAP_SLAPD_V( const struct berval
) slap_EXOP_START_TLS
;
982 LDAP_SLAPD_V( const struct berval
) slap_EXOP_TXN_START
;
983 LDAP_SLAPD_V( const struct berval
) slap_EXOP_TXN_END
;
986 typedef int (SLAP_EXTOP_MAIN_FN
) LDAP_P(( Operation
*op
, SlapReply
*rs
));
988 typedef int (SLAP_EXTOP_GETOID_FN
) LDAP_P((
989 int index
, struct berval
*oid
, int blen
));
991 LDAP_SLAPD_F (int) load_extop2
LDAP_P((
992 const struct berval
*ext_oid
,
994 SLAP_EXTOP_MAIN_FN
*ext_main
,
995 unsigned tmpflags
));
996 #define load_extop(ext_oid, flags, ext_main) \
997 load_extop2((ext_oid), (flags), (ext_main), 0)
999 LDAP_SLAPD_F (int) extops_init
LDAP_P(( void ));
1001 LDAP_SLAPD_F (int) extops_kill
LDAP_P(( void ));
1003 LDAP_SLAPD_F (struct berval
*) get_supported_extop
LDAP_P((int index
));
1009 LDAP_SLAPD_F ( SLAP_CTRL_PARSE_FN
) txn_spec_ctrl
;
1010 LDAP_SLAPD_F ( SLAP_EXTOP_MAIN_FN
) txn_start_extop
;
1011 LDAP_SLAPD_F ( SLAP_EXTOP_MAIN_FN
) txn_end_extop
;
1017 LDAP_SLAPD_F ( SLAP_EXTOP_MAIN_FN
) cancel_extop
;
1022 LDAP_SLAPD_F (int) get_filter
LDAP_P((
1026 const char **text
));
1028 LDAP_SLAPD_F (void) filter_free
LDAP_P(( Filter
*f
));
1029 LDAP_SLAPD_F (void) filter_free_x
LDAP_P(( Operation
*op
, Filter
*f
));
1030 LDAP_SLAPD_F (void) filter2bv
LDAP_P(( Filter
*f
, struct berval
*bv
));
1031 LDAP_SLAPD_F (void) filter2bv_x
LDAP_P(( Operation
*op
, Filter
*f
, struct berval
*bv
));
1032 LDAP_SLAPD_F (Filter
*) filter_dup
LDAP_P(( Filter
*f
, void *memctx
));
1034 LDAP_SLAPD_F (int) get_vrFilter
LDAP_P(( Operation
*op
, BerElement
*ber
,
1035 ValuesReturnFilter
**f
,
1036 const char **text
));
1038 LDAP_SLAPD_F (void) vrFilter_free
LDAP_P(( Operation
*op
, ValuesReturnFilter
*f
));
1039 LDAP_SLAPD_F (void) vrFilter2bv
LDAP_P(( Operation
*op
, ValuesReturnFilter
*f
, struct berval
*fstr
));
1041 LDAP_SLAPD_F (int) filter_has_subordinates
LDAP_P(( Filter
*filter
));
1042 #define filter_escape_value( in, out ) ldap_bv2escaped_filter_value_x( (in), (out), 0, NULL )
1043 #define filter_escape_value_x( in, out, ctx ) ldap_bv2escaped_filter_value_x( (in), (out), 0, ctx )
1045 LDAP_SLAPD_V (const Filter
*) slap_filter_objectClass_pres
;
1046 LDAP_SLAPD_V (const struct berval
*) slap_filterstr_objectClass_pres
;
1048 LDAP_SLAPD_F (int) filter_init
LDAP_P(( void ));
1049 LDAP_SLAPD_F (void) filter_destroy
LDAP_P(( void ));
1054 LDAP_SLAPD_F (int) test_filter
LDAP_P(( Operation
*op
, Entry
*e
, Filter
*f
));
1059 LDAP_SLAPD_F (int) frontend_init
LDAP_P(( void ));
1065 LDAP_SLAPD_V( const struct berval
) slap_empty_bv
;
1066 LDAP_SLAPD_V( const struct berval
) slap_unknown_bv
;
1067 LDAP_SLAPD_V( const struct berval
) slap_true_bv
;
1068 LDAP_SLAPD_V( const struct berval
) slap_false_bv
;
1069 LDAP_SLAPD_V( struct slap_sync_cookie_s
) slap_sync_cookie
;
1070 LDAP_SLAPD_V( void * ) slap_tls_ctx
;
1071 LDAP_SLAPD_V( LDAP
* ) slap_tls_ld
;
1076 LDAP_SLAPD_F (int) slap_str2index
LDAP_P(( const char *str
, slap_mask_t
*idx
));
1077 LDAP_SLAPD_F (void) slap_index2bvlen
LDAP_P(( slap_mask_t idx
, struct berval
*bv
));
1078 LDAP_SLAPD_F (void) slap_index2bv
LDAP_P(( slap_mask_t idx
, struct berval
*bv
));
1083 LDAP_SLAPD_F (int) slap_init
LDAP_P((int mode
, const char* name
));
1084 LDAP_SLAPD_F (int) slap_startup
LDAP_P(( Backend
*be
));
1085 LDAP_SLAPD_F (int) slap_shutdown
LDAP_P(( Backend
*be
));
1086 LDAP_SLAPD_F (int) slap_destroy
LDAP_P((void));
1087 LDAP_SLAPD_F (void) slap_counters_init
LDAP_P((slap_counters_t
*sc
));
1088 LDAP_SLAPD_F (void) slap_counters_destroy
LDAP_P((slap_counters_t
*sc
));
1090 LDAP_SLAPD_V (char *) slap_known_controls
[];
1095 LDAP_SLAPD_F (void) slap_compose_sync_cookie
LDAP_P((
1096 Operation
*, struct berval
*, BerVarray
, int, int ));
1097 LDAP_SLAPD_F (void) slap_sync_cookie_free
LDAP_P((
1098 struct sync_cookie
*, int free_cookie
));
1099 LDAP_SLAPD_F (int) slap_parse_csn_sid
LDAP_P((
1101 LDAP_SLAPD_F (int *) slap_parse_csn_sids
LDAP_P((
1102 BerVarray
, int, void *memctx
));
1103 LDAP_SLAPD_F (int) slap_parse_sync_cookie
LDAP_P((
1104 struct sync_cookie
*, void *memctx
));
1105 LDAP_SLAPD_F (int) slap_init_sync_cookie_ctxcsn
LDAP_P((
1106 struct sync_cookie
* ));
1107 LDAP_SLAPD_F (struct sync_cookie
*) slap_dup_sync_cookie
LDAP_P((
1108 struct sync_cookie
*, struct sync_cookie
* ));
1109 LDAP_SLAPD_F (int) slap_build_syncUUID_set
LDAP_P((
1110 Operation
*, BerVarray
*, Entry
* ));
1115 LDAP_SLAPD_F (int) limits_get
LDAP_P((
1116 Operation
*op
, struct berval
*ndn
,
1117 struct slap_limits_set
**limit
));
1118 LDAP_SLAPD_F (int) limits_parse
LDAP_P((
1119 Backend
*be
, const char *fname
, int lineno
,
1120 int argc
, char **argv
));
1121 LDAP_SLAPD_F (int) limits_parse_one
LDAP_P(( const char *arg
,
1122 struct slap_limits_set
*limit
));
1123 LDAP_SLAPD_F (int) limits_check
LDAP_P((
1124 Operation
*op
, SlapReply
*rs
));
1125 LDAP_SLAPD_F (int) limits_unparse_one
LDAP_P((
1126 struct slap_limits_set
*limit
, int which
, struct berval
*bv
, ber_len_t buflen
));
1127 LDAP_SLAPD_F (int) limits_unparse
LDAP_P((
1128 struct slap_limits
*limit
, struct berval
*bv
, ber_len_t buflen
));
1129 LDAP_SLAPD_F (void) limits_destroy
LDAP_P(( struct slap_limits
**lm
));
1134 LDAP_SLAPD_F (FILE *) lock_fopen
LDAP_P(( const char *fname
,
1135 const char *type
, FILE **lfp
));
1136 LDAP_SLAPD_F (int) lock_fclose
LDAP_P(( FILE *fp
, FILE *lfp
));
1142 parse_debug_level
LDAP_P(( const char *arg
, int *levelp
, char ***unknowns
));
1144 parse_syslog_level
LDAP_P(( const char *arg
, int *levelp
));
1146 parse_syslog_user
LDAP_P(( const char *arg
, int *syslogUser
));
1148 parse_debug_unknowns
LDAP_P(( char **unknowns
, int *levelp
));
1153 LDAP_SLAPD_F (int) filter_matched_values(
1161 LDAP_SLAPD_F (int) slap_modrdn2mods
LDAP_P((
1168 LDAP_SLAPD_F( int ) slap_mods_obsolete_check(
1172 char *textbuf
, size_t textlen
);
1174 LDAP_SLAPD_F( int ) slap_mods_no_user_mod_check(
1178 char *textbuf
, size_t textlen
);
1180 LDAP_SLAPD_F ( int ) slap_mods_no_repl_user_mod_check(
1187 LDAP_SLAPD_F( int ) slap_mods_check(
1191 char *textbuf
, size_t textlen
, void *ctx
);
1193 LDAP_SLAPD_F( int ) slap_sort_vals(
1199 LDAP_SLAPD_F( void ) slap_timestamp(
1201 struct berval
*bv
);
1203 LDAP_SLAPD_F( void ) slap_mods_opattrs(
1205 Modifications
**modsp
,
1206 int manage_ctxcsn
);
1208 LDAP_SLAPD_F( int ) slap_parse_modlist(
1217 LDAP_SLAPD_F( int ) modify_add_values( Entry
*e
,
1220 const char **text
, char *textbuf
, size_t textlen
);
1221 LDAP_SLAPD_F( int ) modify_delete_values( Entry
*e
,
1224 const char **text
, char *textbuf
, size_t textlen
);
1225 LDAP_SLAPD_F( int ) modify_delete_vindex( Entry
*e
,
1228 const char **text
, char *textbuf
, size_t textlen
, int *idx
);
1229 LDAP_SLAPD_F( int ) modify_replace_values( Entry
*e
,
1232 const char **text
, char *textbuf
, size_t textlen
);
1233 LDAP_SLAPD_F( int ) modify_increment_values( Entry
*e
,
1236 const char **text
, char *textbuf
, size_t textlen
);
1238 LDAP_SLAPD_F( void ) slap_mod_free( Modification
*mod
, int freeit
);
1239 LDAP_SLAPD_F( void ) slap_mods_free( Modifications
*mods
, int freevals
);
1240 LDAP_SLAPD_F( void ) slap_modlist_free( LDAPModList
*ml
);
1245 #ifdef SLAPD_MODULES
1247 LDAP_SLAPD_F (int) module_init
LDAP_P(( void ));
1248 LDAP_SLAPD_F (int) module_kill
LDAP_P(( void ));
1250 LDAP_SLAPD_F (int) load_null_module(
1251 const void *module
, const char *file_name
);
1252 LDAP_SLAPD_F (int) load_extop_module(
1253 const void *module
, const char *file_name
);
1255 LDAP_SLAPD_F (int) module_load
LDAP_P((
1256 const char* file_name
,
1257 int argc
, char *argv
[] ));
1258 LDAP_SLAPD_F (int) module_path
LDAP_P(( const char* path
));
1259 LDAP_SLAPD_F (int) module_unload
LDAP_P(( const char* file_name
));
1261 LDAP_SLAPD_F (void *) module_handle
LDAP_P(( const char* file_name
));
1263 LDAP_SLAPD_F (void *) module_resolve
LDAP_P((
1264 const void *module
, const char *name
));
1266 #endif /* SLAPD_MODULES */
1269 LDAP_SLAPD_F (MatchingRule
*) mr_bvfind
LDAP_P((struct berval
*mrname
));
1270 LDAP_SLAPD_F (MatchingRule
*) mr_find
LDAP_P((const char *mrname
));
1271 LDAP_SLAPD_F (int) mr_add
LDAP_P(( LDAPMatchingRule
*mr
,
1272 slap_mrule_defs_rec
*def
,
1273 MatchingRule
* associated
,
1274 const char **err
));
1275 LDAP_SLAPD_F (void) mr_destroy
LDAP_P(( void ));
1277 LDAP_SLAPD_F (int) register_matching_rule
LDAP_P((
1278 slap_mrule_defs_rec
*def
));
1280 LDAP_SLAPD_F (void) mru_destroy
LDAP_P(( void ));
1281 LDAP_SLAPD_F (int) matching_rule_use_init
LDAP_P(( void ));
1283 LDAP_SLAPD_F (int) mr_schema_info
LDAP_P(( Entry
*e
));
1284 LDAP_SLAPD_F (int) mru_schema_info
LDAP_P(( Entry
*e
));
1286 LDAP_SLAPD_F (int) mr_usable_with_at
LDAP_P(( MatchingRule
*mr
,
1287 AttributeType
*at
));
1288 LDAP_SLAPD_F (int) mr_make_syntax_compat_with_mr
LDAP_P((
1290 MatchingRule
*mr
));
1291 LDAP_SLAPD_F (int) mr_make_syntax_compat_with_mrs
LDAP_P((
1293 char *const *mrs
));
1298 LDAP_SLAPD_F (int) get_mra
LDAP_P((
1302 const char **text
));
1303 LDAP_SLAPD_F (void) mra_free
LDAP_P((
1305 MatchingRuleAssertion
*mra
,
1309 LDAP_SLAPD_F (int) oc_add
LDAP_P((
1310 LDAPObjectClass
*oc
,
1315 LDAP_SLAPD_F (void) oc_destroy
LDAP_P(( void ));
1317 LDAP_SLAPD_F (ObjectClass
*) oc_find
LDAP_P((
1318 const char *ocname
));
1319 LDAP_SLAPD_F (ObjectClass
*) oc_bvfind
LDAP_P((
1320 struct berval
*ocname
));
1321 LDAP_SLAPD_F (ObjectClass
*) oc_bvfind_undef
LDAP_P((
1322 struct berval
*ocname
));
1323 LDAP_SLAPD_F (int) is_object_subclass
LDAP_P((
1325 ObjectClass
*sub
));
1327 LDAP_SLAPD_F (int) is_entry_objectclass
LDAP_P((
1328 Entry
*, ObjectClass
*oc
, unsigned flags
));
1329 #define is_entry_objectclass_or_sub(e,oc) \
1330 (is_entry_objectclass((e),(oc),SLAP_OCF_CHECK_SUP))
1331 #define is_entry_alias(e) \
1332 (((e)->e_ocflags & SLAP_OC__END) \
1333 ? (((e)->e_ocflags & SLAP_OC_ALIAS) != 0) \
1334 : is_entry_objectclass((e), slap_schema.si_oc_alias, SLAP_OCF_SET_FLAGS))
1335 #define is_entry_referral(e) \
1336 (((e)->e_ocflags & SLAP_OC__END) \
1337 ? (((e)->e_ocflags & SLAP_OC_REFERRAL) != 0) \
1338 : is_entry_objectclass((e), slap_schema.si_oc_referral, SLAP_OCF_SET_FLAGS))
1339 #define is_entry_subentry(e) \
1340 (((e)->e_ocflags & SLAP_OC__END) \
1341 ? (((e)->e_ocflags & SLAP_OC_SUBENTRY) != 0) \
1342 : is_entry_objectclass((e), slap_schema.si_oc_subentry, SLAP_OCF_SET_FLAGS))
1343 #define is_entry_collectiveAttributeSubentry(e) \
1344 (((e)->e_ocflags & SLAP_OC__END) \
1345 ? (((e)->e_ocflags & SLAP_OC_COLLECTIVEATTRIBUTESUBENTRY) != 0) \
1346 : is_entry_objectclass((e), slap_schema.si_oc_collectiveAttributeSubentry, SLAP_OCF_SET_FLAGS))
1347 #define is_entry_dynamicObject(e) \
1348 (((e)->e_ocflags & SLAP_OC__END) \
1349 ? (((e)->e_ocflags & SLAP_OC_DYNAMICOBJECT) != 0) \
1350 : is_entry_objectclass((e), slap_schema.si_oc_dynamicObject, SLAP_OCF_SET_FLAGS))
1351 #define is_entry_glue(e) \
1352 (((e)->e_ocflags & SLAP_OC__END) \
1353 ? (((e)->e_ocflags & SLAP_OC_GLUE) != 0) \
1354 : is_entry_objectclass((e), slap_schema.si_oc_glue, SLAP_OCF_SET_FLAGS))
1355 #define is_entry_syncProviderSubentry(e) \
1356 (((e)->e_ocflags & SLAP_OC__END) \
1357 ? (((e)->e_ocflags & SLAP_OC_SYNCPROVIDERSUBENTRY) != 0) \
1358 : is_entry_objectclass((e), slap_schema.si_oc_syncProviderSubentry, SLAP_OCF_SET_FLAGS))
1359 #define is_entry_syncConsumerSubentry(e) \
1360 (((e)->e_ocflags & SLAP_OC__END) \
1361 ? (((e)->e_ocflags & SLAP_OC_SYNCCONSUMERSUBENTRY) != 0) \
1362 : is_entry_objectclass((e), slap_schema.si_oc_syncConsumerSubentry, SLAP_OCF_SET_FLAGS))
1364 LDAP_SLAPD_F (int) oc_schema_info( Entry
*e
);
1366 LDAP_SLAPD_F (int) oc_start
LDAP_P(( ObjectClass
**oc
));
1367 LDAP_SLAPD_F (int) oc_next
LDAP_P(( ObjectClass
**oc
));
1368 LDAP_SLAPD_F (void) oc_delete
LDAP_P(( ObjectClass
*oc
));
1370 LDAP_SLAPD_F (void) oc_unparse
LDAP_P((
1371 BerVarray
*bva
, ObjectClass
*start
, ObjectClass
*end
, int system
));
1373 LDAP_SLAPD_F (int) register_oc
LDAP_P((
1381 LDAP_SLAPD_F(char *) oidm_find(char *oid
);
1382 LDAP_SLAPD_F (void) oidm_destroy
LDAP_P(( void ));
1383 LDAP_SLAPD_F (void) oidm_unparse
LDAP_P((
1384 BerVarray
*bva
, OidMacro
*start
, OidMacro
*end
, int system
));
1385 LDAP_SLAPD_F (int) parse_oidm
LDAP_P((
1386 struct config_args_s
*ca
, int user
, OidMacro
**om
));
1391 LDAP_SLAPD_F (void) slap_op_init
LDAP_P(( void ));
1392 LDAP_SLAPD_F (void) slap_op_destroy
LDAP_P(( void ));
1393 LDAP_SLAPD_F (void) slap_op_groups_free
LDAP_P(( Operation
*op
));
1394 LDAP_SLAPD_F (void) slap_op_free
LDAP_P(( Operation
*op
, void *ctx
));
1395 LDAP_SLAPD_F (void) slap_op_time
LDAP_P(( time_t *t
, int *n
));
1396 LDAP_SLAPD_F (Operation
*) slap_op_alloc
LDAP_P((
1397 BerElement
*ber
, ber_int_t msgid
,
1398 ber_tag_t tag
, ber_int_t id
, void *ctx
));
1400 LDAP_SLAPD_F (slap_op_t
) slap_req2op
LDAP_P(( ber_tag_t tag
));
1405 LDAP_SLAPD_F (Attribute
*) slap_operational_subschemaSubentry( Backend
*be
);
1406 LDAP_SLAPD_F (Attribute
*) slap_operational_entryDN( Entry
*e
);
1407 LDAP_SLAPD_F (Attribute
*) slap_operational_hasSubordinate( int has
);
1412 LDAP_SLAPD_F (int) overlay_init( void );
1417 LDAP_SLAPD_F (SLAP_EXTOP_MAIN_FN
) passwd_extop
;
1419 LDAP_SLAPD_F (int) slap_passwd_check(
1423 struct berval
*cred
,
1424 const char **text
);
1426 LDAP_SLAPD_F (void) slap_passwd_generate( struct berval
* );
1428 LDAP_SLAPD_F (void) slap_passwd_hash(
1429 struct berval
*cred
,
1430 struct berval
*hash
,
1431 const char **text
);
1433 LDAP_SLAPD_F (void) slap_passwd_hash_type(
1434 struct berval
*cred
,
1435 struct berval
*hash
,
1437 const char **text
);
1439 LDAP_SLAPD_F (struct berval
*) slap_passwd_return(
1440 struct berval
*cred
);
1442 LDAP_SLAPD_F (int) slap_passwd_parse(
1443 struct berval
*reqdata
,
1445 struct berval
*oldpass
,
1446 struct berval
*newpass
,
1447 const char **text
);
1449 LDAP_SLAPD_F (void) slap_passwd_init (void);
1454 LDAP_SLAPD_F (char *) phonetic
LDAP_P(( char *s
));
1459 LDAP_SLAPD_F (int) validate_global_referral
LDAP_P((
1462 LDAP_SLAPD_F (BerVarray
) get_entry_referrals
LDAP_P((
1463 Operation
*op
, Entry
*e
));
1465 LDAP_SLAPD_F (BerVarray
) referral_rewrite
LDAP_P((
1467 struct berval
*base
,
1468 struct berval
*target
,
1471 LDAP_SLAPD_F (int) get_alias_dn
LDAP_P((
1475 const char **text
));
1480 LDAP_SLAPD_F (void) slap_send_ldap_result
LDAP_P(( Operation
*op
, SlapReply
*rs
));
1481 LDAP_SLAPD_F (void) send_ldap_sasl
LDAP_P(( Operation
*op
, SlapReply
*rs
));
1482 LDAP_SLAPD_F (void) send_ldap_disconnect
LDAP_P(( Operation
*op
, SlapReply
*rs
));
1483 LDAP_SLAPD_F (void) slap_send_ldap_extended
LDAP_P(( Operation
*op
, SlapReply
*rs
));
1484 LDAP_SLAPD_F (void) slap_send_ldap_intermediate
LDAP_P(( Operation
*op
, SlapReply
*rs
));
1485 LDAP_SLAPD_F (void) slap_send_search_result
LDAP_P(( Operation
*op
, SlapReply
*rs
));
1486 LDAP_SLAPD_F (int) slap_send_search_reference
LDAP_P(( Operation
*op
, SlapReply
*rs
));
1487 LDAP_SLAPD_F (int) slap_send_search_entry
LDAP_P(( Operation
*op
, SlapReply
*rs
));
1488 LDAP_SLAPD_F (int) slap_null_cb
LDAP_P(( Operation
*op
, SlapReply
*rs
));
1489 LDAP_SLAPD_F (int) slap_freeself_cb
LDAP_P(( Operation
*op
, SlapReply
*rs
));
1491 LDAP_SLAPD_V( const struct berval
) slap_pre_read_bv
;
1492 LDAP_SLAPD_V( const struct berval
) slap_post_read_bv
;
1493 LDAP_SLAPD_F (int) slap_read_controls
LDAP_P(( Operation
*op
, SlapReply
*rs
,
1494 Entry
*e
, const struct berval
*oid
, LDAPControl
**ctrl
));
1496 LDAP_SLAPD_F (int) str2result
LDAP_P(( char *s
,
1497 int *code
, char **matched
, char **info
));
1498 LDAP_SLAPD_F (int) slap_map_api2result
LDAP_P(( SlapReply
*rs
));
1499 LDAP_SLAPD_F (slap_mask_t
) slap_attr_flags
LDAP_P(( AttributeName
*an
));
1500 LDAP_SLAPD_F (ber_tag_t
) slap_req2res
LDAP_P(( ber_tag_t tag
));
1502 LDAP_SLAPD_V( const struct berval
) slap_dummy_bv
;
1507 LDAP_SLAPD_F (int) root_dse_init
LDAP_P(( void ));
1508 LDAP_SLAPD_F (int) root_dse_destroy
LDAP_P(( void ));
1510 LDAP_SLAPD_F (int) root_dse_info
LDAP_P((
1513 const char **text
));
1515 LDAP_SLAPD_F (int) root_dse_read_file
LDAP_P((
1518 LDAP_SLAPD_F (int) slap_discover_feature
LDAP_P((
1523 LDAP_SLAPD_F (int) supported_feature_load
LDAP_P(( struct berval
*f
));
1524 LDAP_SLAPD_F (int) supported_feature_destroy
LDAP_P(( void ));
1526 LDAP_SLAPD_F (int) entry_info_register
LDAP_P(( SLAP_ENTRY_INFO_FN func
, void *arg
));
1527 LDAP_SLAPD_F (int) entry_info_unregister
LDAP_P(( SLAP_ENTRY_INFO_FN func
, void *arg
));
1528 LDAP_SLAPD_F (void) entry_info_destroy
LDAP_P(( void ));
1533 LDAP_SLAPD_F (int) slap_sasl_init(void);
1534 LDAP_SLAPD_F (char *) slap_sasl_secprops( const char * );
1535 LDAP_SLAPD_F (void) slap_sasl_secprops_unparse( struct berval
* );
1536 LDAP_SLAPD_F (int) slap_sasl_destroy(void);
1538 LDAP_SLAPD_F (int) slap_sasl_open( Connection
*c
, int reopen
);
1539 LDAP_SLAPD_F (char **) slap_sasl_mechs( Connection
*c
);
1541 LDAP_SLAPD_F (int) slap_sasl_external( Connection
*c
,
1542 slap_ssf_t ssf
, /* relative strength of external security */
1543 struct berval
*authid
); /* asserted authenication id */
1545 LDAP_SLAPD_F (int) slap_sasl_reset( Connection
*c
);
1546 LDAP_SLAPD_F (int) slap_sasl_close( Connection
*c
);
1548 LDAP_SLAPD_F (int) slap_sasl_bind
LDAP_P(( Operation
*op
, SlapReply
*rs
));
1550 LDAP_SLAPD_F (int) slap_sasl_setpass(
1554 LDAP_SLAPD_F (int) slap_sasl_getdn( Connection
*conn
, Operation
*op
,
1555 struct berval
*id
, char *user_realm
, struct berval
*dn
, int flags
);
1560 LDAP_SLAPD_F (int) slap_parse_user
LDAP_P((
1561 struct berval
*id
, struct berval
*user
,
1562 struct berval
*realm
, struct berval
*mech
));
1563 LDAP_SLAPD_F (int) slap_sasl_matches
LDAP_P((
1564 Operation
*op
, BerVarray rules
,
1565 struct berval
*assertDN
, struct berval
*authc
));
1566 LDAP_SLAPD_F (void) slap_sasl2dn
LDAP_P((
1568 struct berval
*saslname
,
1571 LDAP_SLAPD_F (int) slap_sasl_authorized
LDAP_P((
1573 struct berval
*authcid
,
1574 struct berval
*authzid
));
1575 LDAP_SLAPD_F (int) slap_sasl_regexp_config
LDAP_P((
1576 const char *match
, const char *replace
));
1577 LDAP_SLAPD_F (void) slap_sasl_regexp_unparse
LDAP_P(( BerVarray
*bva
));
1578 LDAP_SLAPD_F (int) slap_sasl_setpolicy
LDAP_P(( const char * ));
1579 LDAP_SLAPD_F (const char *) slap_sasl_getpolicy
LDAP_P(( void ));
1580 #ifdef SLAP_AUTH_REWRITE
1581 LDAP_SLAPD_F (int) slap_sasl_rewrite_config
LDAP_P((
1586 LDAP_SLAPD_F (void) slap_sasl_regexp_destroy
LDAP_P(( void ));
1587 #endif /* SLAP_AUTH_REWRITE */
1588 LDAP_SLAPD_F (int) authzValidate
LDAP_P((
1589 Syntax
*syn
, struct berval
*in
));
1591 LDAP_SLAPD_F (int) authzMatch
LDAP_P((
1596 struct berval
*value
,
1597 void *assertedValue
));
1599 LDAP_SLAPD_F (int) authzPretty
LDAP_P((
1604 LDAP_SLAPD_F (int) authzNormalize
LDAP_P((
1609 struct berval
*normalized
,
1615 LDAP_SLAPD_F (int) schema_info
LDAP_P(( Entry
**entry
, const char **text
));
1620 LDAP_SLAPD_F( int ) oc_check_allowed(
1621 AttributeType
*type
,
1625 LDAP_SLAPD_F( int ) structural_class(
1628 ObjectClass
***socs
,
1630 char *textbuf
, size_t textlen
, void *ctx
);
1632 LDAP_SLAPD_F( int ) entry_schema_check(
1639 char *textbuf
, size_t textlen
);
1641 LDAP_SLAPD_F( int ) mods_structural_class(
1642 Modifications
*mods
,
1645 char *textbuf
, size_t textlen
, void *ctx
);
1650 LDAP_SLAPD_V( int ) schema_init_done
;
1651 LDAP_SLAPD_F (int) slap_schema_init
LDAP_P((void));
1652 LDAP_SLAPD_F (void) schema_destroy
LDAP_P(( void ));
1654 LDAP_SLAPD_F( slap_mr_indexer_func
) octetStringIndexer
;
1655 LDAP_SLAPD_F( slap_mr_filter_func
) octetStringFilter
;
1657 LDAP_SLAPD_F( int ) numericoidValidate
LDAP_P((
1659 struct berval
*in
));
1660 LDAP_SLAPD_F( int ) numericStringValidate
LDAP_P((
1662 struct berval
*in
));
1663 LDAP_SLAPD_F( int ) octetStringMatch
LDAP_P((
1668 struct berval
*value
,
1669 void *assertedValue
));
1670 LDAP_SLAPD_F( int ) octetStringOrderingMatch
LDAP_P((
1675 struct berval
*value
,
1676 void *assertedValue
));
1681 LDAP_SLAPD_V( struct slap_internal_schema
) slap_schema
;
1682 LDAP_SLAPD_F (int) slap_schema_load
LDAP_P((void));
1683 LDAP_SLAPD_F (int) slap_schema_check
LDAP_P((void));
1688 LDAP_SLAPD_F( int ) slap_valid_descr( const char * );
1690 LDAP_SLAPD_F (int) parse_cr
LDAP_P((
1691 struct config_args_s
*ca
, ContentRule
**scr
));
1692 LDAP_SLAPD_F (int) parse_oc
LDAP_P((
1693 struct config_args_s
*ca
, ObjectClass
**soc
, ObjectClass
*prev
));
1694 LDAP_SLAPD_F (int) parse_at
LDAP_P((
1695 struct config_args_s
*ca
, AttributeType
**sat
, AttributeType
*prev
));
1696 LDAP_SLAPD_F (char *) scherr2str
LDAP_P((int code
)) LDAP_GCCATTR((const));
1697 LDAP_SLAPD_F (int) dscompare
LDAP_P(( const char *s1
, const char *s2del
,
1703 LDAP_SLAPD_F (int) slap_send_session_log
LDAP_P((
1704 Operation
*, Operation
*, SlapReply
*));
1705 LDAP_SLAPD_F (int) slap_add_session_log
LDAP_P((
1706 Operation
*, Operation
*, Entry
* ));
1711 LDAP_SLAPD_F (void *) slap_sl_malloc
LDAP_P((
1712 ber_len_t size
, void *ctx
));
1713 LDAP_SLAPD_F (void *) slap_sl_realloc
LDAP_P((
1714 void *block
, ber_len_t size
, void *ctx
));
1715 LDAP_SLAPD_F (void *) slap_sl_calloc
LDAP_P((
1716 ber_len_t nelem
, ber_len_t size
, void *ctx
));
1717 LDAP_SLAPD_F (void) slap_sl_free
LDAP_P((
1718 void *, void *ctx
));
1720 LDAP_SLAPD_V (BerMemoryFunctions
) slap_sl_mfuncs
;
1722 LDAP_SLAPD_F (void) slap_sl_mem_init
LDAP_P(( void ));
1723 LDAP_SLAPD_F (void *) slap_sl_mem_create
LDAP_P((
1724 ber_len_t size
, int stack
, void *ctx
, int flag
));
1725 LDAP_SLAPD_F (void) slap_sl_mem_detach
LDAP_P(( void *ctx
, void *memctx
));
1726 LDAP_SLAPD_F (void) slap_sl_mem_destroy
LDAP_P(( void *key
, void *data
));
1727 LDAP_SLAPD_F (void *) slap_sl_context
LDAP_P(( void *ptr
));
1732 LDAP_SLAPD_F (SLAP_EXTOP_MAIN_FN
) starttls_extop
;
1737 LDAP_SLAPD_F (Filter
*) str2filter
LDAP_P(( const char *str
));
1738 LDAP_SLAPD_F (Filter
*) str2filter_x
LDAP_P(( Operation
*op
, const char *str
));
1744 LDAP_SLAPD_F (int) syncrepl_add_glue
LDAP_P((
1745 Operation
*, Entry
* ));
1746 LDAP_SLAPD_F (void) syncinfo_free
LDAP_P(( struct syncinfo_s
*, int all
));
1749 LDAP_SLAPD_F (int) syn_is_sup
LDAP_P((
1752 LDAP_SLAPD_F (Syntax
*) syn_find
LDAP_P((
1753 const char *synname
));
1754 LDAP_SLAPD_F (Syntax
*) syn_find_desc
LDAP_P((
1755 const char *syndesc
, int *slen
));
1756 LDAP_SLAPD_F (int) syn_add
LDAP_P((
1758 slap_syntax_defs_rec
*def
,
1759 const char **err
));
1760 LDAP_SLAPD_F (void) syn_destroy
LDAP_P(( void ));
1762 LDAP_SLAPD_F (int) register_syntax
LDAP_P((
1763 slap_syntax_defs_rec
*def
));
1765 LDAP_SLAPD_F (int) syn_schema_info( Entry
*e
);
1770 #if defined(HAVE_PWD_H) && defined(HAVE_GRP_H)
1771 LDAP_SLAPD_F (void) slap_init_user
LDAP_P(( char *username
, char *groupname
));
1777 LDAP_SLAPD_F (int) asserted_value_validate_normalize
LDAP_P((
1778 AttributeDescription
*ad
,
1786 LDAP_SLAPD_F (int) value_match
LDAP_P((
1788 AttributeDescription
*ad
,
1793 const char ** text
));
1794 LDAP_SLAPD_F (int) value_find_ex
LDAP_P((
1795 AttributeDescription
*ad
,
1798 struct berval
*value
,
1801 LDAP_SLAPD_F (int) ordered_value_add
LDAP_P((
1803 AttributeDescription
*ad
,
1808 LDAP_SLAPD_F (int) ordered_value_validate
LDAP_P((
1809 AttributeDescription
*ad
,
1813 LDAP_SLAPD_F (int) ordered_value_pretty
LDAP_P((
1814 AttributeDescription
*ad
,
1819 LDAP_SLAPD_F (int) ordered_value_normalize
LDAP_P((
1821 AttributeDescription
*ad
,
1824 struct berval
*normalized
,
1827 LDAP_SLAPD_F (int) ordered_value_match
LDAP_P((
1829 AttributeDescription
*ad
,
1834 const char ** text
));
1836 LDAP_SLAPD_F (void) ordered_value_renumber
LDAP_P((
1839 LDAP_SLAPD_F (int) ordered_value_sort
LDAP_P((
1843 LDAP_SLAPD_F (int) value_add
LDAP_P((
1845 BerVarray addvals
));
1846 LDAP_SLAPD_F (int) value_add_one
LDAP_P((
1848 struct berval
*addval
));
1850 /* assumes (x) > (y) returns 1 if true, 0 otherwise */
1851 #define SLAP_PTRCMP(x, y) ((x) < (y) ? -1 : (x) > (y))
1853 #ifdef SLAP_ZONE_ALLOC
1857 LDAP_SLAPD_F (void *) slap_zn_malloc
LDAP_P((ber_len_t
, void *));
1858 LDAP_SLAPD_F (void *) slap_zn_realloc
LDAP_P((void *, ber_len_t
, void *));
1859 LDAP_SLAPD_F (void *) slap_zn_calloc
LDAP_P((ber_len_t
, ber_len_t
, void *));
1860 LDAP_SLAPD_F (void) slap_zn_free
LDAP_P((void *, void *));
1862 LDAP_SLAPD_F (void *) slap_zn_mem_create
LDAP_P((
1863 ber_len_t
, ber_len_t
, ber_len_t
, ber_len_t
));
1864 LDAP_SLAPD_F (void) slap_zn_mem_destroy
LDAP_P((void *));
1865 LDAP_SLAPD_F (int) slap_zn_validate
LDAP_P((void *, void *, int));
1866 LDAP_SLAPD_F (int) slap_zn_invalidate
LDAP_P((void *, void *));
1867 LDAP_SLAPD_F (int) slap_zh_rlock
LDAP_P((void*));
1868 LDAP_SLAPD_F (int) slap_zh_runlock
LDAP_P((void*));
1869 LDAP_SLAPD_F (int) slap_zh_wlock
LDAP_P((void*));
1870 LDAP_SLAPD_F (int) slap_zh_wunlock
LDAP_P((void*));
1871 LDAP_SLAPD_F (int) slap_zn_rlock
LDAP_P((void*, void*));
1872 LDAP_SLAPD_F (int) slap_zn_runlock
LDAP_P((void*, void*));
1873 LDAP_SLAPD_F (int) slap_zn_wlock
LDAP_P((void*, void*));
1874 LDAP_SLAPD_F (int) slap_zn_wunlock
LDAP_P((void*, void*));
1880 LDAP_SLAPD_V (unsigned int) index_substr_if_minlen
;
1881 LDAP_SLAPD_V (unsigned int) index_substr_if_maxlen
;
1882 LDAP_SLAPD_V (unsigned int) index_substr_any_len
;
1883 LDAP_SLAPD_V (unsigned int) index_substr_any_step
;
1884 LDAP_SLAPD_V (unsigned int) index_intlen
;
1885 /* all signed integers from strings of this size need more than intlen bytes */
1886 /* i.e. log(10)*(index_intlen_strlen-2) > log(2)*(8*(index_intlen)-1) */
1887 LDAP_SLAPD_V (unsigned int) index_intlen_strlen
;
1888 #define SLAP_INDEX_INTLEN_STRLEN(intlen) ((8*(intlen)-1) * 146/485 + 3)
1890 LDAP_SLAPD_V (ber_len_t
) sockbuf_max_incoming
;
1891 LDAP_SLAPD_V (ber_len_t
) sockbuf_max_incoming_auth
;
1892 LDAP_SLAPD_V (int) slap_conn_max_pending
;
1893 LDAP_SLAPD_V (int) slap_conn_max_pending_auth
;
1895 LDAP_SLAPD_V (slap_mask_t
) global_allows
;
1896 LDAP_SLAPD_V (slap_mask_t
) global_disallows
;
1898 LDAP_SLAPD_V (BerVarray
) default_referral
;
1899 LDAP_SLAPD_V (const char) Versionstr
[];
1901 LDAP_SLAPD_V (int) global_gentlehup
;
1902 LDAP_SLAPD_V (int) global_idletimeout
;
1903 LDAP_SLAPD_V (char *) global_host
;
1904 LDAP_SLAPD_V (char *) global_realm
;
1905 LDAP_SLAPD_V (char *) sasl_host
;
1906 LDAP_SLAPD_V (char **) default_passwd_hash
;
1907 LDAP_SLAPD_V (int) lber_debug
;
1908 LDAP_SLAPD_V (int) ldap_syslog
;
1909 LDAP_SLAPD_V (struct berval
) default_search_base
;
1910 LDAP_SLAPD_V (struct berval
) default_search_nbase
;
1912 LDAP_SLAPD_V (slap_counters_t
) slap_counters
;
1914 LDAP_SLAPD_V (char *) slapd_pid_file
;
1915 LDAP_SLAPD_V (char *) slapd_args_file
;
1916 LDAP_SLAPD_V (time_t) starttime
;
1918 /* use time(3) -- no mutex */
1919 #define slap_get_time() time( NULL )
1921 LDAP_SLAPD_V (ldap_pvt_thread_pool_t
) connection_pool
;
1922 LDAP_SLAPD_V (int) connection_pool_max
;
1923 LDAP_SLAPD_V (int) slap_tool_thread_max
;
1925 LDAP_SLAPD_V (ldap_pvt_thread_mutex_t
) entry2str_mutex
;
1927 LDAP_SLAPD_V (ldap_pvt_thread_mutex_t
) gmtime_mutex
;
1929 LDAP_SLAPD_V (ldap_pvt_thread_mutex_t
) ad_undef_mutex
;
1930 LDAP_SLAPD_V (ldap_pvt_thread_mutex_t
) oc_undef_mutex
;
1932 LDAP_SLAPD_V (ber_socket_t
) dtblsize
;
1934 LDAP_SLAPD_V (int) use_reverse_lookup
;
1936 LDAP_SLAPD_V (struct berval
) AllUser
;
1937 LDAP_SLAPD_V (struct berval
) AllOper
;
1938 LDAP_SLAPD_V (struct berval
) NoAttrs
;
1943 LDAP_SLAPD_F (int) do_abandon
LDAP_P((Operation
*op
, SlapReply
*rs
));
1944 LDAP_SLAPD_F (int) do_add
LDAP_P((Operation
*op
, SlapReply
*rs
));
1945 LDAP_SLAPD_F (int) do_bind
LDAP_P((Operation
*op
, SlapReply
*rs
));
1946 LDAP_SLAPD_F (int) do_compare
LDAP_P((Operation
*op
, SlapReply
*rs
));
1947 LDAP_SLAPD_F (int) do_delete
LDAP_P((Operation
*op
, SlapReply
*rs
));
1948 LDAP_SLAPD_F (int) do_modify
LDAP_P((Operation
*op
, SlapReply
*rs
));
1949 LDAP_SLAPD_F (int) do_modrdn
LDAP_P((Operation
*op
, SlapReply
*rs
));
1950 LDAP_SLAPD_F (int) do_search
LDAP_P((Operation
*op
, SlapReply
*rs
));
1951 LDAP_SLAPD_F (int) do_unbind
LDAP_P((Operation
*op
, SlapReply
*rs
));
1952 LDAP_SLAPD_F (int) do_extended
LDAP_P((Operation
*op
, SlapReply
*rs
));
1955 * frontend operations
1957 LDAP_SLAPD_F (int) fe_op_abandon
LDAP_P((Operation
*op
, SlapReply
*rs
));
1958 LDAP_SLAPD_F (int) fe_op_add
LDAP_P((Operation
*op
, SlapReply
*rs
));
1959 LDAP_SLAPD_F (int) fe_op_bind
LDAP_P((Operation
*op
, SlapReply
*rs
));
1960 LDAP_SLAPD_F (int) fe_op_bind_success
LDAP_P(( Operation
*op
, SlapReply
*rs
));
1961 LDAP_SLAPD_F (int) fe_op_compare
LDAP_P((Operation
*op
, SlapReply
*rs
));
1962 LDAP_SLAPD_F (int) fe_op_delete
LDAP_P((Operation
*op
, SlapReply
*rs
));
1963 LDAP_SLAPD_F (int) fe_op_modify
LDAP_P((Operation
*op
, SlapReply
*rs
));
1964 LDAP_SLAPD_F (int) fe_op_modrdn
LDAP_P((Operation
*op
, SlapReply
*rs
));
1965 LDAP_SLAPD_F (int) fe_op_search
LDAP_P((Operation
*op
, SlapReply
*rs
));
1966 LDAP_SLAPD_F (int) fe_aux_operational
LDAP_P((Operation
*op
, SlapReply
*rs
));
1968 LDAP_SLAPD_F (int) fe_op_unbind
LDAP_P((Operation
*op
, SlapReply
*rs
));
1970 LDAP_SLAPD_F (int) fe_extended
LDAP_P((Operation
*op
, SlapReply
*rs
));
1971 LDAP_SLAPD_F (int) fe_acl_group
LDAP_P((
1974 struct berval
*gr_ndn
,
1975 struct berval
*op_ndn
,
1976 ObjectClass
*group_oc
,
1977 AttributeDescription
*group_at
));
1978 LDAP_SLAPD_F (int) fe_acl_attribute
LDAP_P((
1982 AttributeDescription
*entry_at
,
1984 slap_access_t access
));
1985 LDAP_SLAPD_F (int) fe_access_allowed
LDAP_P((
1988 AttributeDescription
*desc
,
1990 slap_access_t access
,
1991 AccessControlState
*state
,
1992 slap_mask_t
*maskp
));
1994 /* NOTE: this macro assumes that bv has been allocated
1995 * by ber_* malloc functions or is { 0L, NULL } */
1996 #ifdef USE_MP_BIGNUM
1997 # define UI2BVX(bv,ui,ctx) \
2001 val = BN_bn2dec(ui); \
2003 len = strlen(val); \
2004 if ( len > (bv)->bv_len ) { \
2005 (bv)->bv_val = ber_memrealloc_x( (bv)->bv_val, len + 1, (ctx) ); \
2007 AC_MEMCPY((bv)->bv_val, val, len + 1); \
2008 (bv)->bv_len = len; \
2009 OPENSSL_free(val); \
2011 ber_memfree_x( (bv)->bv_val, (ctx) ); \
2012 BER_BVZERO( (bv) ); \
2016 #elif defined( USE_MP_GMP )
2017 /* NOTE: according to the documentation, the result
2018 * of mpz_sizeinbase() can exceed the length of the
2019 * string representation of the number by 1
2021 # define UI2BVX(bv,ui,ctx) \
2023 ber_len_t len = mpz_sizeinbase( (ui), 10 ); \
2024 if ( len > (bv)->bv_len ) { \
2025 (bv)->bv_val = ber_memrealloc_x( (bv)->bv_val, len + 1, (ctx) ); \
2027 (void)mpz_get_str( (bv)->bv_val, 10, (ui) ); \
2028 if ( (bv)->bv_val[ len - 1 ] == '\0' ) { \
2031 (bv)->bv_len = len; \
2035 # ifdef USE_MP_LONG_LONG
2036 # define UI2BV_FORMAT "%llu"
2037 # elif defined USE_MP_LONG
2038 # define UI2BV_FORMAT "%lu"
2039 # elif defined HAVE_LONG_LONG
2040 # define UI2BV_FORMAT "%llu"
2042 # define UI2BV_FORMAT "%lu"
2045 # define UI2BVX(bv,ui,ctx) \
2047 char buf[LDAP_PVT_INTTYPE_CHARS(long)]; \
2049 len = snprintf( buf, sizeof( buf ), UI2BV_FORMAT, (ui) ); \
2050 if ( len > (bv)->bv_len ) { \
2051 (bv)->bv_val = ber_memrealloc_x( (bv)->bv_val, len + 1, (ctx) ); \
2053 (bv)->bv_len = len; \
2054 AC_MEMCPY( (bv)->bv_val, buf, len + 1 ); \
2058 #define UI2BV(bv,ui) UI2BVX(bv,ui,NULL)
2062 #endif /* PROTO_SLAP_H */