]> git.sur5r.net Git - openldap/blob - servers/slapd/proto-slap.h
a1ff6e5e755cb202ec1fb25028591eb53c45af47
[openldap] / servers / slapd / proto-slap.h
1 #ifndef _PROTO_SLAP
2 #define _PROTO_SLAP
3
4 /*
5  * acl.c
6  */
7
8 int access_allowed( Backend *be, Connection *conn, Operation *op, Entry *e,
9         char *attr, struct berval *val, char *dn, int  access );
10 struct acl * acl_get_applicable( Backend *be, Operation *op, Entry *e,
11         char *attr );
12 int acl_access_allowed( struct acl *a, Backend *be, Connection *conn, Entry *e,
13         struct berval *val, Operation *op, int  access );
14 int acl_check_mods( Backend *be, Connection *conn, Operation *op, Entry *e,
15         LDAPMod *mods );
16
17 /*
18  * aclparse.c
19  */
20
21 void parse_acl( Backend *be, char *fname, int lineno, int argc, char **argv );
22 char * access2str( int access );
23 int str2access( char *str );
24
25 /*
26  * attr.c
27  */
28
29 void attr_free( Attribute *a );
30 char * attr_normalize( char *s );
31 int attr_merge_fast( Entry *e, char *type, struct berval **vals, int  nvals,
32         int  naddvals, int  *maxvals, Attribute ***a );
33 int attr_merge( Entry *e, char *type, struct berval **vals );
34 Attribute * attr_find( Attribute *a, char *type );
35 int attr_delete( Attribute **attrs, char *type );
36 int attr_syntax( char *type );
37 void attr_syntax_config( char *fname, int lineno, int argc, char **argv );
38
39 /*
40  * ava.c
41  */
42
43 int get_ava( BerElement *ber, Ava *ava );
44 void ava_free( Ava *ava, int freeit );
45
46 /*
47  * backend.c
48  */
49
50 Backend * new_backend( char *type );
51 Backend * select_backend( char * dn );
52 int be_issuffix( Backend *be, char *suffix );
53 int be_isroot( Backend *be, char *dn );
54 int be_isroot_pw( Backend *be, char *dn, struct berval *cred );
55 void be_close();
56
57 /*
58  * ch_malloc.c
59  */
60
61 char * ch_malloc( unsigned long size );
62 char * ch_realloc( char *block, unsigned long size );
63 char * ch_calloc( unsigned long nelem, unsigned long size );
64
65 /*
66  * charray.c
67  */
68
69 void charray_add( char ***a, char *s );
70 void charray_merge( char ***a, char **s );
71 void charray_free( char **array );
72 int charray_inlist( char **a, char *s );
73 char ** charray_dup( char **a );
74 char ** str2charray( char *str, char *brkstr );
75
76 /*
77  * config.c
78  */
79
80 void read_config( char *fname, Backend **bep, FILE *pfp );
81
82 /*
83  * connection.c
84  */
85
86 void connection_activity( Connection *conn );
87
88 /*
89  * dn.c
90  */
91
92 char * dn_normalize( char *dn );
93 char * dn_normalize_case( char *dn );
94 char * dn_parent( Backend *be, char *dn );
95 int dn_issuffix( char *dn, char *suffix );
96 int dn_type( char *dn );
97 char * dn_upcase( char *dn );
98
99 /*
100  * entry.c
101  */
102
103 Entry * str2entry( char *s );
104 char * entry2str( Entry *e, int *len, int printid );
105 void entry_free( Entry *e );
106
107 /*
108  * filter.c
109  */
110
111 int get_filter( Connection *conn, BerElement *ber, Filter **filt, char **fstr );
112 void filter_free( Filter *f );
113 void filter_print( Filter *f );
114
115 /*
116  * filterentry.c
117  */
118
119 int test_filter( Backend *be, Connection *conn, Operation *op, Entry *e,
120         Filter  *f );
121
122 /*
123  * lock.c
124  */
125
126 FILE * lock_fopen( char *fname, char *type, FILE **lfp );
127 int lock_fclose( FILE *fp, FILE *lfp );
128
129 /*
130  * monitor.c
131  */
132
133 void monitor_info( Connection *conn, Operation *op );
134
135 /*
136  * operation.c
137  */
138
139 void op_free( Operation *op );
140 Operation * op_add( Operation **olist, BerElement *ber, unsigned long msgid,
141         unsigned long tag, char *dn, int id, int connid );
142 void op_delete( Operation **olist, Operation *op );
143
144 /*
145  * phonetic.c
146  */
147
148 char * first_word( char *s );
149 char * next_word( char *s );
150 char * word_dup( char *w );
151 char * phonetic( char *s );
152
153 /*
154  * repl.c
155  */
156
157 void replog( Backend *be, int optype, char *dn, void *change, int flag );
158
159 /*
160  * result.c
161  */
162
163 void send_ldap_result( Connection *conn, Operation *op, int err, char *matched,
164         char *text );
165 void send_ldap_search_result( Connection *conn, Operation *op, int err,
166         char *matched, char *text, int nentries );
167 void close_connection( Connection *conn, int opconnid, int opid );
168
169 /*
170  * schema.c
171  */
172
173 int oc_schema_check( Entry *e );
174
175 /*
176  * schemaparse.c
177  */
178
179 void parse_oc( Backend *be, char *fname, int lineno, int argc, char **argv );
180
181 /*
182  * str2filter.c
183  */
184
185 Filter * str2filter( char *str );
186
187 /*
188  * value.c
189  */
190
191 int value_add_fast( struct berval ***vals, struct berval **addvals, int nvals,
192         int naddvals, int *maxvals );
193 int value_add( struct berval ***vals, struct berval **addvals );
194 void value_normalize( char *s, int syntax );
195 int value_cmp( struct berval *v1, struct berval *v2, int syntax,
196         int normalize );
197 int value_ncmp( struct berval *v1, struct berval *v2, int syntax, int len,
198         int normalize );
199 int value_find( struct berval **vals, struct berval *v, int syntax,
200         int normalize );
201
202 #endif /* _proto_slap */