1 /*        $NetBSD: proto-back-monitor.h,v 1.3 2021/08/14 16:15:00 christos Exp $          */
2 
3 /* $OpenLDAP$ */
4 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
5  *
6  * Copyright 2001-2021 The OpenLDAP Foundation.
7  * Portions Copyright 2001-2003 Pierangelo Masarati.
8  * All rights reserved.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted only as authorized by the OpenLDAP
12  * Public License.
13  *
14  * A copy of this license is available in file LICENSE in the
15  * top-level directory of the distribution or, alternatively, at
16  * <http://www.OpenLDAP.org/license.html>.
17  */
18 /* ACKNOWLEDGEMENTS:
19  * This work was initially developed by Pierangelo Masarati for inclusion
20  * in OpenLDAP Software.
21  */
22 
23 #ifndef _PROTO_BACK_MONITOR
24 #define _PROTO_BACK_MONITOR
25 
26 #include <ldap_cdefs.h>
27 
28 LDAP_BEGIN_DECL
29 
30 /*
31  * backends
32  */
33 int
34 monitor_subsys_backend_init LDAP_P((
35           BackendDB           *be,
36           monitor_subsys_t    *ms ));
37 
38 /*
39  * cache
40  */
41 extern int
42 monitor_cache_cmp LDAP_P((
43           const void                    *c1,
44           const void                    *c2 ));
45 extern int
46 monitor_cache_dup LDAP_P((
47           void                          *c1,
48           void                          *c2 ));
49 extern int
50 monitor_cache_add LDAP_P((
51           monitor_info_t                *mi,
52           Entry                         *e ));
53 extern int
54 monitor_cache_get LDAP_P((
55           monitor_info_t                *mi,
56           struct berval                 *ndn,
57           Entry                         **ep ));
58 extern int
59 monitor_cache_remove LDAP_P((
60           monitor_info_t                *mi,
61           struct berval                 *ndn,
62           Entry                         **ep ));
63 extern int
64 monitor_cache_dn2entry LDAP_P((
65           Operation           *op,
66           SlapReply           *rs,
67           struct berval                 *ndn,
68           Entry                         **ep,
69           Entry                         **matched ));
70 extern int
71 monitor_cache_lock LDAP_P((
72           Entry                         *e ));
73 extern int
74 monitor_cache_release LDAP_P((
75           monitor_info_t                *mi,
76           Entry                         *e ));
77 
78 extern int
79 monitor_cache_destroy LDAP_P((
80           monitor_info_t                *mi ));
81 
82 extern int
83 monitor_back_release(
84           Operation *op,
85           Entry *e,
86           int rw );
87 
88 /*
89  * connections
90  */
91 extern int
92 monitor_subsys_conn_init LDAP_P((
93           BackendDB           *be,
94           monitor_subsys_t    *ms ));
95 
96 /*
97  * databases
98  */
99 extern int
100 monitor_subsys_database_init LDAP_P((
101           BackendDB           *be,
102           monitor_subsys_t    *ms ));
103 
104 /*
105  * entry
106  */
107 extern int
108 monitor_entry_update LDAP_P((
109           Operation           *op,
110           SlapReply           *rs,
111           Entry                         *e ));
112 extern int
113 monitor_entry_create LDAP_P((
114           Operation           *op,
115           SlapReply           *rs,
116           struct berval                 *ndn,
117           Entry                         *e_parent,
118           Entry                         **ep ));
119 extern int
120 monitor_entry_modify LDAP_P((
121           Operation           *op,
122           SlapReply           *rs,
123           Entry                         *e ));
124 extern int
125 monitor_entry_test_flags LDAP_P((
126           monitor_entry_t               *mp,
127           int                           cond ));
128 extern monitor_entry_t *
129 monitor_back_entrypriv_create LDAP_P((
130           void ));
131 extern Entry *
132 monitor_back_entry_stub LDAP_P((
133           struct berval       *pdn,
134           struct berval       *pndn,
135           struct berval       *rdn,
136           ObjectClass                   *oc,
137           struct berval       *create,
138           struct berval       *modify ));
139 extern Entry *
140 monitor_back_entry_get_unlocked LDAP_P((
141           struct berval       *ndn ));
142 
143 #define monitor_entrypriv_create monitor_back_entrypriv_create
144 #define monitor_entry_stub monitor_back_entry_stub
145 #define monitor_entry_get_unlocked monitor_back_entry_get_unlocked
146 
147 /*
148  * init
149  */
150 extern int
151 monitor_subsys_is_opened LDAP_P((
152           void ));
153 extern int
154 monitor_back_register_subsys LDAP_P((
155           monitor_subsys_t    *ms ));
156 extern int
157 monitor_back_register_subsys_late LDAP_P((
158           monitor_subsys_t    *ms ));
159 extern int
160 monitor_back_register_backend LDAP_P((
161           BackendInfo                   *bi ));
162 extern int
163 monitor_back_register_database LDAP_P((
164           BackendDB           *be,
165           struct berval       *ndn ));
166 extern int
167 monitor_back_register_overlay_info LDAP_P((
168           slap_overinst                 *on ));
169 extern int
170 monitor_back_register_overlay LDAP_P((
171           BackendDB           *be,
172           struct slap_overinst          *on,
173           struct berval                 *ndn_out ));
174 extern int
175 monitor_back_register_backend_limbo LDAP_P((
176           BackendInfo                   *bi ));
177 extern int
178 monitor_back_register_database_limbo LDAP_P((
179           BackendDB           *be,
180           struct berval                 *ndn_out ));
181 extern int
182 monitor_back_register_overlay_info_limbo LDAP_P((
183           slap_overinst                 *on ));
184 extern int
185 monitor_back_register_overlay_limbo LDAP_P((
186           BackendDB           *be,
187           struct slap_overinst          *on,
188           struct berval                 *ndn_out ));
189 extern monitor_subsys_t *
190 monitor_back_get_subsys LDAP_P((
191           const char                    *name ));
192 extern monitor_subsys_t *
193 monitor_back_get_subsys_by_dn LDAP_P((
194           struct berval                 *ndn,
195           int                           sub ));
196 extern int
197 monitor_back_is_configured LDAP_P(( void ));
198 extern int
199 monitor_back_register_entry LDAP_P((
200           Entry                         *e,
201           monitor_callback_t  *cb,
202           monitor_subsys_t    *mss,
203           unsigned long                 flags ));
204 extern int
205 monitor_back_register_entry_parent LDAP_P((
206           Entry                         *e,
207           monitor_callback_t  *cb,
208           monitor_subsys_t    *mss,
209           unsigned long                 flags,
210           struct berval                 *base,
211           int                           scope,
212           struct berval                 *filter ));
213 extern int
214 monitor_search2ndn LDAP_P((
215           struct berval                 *base,
216           int                           scope,
217           struct berval                 *filter,
218           struct berval                 *ndn ));
219 extern int
220 monitor_back_register_entry_attrs LDAP_P((
221           struct berval                 *ndn,
222           Attribute           *a,
223           monitor_callback_t  *cb,
224           struct berval                 *base,
225           int                           scope,
226           struct berval                 *filter ));
227 extern int
228 monitor_back_register_entry_callback LDAP_P((
229           struct berval                 *ndn,
230           monitor_callback_t  *cb,
231           struct berval                 *base,
232           int                           scope,
233           struct berval                 *filter ));
234 extern int
235 monitor_back_unregister_entry LDAP_P((
236           struct berval                 *ndn ));
237 extern int
238 monitor_back_unregister_entry_parent LDAP_P((
239           struct berval                 *nrdn,
240           monitor_callback_t  *target_cb,
241           struct berval                 *base,
242           int                           scope,
243           struct berval                 *filter ));
244 extern int
245 monitor_back_unregister_entry_attrs LDAP_P((
246           struct berval                 *ndn,
247           Attribute           *a,
248           monitor_callback_t  *cb,
249           struct berval                 *base,
250           int                           scope,
251           struct berval                 *filter ));
252 extern int
253 monitor_back_unregister_entry_callback LDAP_P((
254           struct berval                 *ndn,
255           monitor_callback_t  *cb,
256           struct berval                 *base,
257           int                           scope,
258           struct berval                 *filter ));
259 
260 /*
261  * listener
262  */
263 extern int
264 monitor_subsys_listener_init LDAP_P((
265           BackendDB           *be,
266           monitor_subsys_t    *ms ));
267 
268 /*
269  * log
270  */
271 extern int
272 monitor_subsys_log_init LDAP_P((
273           BackendDB           *be,
274           monitor_subsys_t    *ms ));
275 
276 /*
277  * operations
278  */
279 extern int
280 monitor_subsys_ops_init LDAP_P((
281           BackendDB           *be,
282           monitor_subsys_t    *ms ));
283 
284 /*
285  * overlay
286  */
287 extern int
288 monitor_subsys_overlay_init LDAP_P((
289           BackendDB           *be,
290           monitor_subsys_t    *ms ));
291 
292 /*
293  * sent
294  */
295 extern int
296 monitor_subsys_sent_init LDAP_P((
297           BackendDB           *be,
298           monitor_subsys_t    *ms ));
299 
300 /*
301  * threads
302  */
303 extern int
304 monitor_subsys_thread_init LDAP_P((
305           BackendDB           *be,
306           monitor_subsys_t    *ms ));
307 
308 /*
309  * time
310  */
311 extern int monitor_subsys_time_init LDAP_P((
312           BackendDB           *be,
313           monitor_subsys_t    *ms ));
314 
315 /*
316  * waiters
317  */
318 extern int
319 monitor_subsys_rww_init LDAP_P((
320           BackendDB           *be,
321           monitor_subsys_t    *ms ));
322 
323 /*
324  * former external.h
325  */
326 
327 extern BI_init                          monitor_back_initialize;
328 
329 extern BI_db_init             monitor_back_db_init;
330 extern BI_db_open             monitor_back_db_open;
331 extern BI_config              monitor_back_config;
332 extern BI_db_destroy                    monitor_back_db_destroy;
333 extern BI_db_config           monitor_back_db_config;
334 
335 extern BI_op_search           monitor_back_search;
336 extern BI_op_compare                    monitor_back_compare;
337 extern BI_op_modify           monitor_back_modify;
338 extern BI_op_bind             monitor_back_bind;
339 extern BI_operational                   monitor_back_operational;
340 
341 LDAP_END_DECL
342 
343 #endif /* _PROTO_BACK_MONITOR */
344 
345