]> git.sur5r.net Git - openldap/blob - servers/slapd/proto-slap.h
517875c2e831c4223787a2e860c230f5e436d1ee
[openldap] / servers / slapd / proto-slap.h
1 #ifndef _PROTO_SLAP
2 #define _PROTO_SLAP
3
4 #include <ldap_cdefs.h>
5
6 /*
7  * acl.c
8  */
9
10 int access_allowed LDAP_P(( Backend *be, Connection *conn,
11         Operation *op, Entry *e,
12         char *attr, struct berval *val, int access ));
13
14 struct acl * acl_get_applicable LDAP_P(( Backend *be,
15         Operation *op, Entry *e,
16         char *attr, int nmatches, regmatch_t *matches ));
17
18 int acl_access_allowed LDAP_P(( struct acl *a, Backend *be, Connection *conn, Entry *e,
19         struct berval *val, Operation *op, int  access, char *edn,
20         regmatch_t *matches ));
21
22 int acl_check_modlist LDAP_P(( Backend *be,
23         Connection *conn,
24         Operation *op,
25         Entry *e,
26         LDAPModList *ml ));
27
28 /*
29  * aclparse.c
30  */
31
32 void parse_acl LDAP_P(( Backend *be, char *fname, int lineno, int argc, char **argv ));
33 char * access2str LDAP_P(( int access ));
34 int str2access LDAP_P(( char *str ));
35
36 /*
37  * attr.c
38  */
39
40 void attr_free LDAP_P(( Attribute *a ));
41 char * attr_normalize LDAP_P(( char *s ));
42 int attr_merge_fast LDAP_P(( Entry *e, char *type, struct berval **vals, int  nvals,
43         int  naddvals, int  *maxvals, Attribute ***a ));
44 int attr_merge LDAP_P(( Entry *e, char *type, struct berval **vals ));
45 Attribute * attr_find LDAP_P(( Attribute *a, char *type ));
46 int attr_delete LDAP_P(( Attribute **attrs, char *type ));
47 int attr_syntax LDAP_P(( char *type ));
48 void attr_syntax_config LDAP_P(( char *fname, int lineno, int argc, char **argv ));
49 AttributeType * at_find LDAP_P(( const char *name ));
50 int at_find_in_list LDAP_P(( AttributeType *sat, AttributeType **list ));
51 int at_append_to_list LDAP_P(( AttributeType *sat, AttributeType ***listp ));
52 int at_delete_from_list LDAP_P(( int pos, AttributeType ***listp ));
53 int at_fake_if_needed LDAP_P(( char *name ));
54 int at_schema_info LDAP_P(( Entry *e ));
55 int at_add LDAP_P(( LDAP_ATTRIBUTE_TYPE *at, const char **err ));
56 char * at_canonical_name LDAP_P(( char * a_type ));
57
58 /*
59  * ava.c
60  */
61
62 int get_ava LDAP_P(( BerElement *ber, Ava *ava ));
63 void ava_free LDAP_P(( Ava *ava, int freeit ));
64
65 /*
66  * backend.c
67  */
68
69 int backend_init LDAP_P((void));
70 int backend_startup LDAP_P((int dbnum));
71 int backend_shutdown LDAP_P((int dbnum));
72 int backend_destroy LDAP_P((void));
73
74 BackendInfo * backend_info LDAP_P(( char *type ));
75 BackendDB * backend_db_init LDAP_P(( char *type ));
76
77 BackendDB * select_backend LDAP_P(( char * dn ));
78
79 int be_issuffix LDAP_P(( Backend *be, char *suffix ));
80 int be_isroot LDAP_P(( Backend *be, char *ndn ));
81 int be_isroot_pw LDAP_P(( Backend *be, char *ndn, struct berval *cred ));
82 char* be_root_dn LDAP_P(( Backend *be ));
83 int be_entry_release_rw LDAP_P(( Backend *be, Entry *e, int rw ));
84 #define be_entry_release_r( be, e ) be_entry_release_rw( be, e, 0 )
85 #define be_entry_release_w( be, e ) be_entry_release_rw( be, e, 1 )
86
87
88 extern int      backend_unbind LDAP_P((Connection *conn, Operation *op));
89
90 extern int      backend_group LDAP_P((Backend *be,
91         Entry *target,
92         char *gr_ndn, char *op_ndn,
93         char *objectclassValue, char *groupattrName));
94
95 /*
96  * ch_malloc.c
97  */
98
99 void * ch_malloc LDAP_P(( unsigned long size ));
100 void * ch_realloc LDAP_P(( void *block, unsigned long size ));
101 void * ch_calloc LDAP_P(( unsigned long nelem, unsigned long size ));
102 char * ch_strdup LDAP_P(( const char *string ));
103
104 /*
105  * charray.c
106  */
107
108 void charray_add LDAP_P(( char ***a, char *s ));
109 void charray_merge LDAP_P(( char ***a, char **s ));
110 void charray_free LDAP_P(( char **array ));
111 int charray_inlist LDAP_P(( char **a, char *s ));
112 char ** charray_dup LDAP_P(( char **a ));
113 char ** str2charray LDAP_P(( char *str, char *brkstr ));
114
115 /*
116  * config.c
117  */
118
119 int read_config LDAP_P(( char *fname ));
120
121 /*
122  * connection.c
123  */
124 int connections_init LDAP_P((void));
125 int connections_shutdown LDAP_P((void));
126 int connections_destroy LDAP_P((void));
127
128 long connection_init LDAP_P((
129         int s,
130         const char* name, const char* addr));
131
132 void connection_closing LDAP_P(( Connection *c ));
133 int connection_state_closing LDAP_P(( Connection *c ));
134
135 int connection_write LDAP_P((int s));
136 int connection_read LDAP_P((int s));
137
138 long connections_nextid(void);
139
140 Connection* connection_first LDAP_P((int *));
141 Connection* connection_next LDAP_P((Connection *, int *));
142 void connection_done LDAP_P((Connection *));
143
144 /*
145  * dn.c
146  */
147
148 char * dn_normalize LDAP_P(( char *dn ));
149 char * dn_normalize_case LDAP_P(( char *dn ));
150 char * dn_parent LDAP_P(( Backend *be, char *dn ));
151 char * dn_rdn LDAP_P(( Backend *be, char *dn ));
152 int dn_issuffix LDAP_P(( char *dn, char *suffix ));
153 int dn_type LDAP_P(( char *dn ));
154 char * dn_upcase LDAP_P(( char *dn ));
155 char * rdn_attr_value LDAP_P(( char * rdn ));
156 char * rdn_attr_type LDAP_P(( char * rdn ));
157 void build_new_dn LDAP_P(( char ** new_dn, char *e_dn, char * p_dn,
158                            char * newrdn ));
159 /*
160  * entry.c
161  */
162
163 Entry * str2entry LDAP_P(( char *s ));
164 char * entry2str LDAP_P(( Entry *e, int *len, int printid ));
165 void entry_free LDAP_P(( Entry *e ));
166
167 int entry_cmp LDAP_P(( Entry *a, Entry *b ));
168 int entry_dn_cmp LDAP_P(( Entry *a, Entry *b ));
169 int entry_id_cmp LDAP_P(( Entry *a, Entry *b ));
170
171 /*
172  * filter.c
173  */
174
175 int get_filter LDAP_P(( Connection *conn, BerElement *ber, Filter **filt, char **fstr ));
176 void filter_free LDAP_P(( Filter *f ));
177 void filter_print LDAP_P(( Filter *f ));
178
179 /*
180  * filterentry.c
181  */
182
183 int test_filter LDAP_P(( Backend *be, Connection *conn, Operation *op, Entry *e,
184         Filter  *f ));
185
186 /*
187  * lock.c
188  */
189
190 FILE * lock_fopen LDAP_P(( char *fname, char *type, FILE **lfp ));
191 int lock_fclose LDAP_P(( FILE *fp, FILE *lfp ));
192
193 /*
194  * monitor.c
195  */
196
197 void monitor_info LDAP_P(( Connection *conn, Operation *op ));
198
199 /*
200  * operation.c
201  */
202
203 void slap_op_free LDAP_P(( Operation *op ));
204 Operation * slap_op_alloc LDAP_P((
205         BerElement *ber, unsigned long msgid,
206         unsigned long tag, long id ));
207
208 int slap_op_add LDAP_P(( Operation **olist, Operation *op ));
209 int slap_op_remove LDAP_P(( Operation **olist, Operation *op ));
210 Operation * slap_op_pop LDAP_P(( Operation **olist ));
211
212 /*
213  * phonetic.c
214  */
215
216 char * first_word LDAP_P(( char *s ));
217 char * next_word LDAP_P(( char *s ));
218 char * word_dup LDAP_P(( char *w ));
219 char * phonetic LDAP_P(( char *s ));
220
221 /*
222  * repl.c
223  */
224
225 void replog LDAP_P(( Backend *be, int optype, char *dn, void *change, int flag ));
226
227 /*
228  * result.c
229  */
230
231 void send_ldap_result LDAP_P(( Connection *conn, Operation *op, int err, char *matched,
232         char *text ));
233 void send_ldap_search_result LDAP_P(( Connection *conn, Operation *op, int err,
234         char *matched, char *text, int nentries ));
235
236 /*
237  * schema.c
238  */
239
240 int oc_schema_check LDAP_P(( Entry *e ));
241 ObjectClass *oc_find LDAP_P((const char *ocname));
242 int oc_add LDAP_P((LDAP_OBJECT_CLASS *oc, const char **err));
243 Syntax *syn_find LDAP_P((const char *synname));
244 int syn_add LDAP_P((LDAP_SYNTAX *syn, slap_syntax_check_func *check, const char **err));
245 MatchingRule *mr_find LDAP_P((const char *mrname));
246 int mr_add LDAP_P((LDAP_MATCHING_RULE *mr, slap_mr_normalize_func *normalize, slap_mr_compare_func *compare, const char **err));
247 void schema_info LDAP_P((Connection *conn, Operation *op, char **attrs, int attrsonly));
248 int schema_init LDAP_P((void));
249
250
251 /*
252  * schemaparse.c
253  */
254
255 void parse_oc_old LDAP_P(( Backend *be, char *fname, int lineno, int argc, char **argv ));
256 void parse_oc LDAP_P(( char *fname, int lineno, char *line ));
257 void parse_at LDAP_P(( char *fname, int lineno, char *line ));
258 char *scherr2str LDAP_P((int code));
259 /*
260  * str2filter.c
261  */
262
263 Filter * str2filter LDAP_P(( char *str ));
264
265 /*
266  * value.c
267  */
268
269 int value_add_fast LDAP_P(( struct berval ***vals, struct berval **addvals, int nvals,
270         int naddvals, int *maxvals ));
271 int value_add LDAP_P(( struct berval ***vals, struct berval **addvals ));
272 void value_normalize LDAP_P(( char *s, int syntax ));
273 int value_cmp LDAP_P(( struct berval *v1, struct berval *v2, int syntax,
274         int normalize ));
275 int value_find LDAP_P(( struct berval **vals, struct berval *v, int syntax,
276         int normalize ));
277
278 /*
279  * suffixAlias.c
280  */
281 char *suffixAlias LDAP_P(( char *dn, Operation *op, Backend *be ));
282
283 /*
284  * user.c
285  */
286 #if defined(HAVE_PWD_H) && defined(HAVE_GRP_H)
287 void slap_init_user LDAP_P(( char *username, char *groupname ));
288 #endif
289
290 /*
291  * Other...
292  */
293
294 extern char             *default_referral;
295 extern char             *replogfile;
296 extern const char Versionstr[];
297 extern int              active_threads;
298 extern int              defsize;
299 extern int              deftime;
300 extern int              g_argc;
301 extern int              global_default_access;
302 extern int              global_lastmod;
303 extern int              global_idletimeout;
304 extern int              global_schemacheck;
305 extern int              lber_debug;
306 extern int              ldap_syslog;
307
308 extern ldap_pvt_thread_mutex_t  num_sent_mutex;
309 extern long             num_bytes_sent;
310 extern long             num_entries_sent;
311
312 extern ldap_pvt_thread_mutex_t  num_ops_mutex;
313 extern long             num_ops_completed;
314 extern long             num_ops_initiated;
315
316 extern char   *slapd_pid_file;
317 extern char   *slapd_args_file;
318 extern char             **g_argv;
319 extern time_t   starttime;
320
321 time_t slap_get_time LDAP_P((void));
322
323 extern ldap_pvt_thread_mutex_t  active_threads_mutex;
324 extern ldap_pvt_thread_cond_t   active_threads_cond;
325
326 extern ldap_pvt_thread_mutex_t  entry2str_mutex;
327 extern ldap_pvt_thread_mutex_t  replog_mutex;
328
329 #ifdef SLAPD_CRYPT
330 extern ldap_pvt_thread_mutex_t  crypt_mutex;
331 #endif
332 extern ldap_pvt_thread_mutex_t  gmtime_mutex;
333
334 extern struct acl               *global_acl;
335
336 extern int      slap_init LDAP_P((int mode, char* name));
337 extern int      slap_startup LDAP_P((int dbnum));
338 extern int      slap_shutdown LDAP_P((int dbnum));
339 extern int      slap_destroy LDAP_P((void));
340
341 struct sockaddr_in;
342
343 struct slapd_args {
344         struct sockaddr_in *addr;
345         int tcps;
346 };
347 extern int      slapd_daemon LDAP_P((struct slapd_args *args));
348
349 extern void slapd_set_write LDAP_P((int s, int wake));
350 extern void slapd_clr_write LDAP_P((int s, int wake));
351 extern void slapd_set_read LDAP_P((int s, int wake));
352 extern void slapd_clr_read LDAP_P((int s, int wake));
353
354 extern void slapd_remove LDAP_P((int s, int wake));
355
356 extern void     slap_set_shutdown LDAP_P((int sig));
357 extern void     slap_do_nothing   LDAP_P((int sig));
358
359 extern void     config_info LDAP_P((Connection *conn, Operation *op));
360 extern void     root_dse_info LDAP_P((Connection *conn, Operation *op, char **attrs, int attrsonly));
361 extern void     do_abandon LDAP_P((Connection *conn, Operation *op));
362 extern void     do_add LDAP_P((Connection *conn, Operation *op));
363 extern void     do_bind LDAP_P((Connection *conn, Operation *op));
364 extern void     do_compare LDAP_P((Connection *conn, Operation *op));
365 extern void     do_delete LDAP_P((Connection *conn, Operation *op));
366 extern void     do_modify LDAP_P((Connection *conn, Operation *op));
367 extern void     do_modrdn LDAP_P((Connection *conn, Operation *op));
368 extern void     do_search LDAP_P((Connection *conn, Operation *op));
369 extern void     do_unbind LDAP_P((Connection *conn, Operation *op));
370
371 extern int send_search_entry LDAP_P((Backend *be, Connection *conn, Operation *op, Entry *e, char **attrs, int attrsonly));
372 extern int str2result LDAP_P(( char *s, int *code, char **matched, char **info ));
373
374 extern int dtblsize;
375
376 #endif /* _proto_slap */
377