43static isc_result_t update_lease_flags(
struct lease*
lease,
51#if defined (FAILOVER_PROTOCOL)
78 sizeof (
struct lease),
81 log_fatal (
"Can't register lease object type: %s",
82 isc_result_totext (status));
94 sizeof (
struct class), 0,
97 log_fatal (
"Can't register class object type: %s",
98 isc_result_totext (status));
110 sizeof (
struct class), 0,
RC_MISC);
112 log_fatal (
"Can't register subclass object type: %s",
113 isc_result_totext (status));
128 log_fatal (
"Can't register pool object type: %s",
129 isc_result_totext (status));
145 log_fatal (
"Can't register host object type: %s",
146 isc_result_totext (status));
148#if defined (FAILOVER_PROTOCOL)
160 sizeof (dhcp_failover_state_t),
164 log_fatal (
"Can't register failover state object type: %s",
165 isc_result_totext (status));
175 sizeof (dhcp_failover_link_t), 0,
179 log_fatal (
"Can't register failover link object type: %s",
180 isc_result_totext (status));
195 log_fatal (
"Can't register failover listener object type: %s",
196 isc_result_totext (status));
216 const char *ols, *nls;
228 ols =
"unknown state";
233 log_info (
"lease %s state changed from %s to %s",
237 log_info (
"lease %s state change from %s to %s failed.",
239 return ISC_R_IOERROR;
259 unsigned long lease_end, old_lease_end;
266 log_info (
"lease %s end changed from %lu to %lu",
270 log_info (
"lease %s end change from %lu to %lu failed",
272 return ISC_R_IOERROR;
286 return ISC_R_IOERROR;
291 if (h -> inner && h -> inner -> type -> set_value) {
292 status = ((*(h -> inner -> type -> set_value))
293 (h -> inner, id, name,
value));
300 return ISC_R_NOMEMORY;
308 return ISC_R_IOERROR;
330static isc_result_t update_lease_flags(
struct lease*
lease,
335 struct lease* lupdate = NULL;
342 if (
value->u.buffer.len == 1) {
343 newflags =
value->u.buffer.value[0];
352 newflags = (u_int8_t)tmp;
363 if (oldflags == newflags) {
369 return (ISC_R_FAILURE);
373 lupdate->
flags = newflags;
377 log_error(
"Failed to update flags for lease %s.",
379 status = ISC_R_FAILURE;
381 log_debug (
"lease flags changed from %x to %x for lease %s.",
386 lease_dereference(&lupdate,
MDL);
417 return ISC_R_NOTFOUND;
437 return ISC_R_NOTFOUND;
444 return ISC_R_NOTFOUND;
450 return ISC_R_NOTFOUND;
453 if (status != ISC_R_NOTFOUND)
458 if (h -> inner && h -> inner -> type -> get_value) {
459 status = ((*(h -> inner -> type -> get_value))
460 (h -> inner, id, name,
value));
542 const char *name, va_list ap)
550 if (!strcmp (name,
"updated"))
554 if (h -> inner && h -> inner -> type -> signal_handler) {
555 status = ((*(h -> inner -> type -> signal_handler))
556 (h -> inner, name, ap));
560 return ISC_R_NOTFOUND;
596 "dhcp-client-identifier");
738 if (h -> inner && h -> inner -> type -> stuff_values) {
739 status = ((*(h -> inner -> type -> stuff_values))
740 (c, id, h -> inner));
793 return ISC_R_NOTFOUND;
819 return ISC_R_NOTFOUND;
836 unsigned char *haddr;
839 len = tv ->
value -> u.buffer.len + 1;
843 return ISC_R_NOMEMORY;
846 memcpy (haddr + 1, tv ->
value -> u.buffer.value, len - 1);
852 if ((tv ->
value -> u.buffer.len != 4) ||
853 (tv ->
value -> u.buffer.value[0] != 0) ||
854 (tv ->
value -> u.buffer.value[1] != 0) ||
855 (tv ->
value -> u.buffer.value[2] != 0)) {
861 haddr[0] = tv ->
value -> u.buffer.value[3];
863 haddr[0] = (
unsigned char)
864 tv ->
value -> u.integer;
892 return ISC_R_NOTFOUND;
948 return ISC_R_NOMEMORY;
949 memcpy (host ->
name,
950 value -> u.buffer.value,
951 value -> u.buffer.len);
952 host ->
name [
value -> u.buffer.len] = 0;
964 (
char *)
value -> u.buffer.value,
967 return ISC_R_NOTFOUND;
971 if (host -> named_group)
972 group_object_dereference (&host -> named_group,
974 group_object_reference (&host -> named_group,
976 group_object_dereference (&
group,
MDL);
983 if (host -> interface.hlen)
987 if (
value -> u.buffer.len >
988 (
sizeof host -> interface.hbuf) - 1)
990 memcpy (&host -> interface.hbuf [1],
991 value -> u.buffer.value,
992 value -> u.buffer.len);
993 host -> interface.hlen =
value -> u.buffer.len + 1;
1001 if ((
value != NULL) &&
1003 (
value->u.buffer.len ==
sizeof(type)))) {
1004 if (
value->u.buffer.len >
sizeof(type))
1006 memcpy(&type,
value->u.buffer.value,
1007 value->u.buffer.len);
1009 }
else if ((
value != NULL) &&
1011 type =
value->u.integer;
1019 if (host -> client_identifier.data)
1020 return ISC_R_EXISTS;
1025 return ISC_R_NOMEMORY;
1026 host -> client_identifier.data =
1027 &host -> client_identifier.buffer -> data [0];
1028 memcpy (host -> client_identifier.buffer -> data,
1029 value -> u.buffer.value,
1030 value -> u.buffer.len);
1031 host -> client_identifier.len =
value -> u.buffer.len;
1038 if (host -> fixed_addr)
1045 memset (&ds, 0,
sizeof ds);
1048 return ISC_R_NOMEMORY;
1056 return ISC_R_NOMEMORY;
1065 if (!host ->
group) {
1067 return ISC_R_NOMEMORY;
1069 if (host ->
group -> statements &&
1070 (!host -> named_group ||
1071 host ->
group != host -> named_group ->
group) &&
1073 return ISC_R_EXISTS;
1075 return ISC_R_NOMEMORY;
1078 return ISC_R_NOMEMORY;
1085 (
char *)
value->u.buffer.value,
1086 value->u.buffer.len,
1087 "network client", 0);
1110 if (h -> inner && h -> inner -> type -> set_value) {
1111 status = ((*(h -> inner -> type -> set_value))
1112 (h -> inner, id, name,
value));
1126 isc_result_t status;
1134 memset (&ip_addrs, 0,
sizeof ip_addrs);
1149 return ISC_R_NOTFOUND;
1154 return ISC_R_NOTFOUND;
1167 return ISC_R_NOTFOUND;
1175 return ISC_R_NOTFOUND;
1181 if (h -> inner && h -> inner -> type -> get_value) {
1182 status = ((*(h -> inner -> type -> get_value))
1203 host ->
name = (
char *)0;
1219 const char *
name, va_list ap)
1222 isc_result_t status;
1229 if (!strcmp (
name,
"updated")) {
1235 if (!host ->
name) {
1237 sprintf (hnbuf,
"nh%08lx%08lx",
1238 (
unsigned long)
cur_time, (
unsigned long)host);
1241 return ISC_R_NOMEMORY;
1242 strcpy (host ->
name, hnbuf);
1255 if (h -> inner && h -> inner -> type -> signal_handler) {
1256 status = ((*(h -> inner -> type -> signal_handler))
1257 (h -> inner,
name, ap));
1263 return ISC_R_NOTFOUND;
1271 isc_result_t status;
1280 memset (&ip_addrs, 0,
sizeof ip_addrs);
1314 "dhcp-client-identifier");
1359 if (h -> inner && h -> inner -> type -> stuff_values) {
1360 status = ((*(h -> inner -> type -> stuff_values))
1361 (c, id, h -> inner));
1373 isc_result_t status;
1403 tv ->
value -> u.buffer.value,
1410 host_dereference (&host,
MDL);
1416 host_dereference (&host,
MDL);
1417 return ISC_R_NOTFOUND;
1423 host_dereference (&host,
MDL);
1430 unsigned char *haddr;
1433 len = tv ->
value -> u.buffer.len + 1;
1437 return ISC_R_NOMEMORY;
1440 memcpy (haddr + 1, tv ->
value -> u.buffer.value, len - 1);
1446 if ((tv ->
value -> u.buffer.len != 4) ||
1447 (tv ->
value -> u.buffer.value[0] != 0) ||
1448 (tv ->
value -> u.buffer.value[1] != 0) ||
1449 (tv ->
value -> u.buffer.value[2] != 0)) {
1455 haddr[0] = tv ->
value -> u.buffer.value[3];
1457 haddr[0] = (
unsigned char)
1458 tv ->
value -> u.integer;
1481 host_dereference (&host,
MDL);
1487 host_dereference (&host,
MDL);
1488 return ISC_R_NOTFOUND;
1494 host_dereference (&host,
MDL);
1504 l = (
struct lease *)0;
1511 return ISC_R_NOTFOUND;
1517 l -> hardware_addr.hbuf,
1518 l -> hardware_addr.hlen,
MDL);
1523 host_dereference (&host,
MDL);
1525 }
else if (!host || (host ->
flags &
1528 host_dereference (&host,
MDL);
1530 return ISC_R_NOTFOUND;
1536 host_dereference (&host,
MDL);
1538 lease_dereference (&l,
MDL);
1547 tv ->
value -> u.buffer.value,
1554 host_dereference (&host,
MDL);
1558 host_dereference (&host,
MDL);
1559 return ISC_R_NOTFOUND;
1565 host_dereference (&host,
MDL);
1580 isc_result_t status;
1582 status = host_allocate (&hp,
MDL);
1588 host_dereference (&hp,
MDL);
1613 isc_result_t status;
1621 if (h -> inner && h -> inner -> type -> set_value) {
1622 status = ((*(h -> inner -> type -> set_value))
1637 isc_result_t status;
1645 if (h -> inner && h -> inner -> type -> get_value) {
1646 status = ((*(h -> inner -> type -> get_value))
1676#if defined (FAILOVER_PROTOCOL)
1688 for (pc =
pool -> prohibit_list; pc; pc = pn) {
1698 const char *name, va_list ap)
1701 isc_result_t status;
1709 if (h -> inner && h -> inner ->
type -> signal_handler) {
1710 status = ((*(h -> inner ->
type -> signal_handler))
1711 (h -> inner, name, ap));
1716 return ISC_R_NOTFOUND;
1724 isc_result_t status;
1755 if (h->inner && h->inner->type->stuff_values) {
1756 status = ((*(h->inner->type->stuff_values))
1795 struct class *
class;
1797 isc_result_t status;
1800 class = (struct
class *)h;
1804 return ISC_R_EXISTS;
1807 char tname[
value->u.buffer.len + 1];
1808 memcpy(tname,
value->u.buffer.value,
value->u.buffer.len);
1809 tname[
sizeof(tname)-1] =
'\0';
1812 if (status == ISC_R_NOTFOUND)
1825 class->billed_leases =
1827 sizeof(
struct lease *),
1830 return ISC_R_NOMEMORY;
1838 return ISC_R_NOMEMORY;
1842 value->u.buffer.len);
1852 return ISC_R_EXISTS;
1858 return ISC_R_NOMEMORY;
1859 class->hash_string.data =
1860 class->hash_string.buffer->data;
1863 class->hash_string.len =
value->u.buffer.len;
1876 (
char *)
value->u.buffer.value,
1879 return ISC_R_NOTFOUND;
1883 group_object_dereference(&
group,
MDL);
1898 unsigned minlen = (
value->u.buffer.len > 8 ?
1899 8 :
value->u.buffer.len);
1901 if (!strncmp(
"hardware",
1902 (
char *)
value->u.buffer.value, minlen))
1905 return ISC_R_NOMEMORY;
1936 if (h->inner && h->inner->type->set_value) {
1937 status = ((*(h->inner->type->set_value))
1956 return class_set_value(h,
id,
name,
value);
1963 struct class *
class;
1964 isc_result_t status;
1968 class = (struct
class *)h;
1975 if (h -> inner && h -> inner -> type -> get_value) {
1976 status = ((*(h -> inner -> type -> get_value))
1977 (h -> inner, id, name,
value));
1992 class_dereference (&
class -> nic,
file,
line);
1993 if (
class -> superclass)
1994 class_dereference (&
class -> superclass,
file,
line);
1995 if (
class -> name) {
1997 class -> name = (
char *)0;
1999 if (
class -> billed_leases) {
2001 for (i = 0; i <
class -> lease_limit; i++) {
2002 if (
class -> billed_leases [i]) {
2003 lease_dereference (&
class -> billed_leases [i],
2008 class -> billed_leases = (
struct lease **)0;
2010 if (
class -> hash) {
2011 class_free_hash_table (&
class -> hash,
file,
line);
2018 if (
class -> submatch)
2022 if (
class -> statements)
2025 if (
class -> superclass)
2026 class_dereference (&
class -> superclass,
file,
line);
2033 const char *name, va_list ap)
2036 isc_result_t status;
2042 if (!strcmp (name,
"updated")) {
2067 (
void *)
class,
MDL);
2086 if (h->inner && h->inner->type->signal_handler) {
2087 status = ((*(h->inner->type->signal_handler))
2088 (h->inner, name, ap));
2096 return ISC_R_NOTFOUND;
2101 const char *name, va_list ap)
2106 return class_signal_handler(h, name, ap);
2117 struct class *
class;
2118 isc_result_t status;
2120 class = (struct
class *)h;
2135 if (h->inner && h->inner->type->stuff_values) {
2136 status = ((*(h->inner->type->stuff_values))
2164 isc_result_t status;
2165 struct class *
class = 0;
2166 struct class *subclass = 0;
2178 return (ISC_R_NOMEMORY);
2189 if (
class == NULL) {
2190 return (ISC_R_NOTFOUND);
2197 class_dereference(&
class,
MDL);
2203 class_dereference(&
class,
MDL);
2208 class_hash_lookup(&subclass,
class->
hash,
2215 class_dereference(&
class,
MDL);
2217 if (subclass == NULL) {
2218 return (ISC_R_NOTFOUND);
2221 class_reference(&
class, subclass,
MDL);
2222 class_dereference(&subclass,
MDL);
2226 if (
class->type != typewanted) {
2227 class_dereference(&
class,
MDL);
2232 class_dereference(&
class,
MDL);
2233 return (ISC_R_NOTFOUND);
2237 class_dereference(&
class,
MDL);
2255 struct class *cp = 0;
2256 isc_result_t status;
2258 status = class_allocate(&cp,
MDL);
2263 return (ISC_R_NOMEMORY);
2267 class_dereference(&cp,
MDL);
2277 cp = (
struct class *)lp;
2295 return class_set_value(h,
id,
name,
value);
2303 struct class *subclass;
2304 isc_result_t status;
2308 subclass = (
struct class *)h;
2309 if (subclass ->
name != 0)
2315 if (h -> inner && h -> inner -> type -> get_value) {
2316 status = ((*(h -> inner -> type -> get_value))
2325 const char *
name, va_list ap)
2330 return class_signal_handler(h,
name, ap);
2338 struct class *subclass;
2342 subclass = (
struct class *)h;
2343 if (subclass->
name != 0)
2363 struct class *cp = 0;
2364 isc_result_t status;
2366 status = subclass_allocate(&cp,
MDL);
2374 subclass_dereference (&cp,
MDL);
2384 cp = (
struct class *)lp;
2404 return ISC_R_NOMEMORY;
2405 memcpy (nname, name ->
value, name -> len);
2406 nname [name -> len] = 0;
2408 if (!bp && !createp) {
2423 return ISC_R_NOMEMORY;
2437 return ISC_R_NOMEMORY;
2439 memcpy (&nv ->
value.data.buffer -> data [1],
2440 value -> u.buffer.value,
value -> u.buffer.len);
2441 nv ->
value.data.len =
value -> u.buffer.len;
2455 return ISC_R_NOMEMORY;
2457 memset (bp, 0,
sizeof *bp);
2459 bp -> next = scope -> bindings;
2460 scope -> bindings = bp;
2477 isc_result_t status;
2481 return ISC_R_NOMEMORY;
2483 nname [
name -> len] = 0;
2491 switch (bp ->
value -> type) {
2492 case binding_boolean:
2498 case binding_numeric:
2518 case binding_function:
2523 return ISC_R_FAILURE;
2546 isc_result_t status;
2548 for (bp = scope -> bindings; bp; bp = bp ->
next) {
2550 if (bp ->
value -> type == binding_dns ||
2551 bp ->
value -> type == binding_function)
2555 len = strlen (bp ->
name);
2560 (
unsigned char *)bp ->
name,
2565 switch (bp ->
value -> type) {
2566 case binding_boolean:
2568 sizeof (u_int32_t));
2573 ((u_int32_t)(bp ->
value ->
value.boolean))));
2592 case binding_numeric:
2594 (c,
sizeof (u_int32_t)));
2607 case binding_function:
isc_result_t omapi_connection_put_uint32(omapi_object_t *, u_int32_t)
isc_result_t omapi_connection_put_uint16(omapi_object_t *, u_int32_t)
isc_result_t omapi_connection_copyin(omapi_object_t *, const unsigned char *, unsigned)
int group_dereference(struct group **ptr, const char *file, int line)
int expression_allocate(struct expression **cptr, const char *file, int line)
int buffer_allocate(struct buffer **ptr, unsigned len, const char *file, int line)
void data_string_forget(struct data_string *data, const char *file, int line)
int group_reference(struct group **ptr, struct group *bp, const char *file, int line)
int binding_value_reference(struct binding_value **ptr, struct binding_value *src, const char *file, int line)
int binding_scope_allocate(struct binding_scope **ptr, const char *file, int line)
int option_chain_head_dereference(struct option_chain_head **ptr, const char *file, int line)
int binding_value_allocate(struct binding_value **cptr, const char *file, int line)
isc_result_t end_parse(struct parse **cfile)
isc_result_t new_parse(struct parse **cfile, int file, char *inbuf, unsigned buflen, const char *name, int eolp)
void cancel_timeout(void *where, void *what)
int option_cache_dereference(struct option_cache **ptr, const char *file, int line)
int parse_executable_statements(struct executable_statement **statements, struct parse *cfile, int *lose, enum expression_context case_context)
isc_result_t find_class(struct class **c, const char *s, const char *file, int line)
int write_lease(struct lease *lease)
isc_result_t dhcp_failover_link_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t dhcp_lease_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
isc_result_t delete_class(struct class *, int)
host_hash_t * host_hw_addr_hash
isc_result_t dhcp_lease_free(omapi_object_t *, const char *, int)
isc_result_t dhcp_host_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t dhcp_host_create(omapi_object_t **, omapi_object_t *)
isc_result_t dhcp_pool_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
isc_result_t enter_class(struct class *, int, int)
#define HOST_DECL_DYNAMIC
isc_result_t dhcp_pool_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
isc_result_t dhcp_failover_state_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
#define GROUP_OBJECT_DELETED
isc_result_t dhcp_lease_destroy(omapi_object_t *, const char *, int)
isc_result_t dhcp_class_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
void free_permit(struct permit *, const char *, int)
isc_result_t dhcp_failover_link_signal(omapi_object_t *, const char *, va_list)
#define HOST_DECL_DELETED
isc_result_t dhcp_lease_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
omapi_object_type_t * dhcp_type_failover_listener
lease_id_hash_t * lease_hw_addr_hash
isc_result_t delete_host(struct host_decl *, int)
isc_result_t dhcp_failover_listener_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
omapi_object_type_t * dhcp_type_lease
void free_lease_state(struct lease_state *, const char *, int)
isc_result_t dhcp_class_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t dhcp_subclass_remove(omapi_object_t *, omapi_object_t *)
isc_result_t dhcp_subclass_signal_handler(omapi_object_t *, const char *, va_list)
omapi_object_type_t * dhcp_type_failover_state
isc_result_t dhcp_class_destroy(omapi_object_t *, const char *, int)
isc_result_t dhcp_class_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
void uid_hash_delete(struct lease *)
isc_result_t dhcp_failover_listener_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
isc_result_t dhcp_lease_signal_handler(omapi_object_t *, const char *, va_list)
isc_result_t dhcp_lease_get(omapi_object_t **, const char *, int)
lease_id_hash_t * lease_uid_hash
isc_result_t dhcp_failover_listener_destroy(omapi_object_t *, const char *, int)
isc_result_t dhcp_failover_state_stuff(omapi_object_t *, omapi_object_t *, omapi_object_t *)
int lease_copy(struct lease **, struct lease *, const char *, int)
isc_result_t dhcp_class_create(omapi_object_t **, omapi_object_t *)
isc_result_t dhcp_lease_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
omapi_object_type_t * dhcp_type_pool
int supersede_lease(struct lease *, struct lease *, int, int, int, int)
isc_result_t dhcp_failover_state_destroy(omapi_object_t *, const char *, int)
isc_result_t dhcp_subclass_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
isc_result_t dhcp_lease_remove(omapi_object_t *, omapi_object_t *)
isc_result_t enter_host(struct host_decl *, int, int)
host_hash_t * host_name_hash
isc_result_t dhcp_failover_state_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
host_hash_t * host_uid_hash
isc_result_t dhcp_pool_remove(omapi_object_t *, omapi_object_t *)
isc_result_t dhcp_subclass_create(omapi_object_t **, omapi_object_t *)
isc_result_t dhcp_failover_state_create(omapi_object_t **, omapi_object_t *)
isc_result_t dhcp_class_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
isc_result_t dhcp_host_signal_handler(omapi_object_t *, const char *, va_list)
isc_result_t dhcp_failover_listener_signal(omapi_object_t *, const char *, va_list)
omapi_object_type_t * dhcp_type_subclass
isc_result_t dhcp_lease_create(omapi_object_t **, omapi_object_t *)
isc_result_t dhcp_pool_destroy(omapi_object_t *, const char *, int)
isc_result_t dhcp_pool_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t dhcp_host_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
isc_result_t dhcp_subclass_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
isc_result_t dhcp_host_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
#define POOL_DESTROYP(LQ)
isc_result_t dhcp_pool_signal_handler(omapi_object_t *, const char *, va_list)
struct hash_table class_hash_t
isc_result_t dhcp_lease_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
isc_result_t dhcp_failover_link_destroy(omapi_object_t *, const char *, int)
isc_result_t dhcp_failover_link_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
#define CLASS_DECL_DELETED
isc_result_t dhcp_class_remove(omapi_object_t *, omapi_object_t *)
isc_result_t dhcp_host_remove(omapi_object_t *, omapi_object_t *)
isc_result_t dhcp_failover_state_remove(omapi_object_t *, omapi_object_t *)
const char * binding_state_names[]
isc_result_t dhcp_failover_state_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
isc_result_t dhcp_pool_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
isc_result_t dhcp_failover_listener_stuff(omapi_object_t *, omapi_object_t *, omapi_object_t *)
void lease_ping_timeout(void *)
isc_result_t dhcp_failover_state_signal(omapi_object_t *, const char *, va_list)
isc_result_t dhcp_pool_create(omapi_object_t **, omapi_object_t *)
isc_result_t dhcp_failover_link_set_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_typed_data_t *)
isc_result_t dhcp_host_destroy(omapi_object_t *, const char *, int)
omapi_object_type_t * dhcp_type_class
omapi_object_type_t * dhcp_type_failover_link
#define CLASS_DECL_DYNAMIC
lease_ip_hash_t * lease_ip_addr_hash
omapi_object_type_t * dhcp_type_host
isc_result_t dhcp_class_signal_handler(omapi_object_t *, const char *, va_list)
isc_result_t dhcp_subclass_stuff_values(omapi_object_t *, omapi_object_t *, omapi_object_t *)
void hw_hash_delete(struct lease *)
isc_result_t dhcp_subclass_get_value(omapi_object_t *, omapi_object_t *, omapi_data_string_t *, omapi_value_t **)
isc_result_t dhcp_host_lookup(omapi_object_t **, omapi_object_t *, omapi_object_t *)
int executable_statement_dereference(struct executable_statement **ptr, const char *file, int line)
struct iaddr ip_addr(struct iaddr subnet, struct iaddr mask, u_int32_t host_address)
const char * piaddr(const struct iaddr addr)
#define ISC_R_NOTIMPLEMENTED
int clone_group(struct group **gp, struct group *group, const char *file, int line)
struct group * root_group
group_hash_t * group_name_hash
isc_result_t dhcp_class_remove(omapi_object_t *lp, omapi_object_t *id)
isc_result_t dhcp_subclass_signal_handler(omapi_object_t *h, const char *name, va_list ap)
isc_result_t binding_scope_set_value(struct binding_scope *scope, int createp, omapi_data_string_t *name, omapi_typed_data_t *value)
isc_result_t dhcp_host_remove(omapi_object_t *lp, omapi_object_t *id)
isc_result_t dhcp_class_create(omapi_object_t **lp, omapi_object_t *id)
isc_result_t dhcp_host_create(omapi_object_t **lp, omapi_object_t *id)
isc_result_t dhcp_class_lookup(omapi_object_t **lp, omapi_object_t *id, omapi_object_t *ref)
isc_result_t binding_scope_stuff_values(omapi_object_t *c, struct binding_scope *scope)
isc_result_t dhcp_host_signal_handler(omapi_object_t *h, const char *name, va_list ap)
isc_result_t dhcp_subclass_stuff_values(omapi_object_t *c, omapi_object_t *id, omapi_object_t *h)
void dhcp_db_objects_setup()
isc_result_t dhcp_host_stuff_values(omapi_object_t *c, omapi_object_t *id, omapi_object_t *h)
isc_result_t dhcp_pool_remove(omapi_object_t *lp, omapi_object_t *id)
isc_result_t dhcp_pool_stuff_values(omapi_object_t *c, omapi_object_t *id, omapi_object_t *h)
isc_result_t dhcp_pool_lookup(omapi_object_t **lp, omapi_object_t *id, omapi_object_t *ref)
isc_result_t dhcp_class_get_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_value_t **value)
isc_result_t dhcp_pool_signal_handler(omapi_object_t *h, const char *name, va_list ap)
isc_result_t class_stuff_values(omapi_object_t *c, omapi_object_t *id, omapi_object_t *h)
isc_result_t dhcp_subclass_get_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_value_t **value)
isc_result_t dhcp_pool_create(omapi_object_t **lp, omapi_object_t *id)
isc_result_t dhcp_host_lookup(omapi_object_t **lp, omapi_object_t *id, omapi_object_t *ref)
isc_result_t dhcp_lease_lookup(omapi_object_t **lp, omapi_object_t *id, omapi_object_t *ref)
isc_result_t dhcp_lease_stuff_values(omapi_object_t *c, omapi_object_t *id, omapi_object_t *h)
isc_result_t dhcp_class_stuff_values(omapi_object_t *c, omapi_object_t *id, omapi_object_t *h)
isc_result_t dhcp_subclass_set_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_typed_data_t *value)
isc_result_t dhcp_lease_set_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_typed_data_t *value)
isc_result_t dhcp_lease_destroy(omapi_object_t *h, const char *file, int line)
isc_result_t dhcp_pool_set_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_typed_data_t *value)
isc_result_t binding_scope_get_value(omapi_value_t **value, struct binding_scope *scope, omapi_data_string_t *name)
isc_result_t dhcp_pool_destroy(omapi_object_t *h, const char *file, int line)
isc_result_t dhcp_subclass_remove(omapi_object_t *lp, omapi_object_t *id)
isc_result_t dhcp_pool_get_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_value_t **value)
isc_result_t dhcp_host_set_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_typed_data_t *value)
isc_result_t dhcp_host_get_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_value_t **value)
isc_result_t dhcp_lease_signal_handler(omapi_object_t *h, const char *name, va_list ap)
isc_result_t dhcp_lease_create(omapi_object_t **lp, omapi_object_t *id)
isc_result_t dhcp_host_destroy(omapi_object_t *h, const char *file, int line)
isc_result_t dhcp_lease_remove(omapi_object_t *lp, omapi_object_t *id)
isc_result_t dhcp_subclass_create(omapi_object_t **lp, omapi_object_t *id)
isc_result_t dhcp_class_destroy(omapi_object_t *h, const char *file, int line)
isc_result_t dhcp_class_signal_handler(omapi_object_t *h, const char *name, va_list ap)
isc_result_t dhcp_class_set_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_typed_data_t *value)
isc_result_t dhcp_lease_get_value(omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_value_t **value)
isc_result_t dhcp_subclass_lookup(omapi_object_t **lp, omapi_object_t *id, omapi_object_t *ref)
isc_result_t omapi_value_dereference(omapi_value_t **, const char *, int)
isc_result_t omapi_connection_put_string(omapi_object_t *, const char *)
isc_result_t omapi_typed_data_reference(omapi_typed_data_t **, omapi_typed_data_t *, const char *, int)
struct __omapi_object_type_t omapi_object_type_t
isc_result_t omapi_object_dereference(omapi_object_t **, const char *, int)
struct __omapi_object omapi_object_t
isc_result_t omapi_handle_td_lookup(omapi_object_t **, omapi_typed_data_t *)
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)
isc_result_t omapi_typed_data_dereference(omapi_typed_data_t **, const char *, int)
isc_result_t omapi_make_string_value(omapi_value_t **, omapi_data_string_t *, const char *, const char *, int)
isc_result_t omapi_object_reference(omapi_object_t **, omapi_object_t *, const char *, int)
int omapi_ds_strcmp(omapi_data_string_t *, const char *)
isc_result_t omapi_make_handle_value(omapi_value_t **, omapi_data_string_t *, omapi_object_t *, const char *, int)
isc_result_t omapi_typed_data_new(const char *, int, omapi_typed_data_t **, omapi_datatype_t,...)
void * dmalloc(size_t, const char *, int)
isc_result_t omapi_data_string_reference(omapi_data_string_t **, omapi_data_string_t *, const char *, int)
isc_result_t omapi_connection_put_named_uint32(omapi_object_t *, const char *, u_int32_t)
void dfree(void *, const char *, int)
isc_result_t omapi_get_value_str(omapi_object_t *, omapi_object_t *, const char *, omapi_value_t **)
isc_result_t omapi_connection_put_handle(omapi_object_t *c, omapi_object_t *h)
isc_result_t omapi_get_int_value(unsigned long *, omapi_typed_data_t *)
isc_result_t omapi_connection_put_name(omapi_object_t *, const char *)
isc_result_t omapi_make_int_value(omapi_value_t **, omapi_data_string_t *, int, const char *, int)
isc_result_t omapi_make_const_value(omapi_value_t **, omapi_data_string_t *, const unsigned char *, unsigned, const char *, int)
isc_result_t omapi_value_new(omapi_value_t **, const char *, int)
int log_error(const char *,...) __attribute__((__format__(__printf__
int int int log_debug(const char *,...) __attribute__((__format__(__printf__
void log_fatal(const char *,...) __attribute__((__format__(__printf__
int int log_info(const char *,...) __attribute__((__format__(__printf__
#define DHCP_R_INVALIDARG
#define DHCP_R_KEYCONFLICT
#define DHCP_R_UNKNOWNATTRIBUTE
enum binding_value::@135246253323115003010247222006030375211205217247 type
struct expression * submatch
struct lease ** billed_leases
struct class * superclass
struct data_string hash_string
const unsigned char * data
u_int8_t hbuf[HARDWARE_ADDR_LEN+1]
struct option_cache * fixed_addr
struct data_string client_identifier
struct host_decl * n_dynamic
struct group_object * named_group
struct host_decl * n_ipaddr
struct data_string auth_key_id
struct hardware interface
binding_state_t next_binding_state
struct lease_state * state
struct binding_scope * scope
struct hardware hardware_addr
struct lease * next_pending
struct option_chain_head * agent_options
struct class * billing_class
binding_state_t binding_state
struct omapi_typed_data_t::@005330231110240362320041053235346164005276246221::@131374275124060200224243254021133345104025056044 buffer
union omapi_typed_data_t::@005330231110240362320041053235346164005276246221 u
omapi_typed_data_t * value
struct executable_statement * on_commit
struct executable_statement * on_expiry
struct executable_statement * on_release
enum permit::@011051276256032144365216260061073130004016310224 type
struct permit * permit_list
dhcp_failover_state_t * failover_peer
int binding_scope_dereference(struct binding_scope **ptr, const char *file, int line)
int evaluate_option_cache(struct data_string *result, struct packet *packet, struct lease *lease, struct client_state *client_state, struct option_state *in_options, struct option_state *cfg_options, struct binding_scope **scope, struct option_cache *oc, const char *file, int line)
struct binding * find_binding(struct binding_scope *scope, const char *name)
void expression_dereference(struct expression **eptr, const char *file, int line)
struct binding_scope * global_scope
int binding_value_dereference(struct binding_value **v, const char *file, int line)