ISC DHCP  4.3.6
A reference DHCPv4 and DHCPv6 implementation
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) 2009,2013-2014,2016 by Internet Systems Consortium, Inc. ("ISC")
7  * Copyright (c) 2004,2007 by Internet Systems Consortium, Inc. ("ISC")
8  * Copyright (c) 1996-2003 by Internet Software Consortium
9  *
10  * Permission to use, copy, modify, and distribute this software for any
11  * purpose with or without fee is hereby granted, provided that the above
12  * copyright notice and this permission notice appear in all copies.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
15  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
16  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
17  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
18  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
19  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
20  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21  *
22  * Internet Systems Consortium, Inc.
23  * 950 Charter Street
24  * Redwood City, CA 94063
25  * <info@isc.org>
26  * https://www.isc.org/
27  *
28  */
29 
30 #ifndef _OMAPIP_H_
31 #define _OMAPIP_H_
32 #include "result.h"
33 #include <stdarg.h>
34 
35 #include <dns/tsec.h>
36 
37 typedef unsigned int omapi_handle_t;
38 
39 struct __omapi_object;
41 
42 typedef enum {
48 
49 typedef struct {
50  int refcnt;
52  union {
53  struct {
54  unsigned len;
55 #define OMAPI_TYPED_DATA_NOBUFFER_LEN (sizeof (int) + \
56  sizeof (omapi_datatype_t) + \
57  sizeof (int))
58  unsigned char value [1];
59  } buffer;
60 #define OMAPI_TYPED_DATA_OBJECT_LEN (sizeof (int) + \
61  sizeof (omapi_datatype_t) + \
62  sizeof (omapi_object_t *))
64 #define OMAPI_TYPED_DATA_REF_LEN (sizeof (int) + \
65  sizeof (omapi_datatype_t) + \
66  3 * sizeof (void *))
67  struct {
68  void *ptr;
69  isc_result_t (*reference) (void *,
70  void *, const char *, int);
71  isc_result_t (*dereference) (void *,
72  const char *, int);
73  } ref;
74 #define OMAPI_TYPED_DATA_INT_LEN (sizeof (int) + \
75  sizeof (omapi_datatype_t) + \
76  sizeof (int))
77  int integer;
78  } u;
80 
81 typedef struct {
82  int refcnt;
83  unsigned len;
84 #define OMAPI_DATA_STRING_EMPTY_SIZE (2 * sizeof (int))
85  unsigned char value [1];
87 
88 typedef struct {
89  int refcnt;
93 
94 typedef struct __omapi_object_type_t {
95  const char *name;
97 
98  isc_result_t (*set_value) (omapi_object_t *, omapi_object_t *,
101  isc_result_t (*get_value) (omapi_object_t *,
102  omapi_object_t *,
104  isc_result_t (*destroy) (omapi_object_t *, const char *, int);
105  isc_result_t (*signal_handler) (omapi_object_t *,
106  const char *, va_list);
107  isc_result_t (*stuff_values) (omapi_object_t *,
109  isc_result_t (*lookup) (omapi_object_t **, omapi_object_t *,
110  omapi_object_t *);
111  isc_result_t (*create) (omapi_object_t **, omapi_object_t *);
112  isc_result_t (*remove) (omapi_object_t *, omapi_object_t *);
113  isc_result_t (*freer) (omapi_object_t *, const char *, int);
114  isc_result_t (*allocator) (omapi_object_t **, const char *, int);
115  isc_result_t (*sizer) (size_t);
116  size_t size;
117  int rc_flag;
118  isc_result_t (*initialize) (omapi_object_t *, const char *, int);
120 
121 #define OMAPI_OBJECT_PREAMBLE \
122  omapi_object_type_t *type; \
123  int refcnt; \
124  omapi_handle_t handle; \
125  omapi_object_t *outer, *inner
126 
127 /* The omapi handle structure. */
130 };
131 
132 /* The port on which applications should listen for OMAPI connections. */
133 #define OMAPI_PROTOCOL_PORT 7911
134 
135 typedef struct {
136  unsigned addrtype;
137  unsigned addrlen;
138  unsigned char address [16];
139  unsigned port;
140 } omapi_addr_t;
141 
142 typedef struct {
143  int refcnt;
144  unsigned count;
147 
148 typedef struct auth_key {
150  char *name;
151  char *algorithm;
153  dns_tsec_t *tsec_key;
155 
156 #define OMAPI_CREATE 1
157 #define OMAPI_UPDATE 2
158 #define OMAPI_EXCL 4
159 #define OMAPI_NOTIFY_PROTOCOL 8
160 
161 #define OMAPI_OBJECT_ALLOC(name, stype, type) \
162 isc_result_t name##_allocate (stype **p, const char *file, int line) \
163 { \
164  return omapi_object_allocate ((omapi_object_t **)p, \
165  type, 0, file, line); \
166 } \
167  \
168 isc_result_t name##_reference (stype **pptr, stype *ptr, \
169  const char *file, int line) \
170 { \
171  return omapi_object_reference ((omapi_object_t **)pptr, \
172  (omapi_object_t *)ptr, file, line); \
173 } \
174  \
175 isc_result_t name##_dereference (stype **ptr, const char *file, int line) \
176 { \
177  return omapi_object_dereference ((omapi_object_t **)ptr, file, line); \
178 }
179 
180 #define OMAPI_OBJECT_ALLOC_DECL(name, stype, type) \
181 isc_result_t name##_allocate (stype **p, const char *file, int line); \
182 isc_result_t name##_reference (stype **pptr, stype *ptr, \
183  const char *file, int line); \
184 isc_result_t name##_dereference (stype **ptr, const char *file, int line);
185 
186 typedef isc_result_t (*omapi_array_ref_t) (char **, char *, const char *, int);
187 typedef isc_result_t (*omapi_array_deref_t) (char **, const char *, int);
188 
189 /* An extensible array type. */
190 typedef struct {
191  char **data;
194  int count;
195  int max;
196 } omapi_array_t;
197 
198 #define OMAPI_ARRAY_TYPE(name, stype) \
199 isc_result_t name##_array_allocate (omapi_array_t **p, \
200  const char *file, int line) \
201 { \
202  return (omapi_array_allocate \
203  (p, \
204  (omapi_array_ref_t)name##_reference, \
205  (omapi_array_deref_t)name##_dereference, \
206  file, line)); \
207 } \
208  \
209 isc_result_t name##_array_free (omapi_array_t **p, \
210  const char *file, int line) \
211 { \
212  return omapi_array_free (p, file, line); \
213 } \
214  \
215 isc_result_t name##_array_extend (omapi_array_t *pptr, stype *ptr, int *index,\
216  const char *file, int line) \
217 { \
218  return omapi_array_extend (pptr, (char *)ptr, index, file, line); \
219 } \
220  \
221 isc_result_t name##_array_set (omapi_array_t *pptr, stype *ptr, int index, \
222  const char *file, int line) \
223 { \
224  return omapi_array_set (pptr, (char *)ptr, index, file, line); \
225 } \
226  \
227 isc_result_t name##_array_lookup (stype **ptr, omapi_array_t *pptr, \
228  int index, const char *file, int line) \
229 { \
230  return omapi_array_lookup ((char **)ptr, pptr, index, file, line); \
231 }
232 
233 #define OMAPI_ARRAY_TYPE_DECL(name, stype) \
234 isc_result_t name##_array_allocate (omapi_array_t **, const char *, int); \
235 isc_result_t name##_array_free (omapi_array_t **, const char *, int); \
236 isc_result_t name##_array_extend (omapi_array_t *, stype *, int *, \
237  const char *, int); \
238 isc_result_t name##_array_set (omapi_array_t *, \
239  stype *, int, const char *, int); \
240 isc_result_t name##_array_lookup (stype **, \
241  omapi_array_t *, int, const char *, int)
242 
243 #define omapi_array_foreach_begin(array, stype, var) \
244  { \
245  int omapi_array_foreach_index; \
246  stype *var = (stype *)0; \
247  for (omapi_array_foreach_index = 0; \
248  array && \
249  omapi_array_foreach_index < (array) -> count; \
250  omapi_array_foreach_index++) { \
251  if ((array) -> data [omapi_array_foreach_index]) { \
252  ((*(array) -> ref) \
253  ((char **)&var, \
254  (array) -> data [omapi_array_foreach_index],\
255  MDL));
256 
257 #define omapi_array_foreach_end(array, stype, var) \
258  (*(array) -> deref) ((char **)&var, MDL); \
259  } \
260  } \
261  }
262 
263 isc_result_t omapi_protocol_connect (omapi_object_t *,
264  const char *, unsigned, omapi_object_t *);
266  omapi_addr_t *);
267 isc_result_t omapi_protocol_listen (omapi_object_t *, unsigned, int);
270  isc_result_t (*)
271  (omapi_object_t *,
272  omapi_addr_t *),
273  isc_result_t (*)
274  (omapi_object_t *,
275  omapi_auth_key_t *));
276 isc_result_t omapi_protocol_accept (omapi_object_t *);
277 isc_result_t omapi_protocol_send_intro (omapi_object_t *, unsigned, unsigned);
278 isc_result_t omapi_protocol_ready (omapi_object_t *);
288  omapi_value_t **);
290  omapi_object_t *,
291  omapi_object_t *);
292 
293 isc_result_t omapi_protocol_destroy (omapi_object_t *, const char *, int);
295  omapi_object_t *,
296  omapi_object_t *,
297  omapi_object_t *);
299  const char *, va_list);
301  omapi_object_t *,
305  omapi_object_t *,
307  omapi_value_t **);
309  const char *, int);
311  const char *, va_list);
313  omapi_object_t *,
314  omapi_object_t *);
316  isc_result_t, unsigned, const char *);
318  const char *, omapi_object_t *,
319  unsigned);
321  unsigned, omapi_object_t *);
322 
323 isc_result_t omapi_connect (omapi_object_t *, const char *, unsigned);
324 isc_result_t omapi_disconnect (omapi_object_t *, int);
328 isc_result_t omapi_connection_reader (omapi_object_t *);
329 isc_result_t omapi_connection_writer (omapi_object_t *);
330 isc_result_t omapi_connection_reaper (omapi_object_t *);
332  unsigned *);
338  omapi_value_t **);
339 isc_result_t omapi_connection_destroy (omapi_object_t *, const char *, int);
341  const char *, va_list);
343  omapi_object_t *,
344  omapi_object_t *);
347 isc_result_t omapi_connection_put_name (omapi_object_t *, const char *);
348 isc_result_t omapi_connection_put_string (omapi_object_t *, const char *);
350  omapi_object_t *h);
352  const char *,
353  u_int32_t);
354 isc_result_t omapi_listen (omapi_object_t *, unsigned, int);
355 isc_result_t omapi_listen_addr (omapi_object_t *,
356  omapi_addr_t *, int);
357 isc_result_t omapi_listener_accept (omapi_object_t *);
359 isc_result_t omapi_accept (omapi_object_t *);
361  isc_result_t (*)
362  (omapi_object_t *,
363  omapi_addr_t *));
369  omapi_value_t **);
370 isc_result_t omapi_listener_destroy (omapi_object_t *, const char *, int);
372  const char *, va_list);
374  omapi_object_t *,
375  omapi_object_t *);
376 
378  int (*)(omapi_object_t *),
379  int (*)(omapi_object_t *),
380  isc_result_t (*)(omapi_object_t *),
381  isc_result_t (*)(omapi_object_t *),
382  isc_result_t (*)(omapi_object_t *));
384  int (*)(omapi_object_t *),
385  int (*)(omapi_object_t *),
386  isc_result_t (*)(omapi_object_t *),
387  isc_result_t (*)(omapi_object_t *),
388  isc_result_t (*)(omapi_object_t *));
390 isc_result_t omapi_dispatch (struct timeval *);
391 isc_result_t omapi_wait_for_completion (omapi_object_t *, struct timeval *);
392 isc_result_t omapi_one_dispatch (omapi_object_t *, struct timeval *);
398 isc_result_t omapi_io_destroy (omapi_object_t *, const char *, int);
399 isc_result_t omapi_io_signal_handler (omapi_object_t *, const char *, va_list);
400 isc_result_t omapi_io_stuff_values (omapi_object_t *,
401  omapi_object_t *,
402  omapi_object_t *);
404  const char *, va_list);
405 isc_result_t omapi_io_state_foreach (isc_result_t (*func) (omapi_object_t *,
406  void *),
407  void *p);
408 
409 isc_result_t omapi_generic_new (omapi_object_t **, const char *, int);
415  omapi_value_t **);
416 isc_result_t omapi_generic_destroy (omapi_object_t *, const char *, int);
418  const char *, va_list);
420  omapi_object_t *,
421  omapi_object_t *);
423 
424 isc_result_t omapi_message_new (omapi_object_t **, const char *, int);
430  omapi_value_t **);
431 isc_result_t omapi_message_destroy (omapi_object_t *, const char *, int);
433  const char *, va_list);
435  omapi_object_t *,
436  omapi_object_t *);
437 isc_result_t omapi_message_register (omapi_object_t *);
440 
441 OMAPI_OBJECT_ALLOC_DECL (omapi_auth_key,
443 isc_result_t omapi_auth_key_new (omapi_auth_key_t **, const char *, int);
444 isc_result_t omapi_auth_key_destroy (omapi_object_t *, const char *, int);
445 isc_result_t omapi_auth_key_enter (omapi_auth_key_t *);
446 isc_result_t omapi_auth_key_lookup_name (omapi_auth_key_t **, const char *);
447 isc_result_t omapi_auth_key_lookup (omapi_object_t **,
448  omapi_object_t *,
449  omapi_object_t *);
452  omapi_value_t **);
454  omapi_object_t *,
455  omapi_object_t *);
456 
467 
469 
470 void omapi_type_relinquish (void);
471 isc_result_t omapi_init (void);
473  const char *,
474  isc_result_t (*)
475  (omapi_object_t *,
476  omapi_object_t *,
479  isc_result_t (*)
480  (omapi_object_t *,
481  omapi_object_t *,
483  omapi_value_t **),
484  isc_result_t (*) (omapi_object_t *,
485  const char *, int),
486  isc_result_t (*) (omapi_object_t *,
487  const char *,
488  va_list),
489  isc_result_t (*) (omapi_object_t *,
490  omapi_object_t *,
491  omapi_object_t *),
492  isc_result_t (*) (omapi_object_t **,
493  omapi_object_t *,
494  omapi_object_t *),
495  isc_result_t (*) (omapi_object_t **,
496  omapi_object_t *),
497  isc_result_t (*) (omapi_object_t *,
498  omapi_object_t *),
499  isc_result_t (*) (omapi_object_t *,
500  const char *, int),
501  isc_result_t (*) (omapi_object_t **,
502  const char *, int),
503  isc_result_t (*) (size_t), size_t,
504  isc_result_t (*) (omapi_object_t *,
505  const char *, int),
506  int);
507 isc_result_t omapi_signal (omapi_object_t *, const char *, ...);
508 isc_result_t omapi_signal_in (omapi_object_t *, const char *, ...);
513  const char *, omapi_typed_data_t *);
515  const char *, int);
517  const char *, int);
519  const char *, omapi_object_t *);
521  const char *, const char *);
524  omapi_value_t **);
526  const char *, omapi_value_t **);
527 isc_result_t omapi_stuff_values (omapi_object_t *,
528  omapi_object_t *,
529  omapi_object_t *);
535 int omapi_ds_strcmp (omapi_data_string_t *, const char *);
536 int omapi_td_strcmp (omapi_typed_data_t *, const char *);
537 int omapi_td_strcasecmp (omapi_typed_data_t *, const char *);
539  omapi_typed_data_t *, const char *, int);
541  const unsigned char *,
542  unsigned, const char *, int);
544  int, const char *, int);
546  unsigned int, const char *, int);
548  omapi_object_t *, const char *, int);
550  omapi_object_t *, const char *, int);
552  const char *, const char *, int);
553 isc_result_t omapi_get_int_value (unsigned long *, omapi_typed_data_t *);
554 
558 
559 void * dmalloc (size_t, const char *, int);
560 void dfree (void *, const char *, int);
561 #if defined (DEBUG_MEMORY_LEAKAGE) || defined (DEBUG_MALLOC_POOL) || \
562  defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT)
563 void dmalloc_reuse (void *, const char *, int, int);
564 void dmalloc_dump_outstanding (void);
565 #else
566 #define dmalloc_reuse(x,y,l,z)
567 #endif
568 #define MDL __FILE__, __LINE__
569 #if defined (DEBUG_RC_HISTORY)
570 void dump_rc_history (void *);
571 void rc_history_next (int);
572 #endif
574 isc_result_t omapi_object_allocate (omapi_object_t **,
576  size_t, const char *, int);
579  size_t, size_t, const char *, int);
580 isc_result_t omapi_object_reference (omapi_object_t **,
581  omapi_object_t *, const char *, int);
582 isc_result_t omapi_object_dereference (omapi_object_t **, const char *, int);
583 isc_result_t omapi_typed_data_new (const char *, int, omapi_typed_data_t **,
584  omapi_datatype_t, ...);
587  const char *, int);
589  const char *, int);
591  unsigned, const char *, int);
594  const char *, int);
596  const char *, int);
597 isc_result_t omapi_value_new (omapi_value_t **, const char *, int);
598 isc_result_t omapi_value_reference (omapi_value_t **,
599  omapi_value_t *, const char *, int);
600 isc_result_t omapi_value_dereference (omapi_value_t **, const char *, int);
601 isc_result_t omapi_addr_list_new (omapi_addr_list_t **, unsigned,
602  const char *, int);
605  const char *, int);
607  const char *, int);
608 
610  omapi_array_deref_t, const char *, int);
611 isc_result_t omapi_array_free (omapi_array_t **, const char *, int);
612 isc_result_t omapi_array_extend (omapi_array_t *, char *, int *,
613  const char *, int);
614 isc_result_t omapi_array_set (omapi_array_t *, void *, int, const char *, int);
615 isc_result_t omapi_array_lookup (char **,
616  omapi_array_t *, int, const char *, int);
618 #endif /* _OMAPIP_H_ */
char * algorithm
Definition: omapip.h:151
unsigned len
Definition: omapip.h:83
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:306
isc_result_t omapi_typed_data_new(const char *, int, omapi_typed_data_t **, omapi_datatype_t,...)
Definition: alloc.c:803
omapi_array_ref_t ref
Definition: omapip.h:192
isc_result_t omapi_set_string_value(omapi_object_t *, omapi_object_t *, const char *, const char *)
Definition: support.c:444
unsigned port
Definition: omapip.h:139
isc_result_t omapi_protocol_listen(omapi_object_t *, unsigned, int)
Definition: protocol.c:998
isc_result_t omapi_connection_reader(omapi_object_t *)
Definition: buffer.c:132
isc_result_t(* omapi_array_deref_t)(char **, const char *, int)
Definition: omapip.h:187
omapi_object_type_t * omapi_type_connection
Definition: support.c:34
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:199
isc_result_t omapi_value_reference(omapi_value_t **, omapi_value_t *, const char *, int)
Definition: alloc.c:1038
isc_result_t omapi_make_int_value(omapi_value_t **, omapi_data_string_t *, int, const char *, int)
Definition: support.c:710
isc_result_t(* get_value)(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition: omapip.h:101
isc_result_t omapi_message_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition: message.c:254
isc_result_t omapi_generic_clear_flags(omapi_object_t *)
Definition: generic.c:286
isc_result_t omapi_message_new(omapi_object_t **, const char *, int)
isc_result_t omapi_connection_put_handle(omapi_object_t *c, omapi_object_t *h)
Definition: buffer.c:710
isc_result_t omapi_protocol_listener_stuff(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition: protocol.c:1128
isc_result_t omapi_object_reference(omapi_object_t **, omapi_object_t *, const char *, int)
Definition: alloc.c:571
isc_result_t omapi_io_signal_handler(omapi_object_t *, const char *, va_list)
Definition: dispatch.c:838
isc_result_t omapi_data_string_dereference(omapi_data_string_t **, const char *, int)
Definition: alloc.c:988
isc_result_t omapi_array_set(omapi_array_t *, void *, int, const char *, int)
Definition: array.c:87
unsigned len
Definition: omapip.h:54
isc_result_t omapi_message_register(omapi_object_t *)
Definition: message.c:267
struct __omapi_object_type_t * next
Definition: omapip.h:96
isc_result_t omapi_protocol_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition: protocol.c:885
isc_result_t omapi_connection_destroy(omapi_object_t *, const char *, int)
Definition: connection.c:1056
isc_result_t omapi_connection_put_named_uint32(omapi_object_t *, const char *, u_int32_t)
Definition: buffer.c:727
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_dispatch(struct timeval *)
Definition: dispatch.c:415
isc_result_t omapi_message_signal_handler(omapi_object_t *, const char *, va_list)
Definition: message.c:228
omapi_typed_data_t * value
Definition: omapip.h:91
int omapi_data_string_cmp(omapi_data_string_t *, omapi_data_string_t *)
Definition: support.c:563
isc_result_t omapi_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
Definition: support.c:304
void omapi_type_relinquish(void)
isc_result_t omapi_signal_in(omapi_object_t *, const char *,...)
Definition: support.c:286
int omapi_td_strcasecmp(omapi_typed_data_t *, const char *)
Definition: support.c:627
isc_result_t omapi_auth_key_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition: auth.c:192
unsigned count
Definition: omapip.h:144
isc_result_t omapi_auth_key_lookup_name(omapi_auth_key_t **, const char *)
Definition: auth.c:121
int omapi_listener_readfd(omapi_object_t *)
Definition: listener.c:201
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_array_lookup(char **, omapi_array_t *, int, const char *, int)
Definition: array.c:146
dns_tsec_t * tsec_key
Definition: omapip.h:153
isc_result_t omapi_protocol_listener_destroy(omapi_object_t *, const char *, int)
Definition: protocol.c:1117
isc_result_t omapi_set_object_value(omapi_object_t *, omapi_object_t *, const char *, omapi_object_t *)
Definition: support.c:420
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_connection_reaper(omapi_object_t *)
Definition: connection.c:743
isc_result_t omapi_protocol_send_status(omapi_object_t *, omapi_object_t *, isc_result_t, unsigned, const char *)
Definition: protocol.c:1141
isc_result_t omapi_data_string_reference(omapi_data_string_t **, omapi_data_string_t *, const char *, int)
Definition: alloc.c:967
omapi_datatype_t type
Definition: omapip.h:51
isc_result_t omapi_protocol_ready(omapi_object_t *)
isc_result_t omapi_protocol_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition: protocol.c:938
isc_result_t omapi_message_unregister(omapi_object_t *)
Definition: message.c:295
isc_result_t omapi_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition: support.c:468
isc_result_t omapi_value_new(omapi_value_t **, const char *, int)
Definition: alloc.c:1026
omapi_object_t * object
Definition: omapip.h:63
isc_result_t omapi_listen_addr(omapi_object_t *, omapi_addr_t *, int)
Definition: listener.c:64
void omapi_print_dmalloc_usage_by_caller(void)
isc_result_t omapi_protocol_add_auth(omapi_object_t *, omapi_object_t *, omapi_handle_t)
Definition: protocol.c:769
omapi_object_type_t * omapi_type_remote
Definition: support.c:42
isc_result_t omapi_object_initialize(omapi_object_t *, omapi_object_type_t *, size_t, size_t, const char *, int)
Definition: alloc.c:559
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:905
isc_result_t omapi_make_handle_value(omapi_value_t **, omapi_data_string_t *, omapi_object_t *, const char *, int)
Definition: support.c:773
int omapi_connection_writefd(omapi_object_t *)
Definition: connection.c:596
isc_result_t omapi_connection_output_auth_length(omapi_object_t *, unsigned *)
Definition: connection.c:898
isc_result_t omapi_message_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition: message.c:165
omapi_object_type_t * omapi_type_listener
Definition: support.c:35
omapi_object_type_t * omapi_type_protocol
Definition: support.c:39
isc_result_t omapi_connection_write_typed_data(omapi_object_t *, omapi_typed_data_t *)
Definition: buffer.c:633
isc_result_t omapi_make_uint_value(omapi_value_t **, omapi_data_string_t *, unsigned int, const char *, int)
Definition: support.c:735
struct __omapi_object_type_t omapi_object_type_t
isc_result_t omapi_get_value_str(omapi_object_t *, omapi_object_t *, const char *, omapi_value_t **)
Definition: support.c:483
omapi_object_type_t * omapi_object_types
Definition: support.c:46
isc_result_t omapi_connection_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
Definition: connection.c:913
isc_result_t(* lookup)(omapi_object_t **, omapi_object_t *, omapi_object_t *)
Definition: omapip.h:109
isc_result_t omapi_protocol_listener_signal(omapi_object_t *, const char *, va_list)
Definition: protocol.c:1033
isc_result_t omapi_protocol_send_open(omapi_object_t *, omapi_object_t *, const char *, omapi_object_t *, unsigned)
Definition: protocol.c:1198
isc_result_t omapi_listener_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition: listener.c:476
OMAPI_OBJECT_PREAMBLE
Definition: omapip.h:129
isc_result_t omapi_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition: support.c:509
isc_result_t omapi_addr_list_reference(omapi_addr_list_t **, omapi_addr_list_t *, const char *, int)
Definition: alloc.c:1120
isc_result_t omapi_set_boolean_value(omapi_object_t *, omapi_object_t *, const char *, int)
Definition: support.c:372
isc_result_t omapi_object_create(omapi_object_t **, omapi_object_t *, omapi_object_type_t *)
Definition: support.c:522
omapi_data_string_t * key
Definition: omapip.h:152
isc_result_t omapi_connection_writer(omapi_object_t *)
Definition: buffer.c:449
isc_result_t omapi_listener_destroy(omapi_object_t *, const char *, int)
Definition: listener.c:441
isc_result_t omapi_connection_signal_handler(omapi_object_t *, const char *, va_list)
Definition: connection.c:1077
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_waiter_signal_handler(omapi_object_t *, const char *, va_list)
Definition: dispatch.c:863
isc_result_t omapi_object_dereference(omapi_object_t **, const char *, int)
Definition: alloc.c:593
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_connection_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition: connection.c:1096
isc_result_t omapi_signal(omapi_object_t *, const char *,...)
Definition: support.c:268
isc_result_t omapi_set_value_str(omapi_object_t *, omapi_object_t *, const char *, omapi_typed_data_t *)
Definition: support.c:353
isc_result_t omapi_generic_new(omapi_object_t **, const char *, int)
omapi_object_type_t * omapi_type_protocol_listener
Definition: support.c:40
isc_result_t omapi_protocol_accept(omapi_object_t *)
isc_result_t(* initialize)(omapi_object_t *, const char *, int)
Definition: omapip.h:118
isc_result_t omapi_message_destroy(omapi_object_t *, const char *, int)
Definition: message.c:205
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:1089
isc_result_t omapi_get_int_value(unsigned long *, omapi_typed_data_t *)
Definition: support.c:836
OMAPI_OBJECT_PREAMBLE
Definition: omapip.h:149
void dfree(void *, const char *, int)
Definition: alloc.c:145
isc_result_t omapi_make_value(omapi_value_t **, omapi_data_string_t *, omapi_typed_data_t *, const char *, int)
Definition: support.c:652
isc_result_t(* stuff_values)(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition: omapip.h:107
omapi_array_deref_t deref
Definition: omapip.h:193
omapi_addr_t * addresses
Definition: omapip.h:145
struct auth_key omapi_auth_key_t
omapi_data_string_t * name
Definition: omapip.h:90
isc_result_t omapi_handle_td_lookup(omapi_object_t **, omapi_typed_data_t *)
Definition: handle.c:283
isc_result_t omapi_protocol_send_message(omapi_object_t *, omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition: protocol.c:149
isc_boolean_t omapi_protocol_authenticated(omapi_object_t *)
Definition: protocol.c:954
isc_result_t omapi_addr_list_dereference(omapi_addr_list_t **, const char *, int)
Definition: alloc.c:1142
isc_result_t omapi_protocol_destroy(omapi_object_t *, const char *, int)
Definition: protocol.c:910
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_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_protocol_connect(omapi_object_t *, const char *, unsigned, omapi_object_t *)
isc_result_t omapi_listener_accept(omapi_object_t *)
void * dmalloc(size_t, const char *, int)
Definition: alloc.c:57
isc_result_t omapi_auth_key_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
Definition: auth.c:131
isc_result_t omapi_object_handle(omapi_handle_t *, omapi_object_t *)
Definition: handle.c:73
isc_result_t omapi_protocol_signal_handler(omapi_object_t *, const char *, va_list)
Definition: protocol.c:344
isc_result_t omapi_io_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition: dispatch.c:850
isc_result_t omapi_connection_connect(omapi_object_t *)
Definition: connection.c:605
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
isc_result_t omapi_connection_put_string(omapi_object_t *, const char *)
Definition: buffer.c:690
isc_result_t omapi_accept(omapi_object_t *)
Definition: listener.c:213
unsigned addrlen
Definition: omapip.h:137
isc_result_t omapi_connect(omapi_object_t *, const char *, unsigned)
isc_result_t omapi_protocol_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
Definition: protocol.c:847
isc_result_t omapi_typed_data_reference(omapi_typed_data_t **, omapi_typed_data_t *, const char *, int)
Definition: alloc.c:880
isc_result_t omapi_generic_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
Definition: generic.c:243
isc_result_t omapi_handle_lookup(omapi_object_t **, omapi_handle_t)
Definition: handle.c:239
const char * name
Definition: omapip.h:95
unsigned int omapi_handle_t
Definition: omapip.h:37
isc_result_t omapi_auth_key_enter(omapi_auth_key_t *)
Definition: auth.c:73
isc_result_t omapi_listen(omapi_object_t *, unsigned, int)
isc_result_t omapi_value_dereference(omapi_value_t **, const char *, int)
Definition: alloc.c:1060
isc_result_t omapi_listener_signal_handler(omapi_object_t *, const char *, va_list)
Definition: listener.c:461
isc_result_t omapi_protocol_listener_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition: protocol.c:1103
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:194
isc_result_t omapi_message_process(omapi_object_t *, omapi_object_t *)
Definition: message.c:358
isc_result_t(* allocator)(omapi_object_t **, const char *, int)
Definition: omapip.h:114
isc_result_t omapi_generic_signal_handler(omapi_object_t *, const char *, va_list)
Definition: generic.c:228
#define OMAPI_ARRAY_TYPE_DECL(name, stype)
Definition: omapip.h:233
isc_result_t omapi_protocol_send_intro(omapi_object_t *, unsigned, unsigned)
Definition: protocol.c:106
omapi_object_type_t * omapi_type_generic
Definition: support.c:38
isc_result_t omapi_wait_for_completion(omapi_object_t *, struct timeval *)
Definition: dispatch.c:421
int omapi_td_strcmp(omapi_typed_data_t *, const char *)
Definition: support.c:602
isc_result_t omapi_object_allocate(omapi_object_t **, omapi_object_type_t *, size_t, const char *, int)
Definition: alloc.c:515
const char int
Definition: omapip.h:443
int omapi_ds_strcmp(omapi_data_string_t *, const char *)
Definition: support.c:582
isc_result_t(* freer)(omapi_object_t *, const char *, int)
Definition: omapip.h:113
isc_result_t omapi_unregister_io_object(omapi_object_t *)
Definition: dispatch.c:356
omapi_object_type_t * omapi_type_io_object
Definition: support.c:36
isc_result_t(* destroy)(omapi_object_t *, const char *, int)
Definition: omapip.h:104
#define dmalloc_reuse(x, y, l, z)
Definition: omapip.h:566
Definition: tree.h:61
isc_result_t omapi_data_string_new(omapi_data_string_t **, unsigned, const char *, int)
Definition: alloc.c:950
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:967
#define OMAPI_OBJECT_ALLOC_DECL(name, stype, type)
Definition: omapip.h:180
char ** data
Definition: omapip.h:191
isc_result_t omapi_protocol_lookup_auth(omapi_object_t **, omapi_object_t *, omapi_handle_t)
Definition: protocol.c:829
isc_result_t omapi_protocol_send_update(omapi_object_t *, omapi_object_t *, unsigned, omapi_object_t *)
Definition: protocol.c:1258
isc_result_t omapi_one_dispatch(omapi_object_t *, struct timeval *)
Definition: dispatch.c:480
omapi_object_type_t * omapi_type_message
Definition: support.c:43
isc_result_t omapi_auth_key_destroy(omapi_object_t *, const char *, int)
Definition: auth.c:49
isc_result_t omapi_io_destroy(omapi_object_t *, const char *, int)
Definition: dispatch.c:806
isc_result_t omapi_connect_list(omapi_object_t *, omapi_addr_list_t *, omapi_addr_t *)
Definition: connection.c:103
isc_result_t(* create)(omapi_object_t **, omapi_object_t *)
Definition: omapip.h:111
isc_result_t omapi_io_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
Definition: dispatch.c:770
isc_result_t omapi_make_const_value(omapi_value_t **, omapi_data_string_t *, const unsigned char *, unsigned, const char *, int)
Definition: support.c:680
isc_result_t omapi_set_int_value(omapi_object_t *, omapi_object_t *, const char *, int)
Definition: support.c:396
isc_result_t(* set_value)(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
Definition: omapip.h:98
isc_result_t omapi_array_extend(omapi_array_t *, char *, int *, const char *, int)
Definition: array.c:74
int refcnt
Definition: omapip.h:89
isc_result_t omapi_connection_put_name(omapi_object_t *, const char *)
Definition: buffer.c:679
unsigned addrtype
Definition: omapip.h:136
isc_result_t omapi_disconnect(omapi_object_t *, int)
Definition: connection.c:457
isc_result_t omapi_io_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition: dispatch.c:784
char * name
Definition: omapip.h:150
isc_result_t omapi_connection_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
Definition: connection.c:982
omapi_object_type_t * omapi_type_waiter
Definition: support.c:41
omapi_object_type_t * omapi_type_auth_key
Definition: support.c:44
isc_result_t omapi_typed_data_dereference(omapi_typed_data_t **, const char *, int)
Definition: alloc.c:901
omapi_datatype_t
Definition: omapip.h:42
isc_result_t omapi_object_update(omapi_object_t *, omapi_object_t *, omapi_object_t *, omapi_handle_t)
Definition: support.c:530
isc_result_t(* signal_handler)(omapi_object_t *, const char *, va_list)
Definition: omapip.h:105
isc_result_t omapi_generic_destroy(omapi_object_t *, const char *, int)
Definition: generic.c:202
isc_result_t omapi_make_string_value(omapi_value_t **, omapi_data_string_t *, const char *, const char *, int)
Definition: support.c:808
isc_result_t omapi_addr_list_new(omapi_addr_list_t **, unsigned, const char *, int)
Definition: alloc.c:1104
isc_result_t omapi_array_free(omapi_array_t **, const char *, int)
Definition: array.c:53
isc_result_t omapi_init(void)
Definition: support.c:62
isc_result_t(* sizer)(size_t)
Definition: omapip.h:115
int omapi_connection_readfd(omapi_object_t *)
Definition: connection.c:579
isc_result_t omapi_make_object_value(omapi_value_t **, omapi_data_string_t *, omapi_object_t *, const char *, int)
Definition: support.c:743
isc_result_t(* omapi_array_ref_t)(char **, char *, const char *, int)
Definition: omapip.h:186