ISC DHCP 4.4.3-P1
A reference DHCPv4 and DHCPv6 implementation
 
Loading...
Searching...
No Matches
omapip.h
Go to the documentation of this file.
1/* omapip.h
2
3 Definitions for the object management API and protocol... */
4
5/*
6 * Copyright (C) 2004-2022 Internet Systems Consortium, Inc. ("ISC")
7 * Copyright (c) 1996-2003 by Internet Software Consortium
8 *
9 * This Source Code Form is subject to the terms of the Mozilla Public
10 * License, v. 2.0. If a copy of the MPL was not distributed with this
11 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
12 *
13 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
14 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
15 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
16 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
17 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
18 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
19 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20 *
21 * Internet Systems Consortium, Inc.
22 * PO Box 360
23 * Newmarket, NH 03857 USA
24 * <info@isc.org>
25 * https://www.isc.org/
26 *
27 */
28
29#ifndef _OMAPIP_H_
30#define _OMAPIP_H_
31#include "result.h"
32#include <stdarg.h>
33
34#include <dns/tsec.h>
35
36typedef unsigned int omapi_handle_t;
37
38struct __omapi_object;
40
47
48typedef struct {
49 int refcnt;
51 union {
52 struct {
53 unsigned len;
54#define OMAPI_TYPED_DATA_NOBUFFER_LEN (sizeof (int) + \
55 sizeof (omapi_datatype_t) + \
56 sizeof (int))
57 unsigned char value [1];
59#define OMAPI_TYPED_DATA_OBJECT_LEN (sizeof (int) + \
60 sizeof (omapi_datatype_t) + \
61 sizeof (omapi_object_t *))
63#define OMAPI_TYPED_DATA_REF_LEN (sizeof (int) + \
64 sizeof (omapi_datatype_t) + \
65 3 * sizeof (void *))
66 struct {
67 void *ptr;
68 isc_result_t (*reference) (void *,
69 void *, const char *, int);
70 isc_result_t (*dereference) (void *,
71 const char *, int);
72 } ref;
73#define OMAPI_TYPED_DATA_INT_LEN (sizeof (int) + \
74 sizeof (omapi_datatype_t) + \
75 sizeof (int))
77 } u;
79
80typedef struct {
81 int refcnt;
82 unsigned len;
83#define OMAPI_DATA_STRING_EMPTY_SIZE (2 * sizeof (int))
84 unsigned char value [1];
86
92
93typedef struct __omapi_object_type_t {
94 const char *name;
96
100 isc_result_t (*get_value) (omapi_object_t *,
103 isc_result_t (*destroy) (omapi_object_t *, const char *, int);
104 isc_result_t (*signal_handler) (omapi_object_t *,
105 const char *, va_list);
106 isc_result_t (*stuff_values) (omapi_object_t *,
108 isc_result_t (*lookup) (omapi_object_t **, omapi_object_t *,
110 isc_result_t (*create) (omapi_object_t **, omapi_object_t *);
111 isc_result_t (*remove) (omapi_object_t *, omapi_object_t *);
112 isc_result_t (*freer) (omapi_object_t *, const char *, int);
113 isc_result_t (*allocator) (omapi_object_t **, const char *, int);
114 isc_result_t (*sizer) (size_t);
115 size_t size;
117 isc_result_t (*initialize) (omapi_object_t *, const char *, int);
119
120#define OMAPI_OBJECT_PREAMBLE \
121 omapi_object_type_t *type; \
122 int refcnt; \
123 omapi_handle_t handle; \
124 omapi_object_t *outer, *inner
125
126/* The omapi handle structure. */
130
131/* The port on which applications should listen for OMAPI connections. */
132#define OMAPI_PROTOCOL_PORT 7911
133
134typedef struct {
135 unsigned addrtype;
136 unsigned addrlen;
137 unsigned char address [16];
138 unsigned port;
140
141typedef struct {
143 unsigned count;
146
154
155#define OMAPI_CREATE 1
156#define OMAPI_UPDATE 2
157#define OMAPI_EXCL 4
158#define OMAPI_NOTIFY_PROTOCOL 8
159
160#define OMAPI_OBJECT_ALLOC(name, stype, type) \
161isc_result_t name##_allocate (stype **p, const char *file, int line) \
162{ \
163 return omapi_object_allocate ((omapi_object_t **)p, \
164 type, 0, file, line); \
165} \
166 \
167isc_result_t name##_reference (stype **pptr, stype *ptr, \
168 const char *file, int line) \
169{ \
170 return omapi_object_reference ((omapi_object_t **)pptr, \
171 (omapi_object_t *)ptr, file, line); \
172} \
173 \
174isc_result_t name##_dereference (stype **ptr, const char *file, int line) \
175{ \
176 return omapi_object_dereference ((omapi_object_t **)ptr, file, line); \
177}
178
179#define OMAPI_OBJECT_ALLOC_DECL(name, stype, type) \
180isc_result_t name##_allocate (stype **p, const char *file, int line); \
181isc_result_t name##_reference (stype **pptr, stype *ptr, \
182 const char *file, int line); \
183isc_result_t name##_dereference (stype **ptr, const char *file, int line);
184
185typedef isc_result_t (*omapi_array_ref_t) (char **, char *, const char *, int);
186typedef isc_result_t (*omapi_array_deref_t) (char **, const char *, int);
187
188/* An extensible array type. */
196
197#define OMAPI_ARRAY_TYPE(name, stype) \
198isc_result_t name##_array_allocate (omapi_array_t **p, \
199 const char *file, int line) \
200{ \
201 return (omapi_array_allocate \
202 (p, \
203 (omapi_array_ref_t)name##_reference, \
204 (omapi_array_deref_t)name##_dereference, \
205 file, line)); \
206} \
207 \
208isc_result_t name##_array_free (omapi_array_t **p, \
209 const char *file, int line) \
210{ \
211 return omapi_array_free (p, file, line); \
212} \
213 \
214isc_result_t name##_array_extend (omapi_array_t *pptr, stype *ptr, int *index,\
215 const char *file, int line) \
216{ \
217 return omapi_array_extend (pptr, (char *)ptr, index, file, line); \
218} \
219 \
220isc_result_t name##_array_set (omapi_array_t *pptr, stype *ptr, int index, \
221 const char *file, int line) \
222{ \
223 return omapi_array_set (pptr, (char *)ptr, index, file, line); \
224} \
225 \
226isc_result_t name##_array_lookup (stype **ptr, omapi_array_t *pptr, \
227 int index, const char *file, int line) \
228{ \
229 return omapi_array_lookup ((char **)ptr, pptr, index, file, line); \
230}
231
232#define OMAPI_ARRAY_TYPE_DECL(name, stype) \
233isc_result_t name##_array_allocate (omapi_array_t **, const char *, int); \
234isc_result_t name##_array_free (omapi_array_t **, const char *, int); \
235isc_result_t name##_array_extend (omapi_array_t *, stype *, int *, \
236 const char *, int); \
237isc_result_t name##_array_set (omapi_array_t *, \
238 stype *, int, const char *, int); \
239isc_result_t name##_array_lookup (stype **, \
240 omapi_array_t *, int, const char *, int)
241
242#define omapi_array_foreach_begin(array, stype, var) \
243 { \
244 int omapi_array_foreach_index; \
245 stype *var = (stype *)0; \
246 for (omapi_array_foreach_index = 0; \
247 array && \
248 omapi_array_foreach_index < (array) -> count; \
249 omapi_array_foreach_index++) { \
250 if ((array) -> data [omapi_array_foreach_index]) { \
251 ((*(array) -> ref) \
252 ((char **)&var, \
253 (array) -> data [omapi_array_foreach_index],\
254 MDL));
255
256#define omapi_array_foreach_end(array, stype, var) \
257 (*(array) -> deref) ((char **)&var, MDL); \
258 } \
259 } \
260 }
261
263 const char *, unsigned, omapi_object_t *);
265 omapi_addr_t *);
266isc_result_t omapi_protocol_listen (omapi_object_t *, unsigned, int);
269 isc_result_t (*)
271 omapi_addr_t *),
272 isc_result_t (*)
276isc_result_t omapi_protocol_send_intro (omapi_object_t *, unsigned, unsigned);
287 omapi_value_t **);
291
292isc_result_t omapi_protocol_destroy (omapi_object_t *, const char *, int);
298 const char *, va_list);
306 omapi_value_t **);
308 const char *, int);
310 const char *, va_list);
315 isc_result_t, unsigned, const char *);
317 const char *, omapi_object_t *,
318 unsigned);
320 unsigned, omapi_object_t *);
321
322isc_result_t omapi_connect (omapi_object_t *, const char *, unsigned);
323isc_result_t omapi_disconnect (omapi_object_t *, int);
331 unsigned *);
337 omapi_value_t **);
338isc_result_t omapi_connection_destroy (omapi_object_t *, const char *, int);
340 const char *, va_list);
346isc_result_t omapi_connection_put_name (omapi_object_t *, const char *);
347isc_result_t omapi_connection_put_string (omapi_object_t *, const char *);
349 omapi_object_t *h);
351 const char *,
352 u_int32_t);
353isc_result_t omapi_listen (omapi_object_t *, unsigned, int);
354isc_result_t omapi_listen_addr (omapi_object_t *,
355 omapi_addr_t *, int);
358isc_result_t omapi_accept (omapi_object_t *);
360 isc_result_t (*)
362 omapi_addr_t *));
368 omapi_value_t **);
369isc_result_t omapi_listener_destroy (omapi_object_t *, const char *, int);
371 const char *, va_list);
375
377 int (*)(omapi_object_t *),
378 int (*)(omapi_object_t *),
379 isc_result_t (*)(omapi_object_t *),
380 isc_result_t (*)(omapi_object_t *),
381 isc_result_t (*)(omapi_object_t *));
383 int (*)(omapi_object_t *),
384 int (*)(omapi_object_t *),
385 isc_result_t (*)(omapi_object_t *),
386 isc_result_t (*)(omapi_object_t *),
387 isc_result_t (*)(omapi_object_t *));
389isc_result_t omapi_dispatch (struct timeval *);
390isc_result_t omapi_wait_for_completion (omapi_object_t *, struct timeval *);
391isc_result_t omapi_one_dispatch (omapi_object_t *, struct timeval *);
397isc_result_t omapi_io_destroy (omapi_object_t *, const char *, int);
398isc_result_t omapi_io_signal_handler (omapi_object_t *, const char *, va_list);
403 const char *, va_list);
404isc_result_t omapi_io_state_foreach (isc_result_t (*func) (omapi_object_t *,
405 void *),
406 void *p);
407
408isc_result_t omapi_generic_new (omapi_object_t **, const char *, int);
414 omapi_value_t **);
415isc_result_t omapi_generic_destroy (omapi_object_t *, const char *, int);
417 const char *, va_list);
422
423isc_result_t omapi_message_new (omapi_object_t **, const char *, int);
429 omapi_value_t **);
430isc_result_t omapi_message_destroy (omapi_object_t *, const char *, int);
432 const char *, va_list);
439
442isc_result_t omapi_auth_key_new (omapi_auth_key_t **, const char *, int);
443isc_result_t omapi_auth_key_destroy (omapi_object_t *, const char *, int);
445isc_result_t omapi_auth_key_lookup_name (omapi_auth_key_t **, const char *);
451 omapi_value_t **);
455
466
468
470isc_result_t omapi_init (void);
472 const char *,
473 isc_result_t (*)
478 isc_result_t (*)
482 omapi_value_t **),
483 isc_result_t (*) (omapi_object_t *,
484 const char *, int),
485 isc_result_t (*) (omapi_object_t *,
486 const char *,
487 va_list),
488 isc_result_t (*) (omapi_object_t *,
491 isc_result_t (*) (omapi_object_t **,
494 isc_result_t (*) (omapi_object_t **,
496 isc_result_t (*) (omapi_object_t *,
498 isc_result_t (*) (omapi_object_t *,
499 const char *, int),
500 isc_result_t (*) (omapi_object_t **,
501 const char *, int),
502 isc_result_t (*) (size_t), size_t,
503 isc_result_t (*) (omapi_object_t *,
504 const char *, int),
505 int);
506isc_result_t omapi_signal (omapi_object_t *, const char *, ...);
507isc_result_t omapi_signal_in (omapi_object_t *, const char *, ...);
512 const char *, omapi_typed_data_t *);
514 const char *, int);
516 const char *, int);
518 const char *, omapi_object_t *);
520 const char *, const char *);
523 omapi_value_t **);
525 const char *, omapi_value_t **);
526isc_result_t omapi_stuff_values (omapi_object_t *,
534int omapi_ds_strcmp (omapi_data_string_t *, const char *);
535int omapi_td_strcmp (omapi_typed_data_t *, const char *);
536int omapi_td_strcasecmp (omapi_typed_data_t *, const char *);
538 omapi_typed_data_t *, const char *, int);
540 const unsigned char *,
541 unsigned, const char *, int);
543 int, const char *, int);
545 unsigned int, const char *, int);
547 omapi_object_t *, const char *, int);
549 omapi_object_t *, const char *, int);
551 const char *, const char *, int);
552isc_result_t omapi_get_int_value (unsigned long *, omapi_typed_data_t *);
553
557
558void * dmalloc (size_t, const char *, int);
559void dfree (void *, const char *, int);
560#if defined (DEBUG_MEMORY_LEAKAGE) || defined (DEBUG_MALLOC_POOL) || \
561 defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT)
562void dmalloc_reuse (void *, const char *, int, int);
563void dmalloc_dump_outstanding (void);
564#else
565#define dmalloc_reuse(x,y,l,z)
566#endif
567#define MDL __FILE__, __LINE__
568#if defined (DEBUG_RC_HISTORY)
569void dump_rc_history (void *);
570void rc_history_next (int);
571#endif
575 size_t, const char *, int);
578 size_t, size_t, const char *, int);
580 omapi_object_t *, const char *, int);
581isc_result_t omapi_object_dereference (omapi_object_t **, const char *, int);
582isc_result_t omapi_typed_data_new (const char *, int, omapi_typed_data_t **,
583 omapi_datatype_t, ...);
586 const char *, int);
588 const char *, int);
590 unsigned, const char *, int);
593 const char *, int);
595 const char *, int);
596isc_result_t omapi_value_new (omapi_value_t **, const char *, int);
597isc_result_t omapi_value_reference (omapi_value_t **,
598 omapi_value_t *, const char *, int);
599isc_result_t omapi_value_dereference (omapi_value_t **, const char *, int);
600isc_result_t omapi_addr_list_new (omapi_addr_list_t **, unsigned,
601 const char *, int);
604 const char *, int);
606 const char *, int);
607
609 omapi_array_deref_t, const char *, int);
610isc_result_t omapi_array_free (omapi_array_t **, const char *, int);
611isc_result_t omapi_array_extend (omapi_array_t *, char *, int *,
612 const char *, int);
613isc_result_t omapi_array_set (omapi_array_t *, void *, int, const char *, int);
614isc_result_t omapi_array_lookup (char **,
615 omapi_array_t *, int, const char *, int);
617#endif /* _OMAPIP_H_ */
isc_boolean_t
Definition data.h:150
isc_result_t omapi_value_dereference(omapi_value_t **, const char *, int)
Definition alloc.c:1060
isc_result_t omapi_protocol_connect(omapi_object_t *, const char *, unsigned, omapi_object_t *)
isc_result_t omapi_connection_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
Definition connection.c:891
isc_result_t omapi_generic_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition generic.c:243
void omapi_print_dmalloc_usage_by_caller(void)
isc_result_t omapi_generic_clear_flags(omapi_object_t *)
Definition generic.c:286
isc_result_t omapi_message_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition message.c:254
isc_result_t omapi_protocol_send_message(omapi_object_t *, omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition protocol.c:148
isc_result_t omapi_protocol_send_open(omapi_object_t *, omapi_object_t *, const char *, omapi_object_t *, unsigned)
Definition protocol.c:1197
isc_result_t omapi_generic_new(omapi_object_t **, const char *, int)
isc_result_t omapi_make_object_value(omapi_value_t **, omapi_data_string_t *, omapi_object_t *, const char *, int)
Definition support.c:742
isc_result_t omapi_connection_put_string(omapi_object_t *, const char *)
Definition buffer.c:689
int omapi_data_string_cmp(omapi_data_string_t *, omapi_data_string_t *)
Definition support.c:562
isc_result_t omapi_one_dispatch(omapi_object_t *, struct timeval *)
Definition dispatch.c:504
isc_result_t omapi_typed_data_reference(omapi_typed_data_t **, omapi_typed_data_t *, const char *, int)
Definition alloc.c:880
omapi_object_type_t * omapi_type_io_object
Definition support.c:35
struct __omapi_object_type_t omapi_object_type_t
isc_result_t omapi_set_boolean_value(omapi_object_t *, omapi_object_t *, const char *, int)
Definition support.c:371
isc_result_t omapi_connect_list(omapi_object_t *, omapi_addr_list_t *, omapi_addr_t *)
Definition connection.c:104
isc_result_t omapi_message_destroy(omapi_object_t *, const char *, int)
Definition message.c:205
isc_result_t omapi_register_io_object(omapi_object_t *, int(*)(omapi_object_t *), int(*)(omapi_object_t *), isc_result_t(*)(omapi_object_t *), isc_result_t(*)(omapi_object_t *), isc_result_t(*)(omapi_object_t *))
Definition dispatch.c:198
isc_result_t omapi_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
Definition support.c:303
isc_result_t omapi_message_process(omapi_object_t *, omapi_object_t *)
Definition message.c:358
isc_result_t omapi_object_dereference(omapi_object_t **, const char *, int)
Definition alloc.c:593
isc_result_t omapi_set_object_value(omapi_object_t *, omapi_object_t *, const char *, omapi_object_t *)
Definition support.c:419
int omapi_connection_writefd(omapi_object_t *)
Definition connection.c:597
isc_result_t omapi_unregister_io_object(omapi_object_t *)
Definition dispatch.c:355
isc_result_t omapi_protocol_listen(omapi_object_t *, unsigned, int)
Definition protocol.c:997
isc_result_t omapi_message_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition message.c:165
isc_result_t omapi_data_string_new(omapi_data_string_t **, unsigned, const char *, int)
Definition alloc.c:950
isc_result_t omapi_value_reference(omapi_value_t **, omapi_value_t *, const char *, int)
Definition alloc.c:1038
const char int
Definition omapip.h:442
isc_result_t omapi_listen_addr(omapi_object_t *, omapi_addr_t *, int)
Definition listener.c:64
int omapi_td_strcasecmp(omapi_typed_data_t *, const char *)
Definition support.c:626
isc_result_t omapi_dispatch(struct timeval *)
Definition dispatch.c:414
isc_result_t omapi_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition support.c:467
isc_result_t omapi_message_register(omapi_object_t *)
Definition message.c:267
isc_result_t omapi_protocol_destroy(omapi_object_t *, const char *, int)
Definition protocol.c:909
isc_result_t omapi_connection_reader(omapi_object_t *)
Definition buffer.c:131
isc_result_t omapi_addr_list_dereference(omapi_addr_list_t **, const char *, int)
Definition alloc.c:1142
isc_result_t omapi_make_value(omapi_value_t **, omapi_data_string_t *, omapi_typed_data_t *, const char *, int)
Definition support.c:651
isc_result_t omapi_io_destroy(omapi_object_t *, const char *, int)
Definition dispatch.c:862
isc_result_t omapi_protocol_ready(omapi_object_t *)
isc_result_t omapi_auth_key_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition auth.c:192
isc_result_t omapi_object_handle(omapi_handle_t *, omapi_object_t *)
Definition handle.c:72
isc_result_t omapi_protocol_listener_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
Definition protocol.c:1088
isc_boolean_t omapi_protocol_authenticated(omapi_object_t *)
Definition protocol.c:953
isc_result_t omapi_addr_list_reference(omapi_addr_list_t **, omapi_addr_list_t *, const char *, int)
Definition alloc.c:1120
#define dmalloc_reuse(x, y, l, z)
Definition omapip.h:565
struct __omapi_object omapi_object_t
Definition omapip.h:39
isc_result_t omapi_connection_writer(omapi_object_t *)
Definition buffer.c:448
int omapi_listener_readfd(omapi_object_t *)
Definition listener.c:201
isc_result_t omapi_protocol_add_auth(omapi_object_t *, omapi_object_t *, omapi_handle_t)
Definition protocol.c:768
isc_result_t omapi_disconnect(omapi_object_t *, int)
Definition connection.c:458
omapi_object_type_t * omapi_type_waiter
Definition support.c:40
isc_result_t omapi_object_create(omapi_object_t **, omapi_object_t *, omapi_object_type_t *)
Definition support.c:521
isc_result_t omapi_init(void)
Definition support.c:61
omapi_object_type_t * omapi_type_auth_key
Definition support.c:43
isc_result_t omapi_connection_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition connection.c:960
isc_result_t omapi_protocol_send_intro(omapi_object_t *, unsigned, unsigned)
Definition protocol.c:105
isc_result_t omapi_listener_signal_handler(omapi_object_t *, const char *, va_list)
Definition listener.c:461
isc_result_t omapi_io_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
Definition dispatch.c:826
isc_result_t omapi_set_value_str(omapi_object_t *, omapi_object_t *, const char *, omapi_typed_data_t *)
Definition support.c:352
isc_result_t omapi_handle_td_lookup(omapi_object_t **, omapi_typed_data_t *)
Definition handle.c:282
isc_result_t omapi_array_extend(omapi_array_t *, char *, int *, const char *, int)
Definition array.c:74
isc_result_t omapi_connection_reaper(omapi_object_t *)
Definition connection.c:744
omapi_object_type_t * omapi_type_remote
Definition support.c:41
isc_result_t omapi_auth_key_lookup_name(omapi_auth_key_t **, const char *)
Definition auth.c:121
isc_result_t omapi_listener_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
Definition listener.c:413
int omapi_td_strcmp(omapi_typed_data_t *, const char *)
Definition support.c:601
isc_result_t omapi_connection_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t omapi_protocol_accept(omapi_object_t *)
isc_result_t omapi_auth_key_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
Definition auth.c:131
isc_result_t omapi_generic_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition generic.c:168
isc_result_t omapi_connect(omapi_object_t *, const char *, unsigned)
isc_result_t omapi_make_uint_value(omapi_value_t **, omapi_data_string_t *, unsigned int, const char *, int)
Definition support.c:734
#define OMAPI_OBJECT_ALLOC_DECL(name, stype, type)
Definition omapip.h:179
isc_result_t omapi_object_type_register(omapi_object_type_t **, const char *, isc_result_t(*)(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *), isc_result_t(*)(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **), isc_result_t(*)(omapi_object_t *, const char *, int), isc_result_t(*)(omapi_object_t *, const char *, va_list), isc_result_t(*)(omapi_object_t *, omapi_object_t *, omapi_object_t *), isc_result_t(*)(omapi_object_t **, omapi_object_t *, omapi_object_t *), isc_result_t(*)(omapi_object_t **, omapi_object_t *), isc_result_t(*)(omapi_object_t *, omapi_object_t *), isc_result_t(*)(omapi_object_t *, const char *, int), isc_result_t(*)(omapi_object_t **, const char *, int), isc_result_t(*)(size_t), size_t, isc_result_t(*)(omapi_object_t *, const char *, int), int)
Definition support.c:193
isc_result_t omapi_protocol_send_status(omapi_object_t *, omapi_object_t *, isc_result_t, unsigned, const char *)
Definition protocol.c:1140
isc_result_t omapi_protocol_listener_destroy(omapi_object_t *, const char *, int)
Definition protocol.c:1116
omapi_datatype_t
Definition omapip.h:41
@ omapi_datatype_string
Definition omapip.h:43
@ omapi_datatype_object
Definition omapip.h:45
@ omapi_datatype_int
Definition omapip.h:42
@ omapi_datatype_data
Definition omapip.h:44
isc_result_t omapi_array_set(omapi_array_t *, void *, int, const char *, int)
Definition array.c:87
isc_result_t omapi_typed_data_dereference(omapi_typed_data_t **, const char *, int)
Definition alloc.c:901
int omapi_connection_readfd(omapi_object_t *)
Definition connection.c:580
omapi_object_type_t * omapi_type_generic
Definition support.c:37
isc_result_t omapi_wait_for_completion(omapi_object_t *, struct timeval *)
Definition dispatch.c:424
isc_result_t omapi_protocol_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition protocol.c:884
isc_result_t omapi_make_string_value(omapi_value_t **, omapi_data_string_t *, const char *, const char *, int)
Definition support.c:807
isc_result_t omapi_connection_destroy(omapi_object_t *, const char *, int)
isc_result_t omapi_object_reference(omapi_object_t **, omapi_object_t *, const char *, int)
Definition alloc.c:571
isc_result_t omapi_protocol_lookup_auth(omapi_object_t **, omapi_object_t *, omapi_handle_t)
Definition protocol.c:828
isc_result_t omapi_protocol_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
Definition protocol.c:846
isc_result_t omapi_connection_signal_handler(omapi_object_t *, const char *, va_list)
omapi_object_type_t * omapi_type_protocol
Definition support.c:38
isc_result_t omapi_listener_accept(omapi_object_t *)
isc_result_t omapi_io_state_foreach(isc_result_t(*func)(omapi_object_t *, void *), void *p)
calls a given function on every object
Definition dispatch.c:967
isc_result_t omapi_array_free(omapi_array_t **, const char *, int)
Definition array.c:53
isc_result_t omapi_data_string_dereference(omapi_data_string_t **, const char *, int)
Definition alloc.c:988
isc_result_t omapi_protocol_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition protocol.c:937
isc_result_t omapi_array_lookup(char **, omapi_array_t *, int, const char *, int)
Definition array.c:146
isc_result_t omapi_io_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition dispatch.c:909
isc_result_t omapi_signal_in(omapi_object_t *, const char *,...)
Definition support.c:285
isc_result_t omapi_io_signal_handler(omapi_object_t *, const char *, va_list)
Definition dispatch.c:894
isc_result_t omapi_signal(omapi_object_t *, const char *,...)
Definition support.c:267
isc_result_t omapi_reregister_io_object(omapi_object_t *, int(*)(omapi_object_t *), int(*)(omapi_object_t *), isc_result_t(*)(omapi_object_t *), isc_result_t(*)(omapi_object_t *), isc_result_t(*)(omapi_object_t *))
Definition dispatch.c:305
isc_result_t omapi_connection_write_typed_data(omapi_object_t *, omapi_typed_data_t *)
Definition buffer.c:632
isc_result_t omapi_handle_lookup(omapi_object_t **, omapi_handle_t)
Definition handle.c:238
isc_result_t omapi_object_update(omapi_object_t *, omapi_object_t *, omapi_object_t *, omapi_handle_t)
Definition support.c:529
isc_result_t omapi_listener_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition listener.c:476
isc_result_t omapi_addr_list_new(omapi_addr_list_t **, unsigned, const char *, int)
Definition alloc.c:1104
unsigned int omapi_handle_t
Definition omapip.h:36
int omapi_ds_strcmp(omapi_data_string_t *, const char *)
Definition support.c:581
isc_result_t omapi_io_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition dispatch.c:840
void omapi_type_relinquish(void)
isc_result_t(* omapi_array_deref_t)(char **, const char *, int)
Definition omapip.h:186
isc_result_t omapi_listener_configure_security(omapi_object_t *, isc_result_t(*)(omapi_object_t *, omapi_addr_t *))
Definition listener.c:397
isc_result_t omapi_make_handle_value(omapi_value_t **, omapi_data_string_t *, omapi_object_t *, const char *, int)
Definition support.c:772
omapi_object_type_t * omapi_type_connection
Definition support.c:33
isc_result_t omapi_set_string_value(omapi_object_t *, omapi_object_t *, const char *, const char *)
Definition support.c:443
isc_result_t omapi_connection_output_auth_length(omapi_object_t *, unsigned *)
Definition connection.c:876
isc_result_t omapi_typed_data_new(const char *, int, omapi_typed_data_t **, omapi_datatype_t,...)
Definition alloc.c:803
isc_result_t omapi_protocol_listener_stuff(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition protocol.c:1127
isc_result_t omapi_protocol_signal_handler(omapi_object_t *, const char *, va_list)
Definition protocol.c:343
isc_result_t omapi_message_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
Definition message.c:79
isc_result_t omapi_generic_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
Definition generic.c:44
isc_result_t omapi_message_unregister(omapi_object_t *)
Definition message.c:295
void * dmalloc(size_t, const char *, int)
Definition alloc.c:57
isc_result_t omapi_generic_destroy(omapi_object_t *, const char *, int)
Definition generic.c:202
isc_result_t omapi_data_string_reference(omapi_data_string_t **, omapi_data_string_t *, const char *, int)
Definition alloc.c:967
isc_result_t omapi_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition support.c:508
omapi_object_type_t * omapi_type_listener
Definition support.c:34
#define OMAPI_ARRAY_TYPE_DECL(name, stype)
Definition omapip.h:232
isc_result_t omapi_array_allocate(omapi_array_t **, omapi_array_ref_t, omapi_array_deref_t, const char *, int)
Definition array.c:35
isc_result_t omapi_connection_put_named_uint32(omapi_object_t *, const char *, u_int32_t)
Definition buffer.c:726
isc_result_t omapi_protocol_listener_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition protocol.c:1102
void dfree(void *, const char *, int)
Definition alloc.c:145
isc_result_t omapi_auth_key_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition auth.c:224
isc_result_t omapi_get_value_str(omapi_object_t *, omapi_object_t *, const char *, omapi_value_t **)
Definition support.c:482
isc_result_t omapi_connection_put_handle(omapi_object_t *c, omapi_object_t *h)
Definition buffer.c:709
isc_result_t omapi_get_int_value(unsigned long *, omapi_typed_data_t *)
Definition support.c:835
isc_result_t omapi_generic_signal_handler(omapi_object_t *, const char *, va_list)
Definition generic.c:228
isc_result_t omapi_auth_key_enter(omapi_auth_key_t *)
Definition auth.c:73
struct auth_key omapi_auth_key_t
isc_result_t omapi_accept(omapi_object_t *)
Definition listener.c:213
isc_result_t omapi_object_initialize(omapi_object_t *, omapi_object_type_t *, size_t, size_t, const char *, int)
Definition alloc.c:559
omapi_object_type_t * omapi_type_protocol_listener
Definition support.c:39
isc_result_t omapi_message_signal_handler(omapi_object_t *, const char *, va_list)
Definition message.c:228
isc_result_t omapi_listen(omapi_object_t *, unsigned, int)
isc_result_t omapi_auth_key_destroy(omapi_object_t *, const char *, int)
Definition auth.c:49
isc_result_t omapi_connection_put_name(omapi_object_t *, const char *)
Definition buffer.c:678
isc_result_t omapi_listener_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition listener.c:427
isc_result_t omapi_protocol_configure_security(omapi_object_t *, isc_result_t(*)(omapi_object_t *, omapi_addr_t *), isc_result_t(*)(omapi_object_t *, omapi_auth_key_t *))
Definition protocol.c:966
isc_result_t omapi_connection_connect(omapi_object_t *)
Definition connection.c:606
isc_result_t omapi_object_allocate(omapi_object_t **, omapi_object_type_t *, size_t, const char *, int)
Definition alloc.c:515
isc_result_t(* omapi_array_ref_t)(char **, char *, const char *, int)
Definition omapip.h:185
isc_result_t omapi_protocol_send_update(omapi_object_t *, omapi_object_t *, unsigned, omapi_object_t *)
Definition protocol.c:1257
isc_result_t omapi_message_new(omapi_object_t **, const char *, int)
omapi_object_type_t * omapi_type_message
Definition support.c:42
isc_result_t omapi_waiter_signal_handler(omapi_object_t *, const char *, va_list)
Definition dispatch.c:922
isc_result_t omapi_listener_destroy(omapi_object_t *, const char *, int)
Definition listener.c:441
omapi_object_type_t * omapi_object_types
Definition support.c:45
isc_result_t omapi_make_int_value(omapi_value_t **, omapi_data_string_t *, int, const char *, int)
Definition support.c:709
isc_result_t omapi_protocol_listener_signal(omapi_object_t *, const char *, va_list)
Definition protocol.c:1032
isc_result_t omapi_make_const_value(omapi_value_t **, omapi_data_string_t *, const unsigned char *, unsigned, const char *, int)
Definition support.c:679
isc_result_t omapi_value_new(omapi_value_t **, const char *, int)
Definition alloc.c:1026
isc_result_t omapi_set_int_value(omapi_object_t *, omapi_object_t *, const char *, int)
Definition support.c:395
struct __omapi_object_type_t * next
Definition omapip.h:95
isc_result_t(* allocator)(omapi_object_t **, const char *, int)
Definition omapip.h:113
isc_result_t(* set_value)(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
Definition omapip.h:97
isc_result_t(* signal_handler)(omapi_object_t *, const char *, va_list)
Definition omapip.h:104
isc_result_t(* create)(omapi_object_t **, omapi_object_t *)
Definition omapip.h:110
isc_result_t(* get_value)(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition omapip.h:100
const char * name
Definition omapip.h:94
isc_result_t(* stuff_values)(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition omapip.h:106
isc_result_t(* freer)(omapi_object_t *, const char *, int)
Definition omapip.h:112
isc_result_t(* sizer)(size_t)
Definition omapip.h:114
isc_result_t(* lookup)(omapi_object_t **, omapi_object_t *, omapi_object_t *)
Definition omapip.h:108
isc_result_t(* destroy)(omapi_object_t *, const char *, int)
Definition omapip.h:103
isc_result_t(* remove)(omapi_object_t *, omapi_object_t *)
Definition omapip.h:111
isc_result_t(* initialize)(omapi_object_t *, const char *, int)
Definition omapip.h:117
char * name
Definition omapip.h:149
OMAPI_OBJECT_PREAMBLE
Definition omapip.h:148
dns_tsec_t * tsec_key
Definition omapip.h:152
omapi_data_string_t * key
Definition omapip.h:151
char * algorithm
Definition omapip.h:150
Definition tree.h:60
unsigned count
Definition omapip.h:143
omapi_addr_t * addresses
Definition omapip.h:144
unsigned char address[16]
Definition omapip.h:137
unsigned addrlen
Definition omapip.h:136
unsigned addrtype
Definition omapip.h:135
unsigned port
Definition omapip.h:138
omapi_array_deref_t deref
Definition omapip.h:192
char ** data
Definition omapip.h:190
omapi_array_ref_t ref
Definition omapip.h:191
unsigned char value[1]
Definition omapip.h:84
isc_result_t(* dereference)(void *, const char *, int)
Definition omapip.h:70
omapi_datatype_t type
Definition omapip.h:50
unsigned char value[1]
Definition omapip.h:57
isc_result_t(* reference)(void *, void *, const char *, int)
Definition omapip.h:68
omapi_object_t * object
Definition omapip.h:62
unsigned len
Definition omapip.h:53
omapi_data_string_t * name
Definition omapip.h:89
omapi_typed_data_t * value
Definition omapip.h:90