diff options
Diffstat (limited to 'includes/dhcpd.h')
-rw-r--r-- | includes/dhcpd.h | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/includes/dhcpd.h b/includes/dhcpd.h index 863a149..f548648 100644 --- a/includes/dhcpd.h +++ b/includes/dhcpd.h @@ -3,7 +3,7 @@ Definitions for dhcpd... */ /* - * Copyright (c) 2004-2011 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 2004-2012 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996-2003 by Internet Software Consortium * * Permission to use, copy, modify, and distribute this software for any @@ -436,7 +436,7 @@ struct packet { struct hardware { u_int8_t hlen; - u_int8_t hbuf [17]; + u_int8_t hbuf[21]; }; #if defined(LDAP_CONFIGURATION) @@ -1557,7 +1557,7 @@ struct ipv6_pool { #define DDNS_EXECUTE_NEXT 0x20 #define DDNS_ABORT 0x40 #define DDNS_STATIC_LEASE 0x80 - +#define DDNS_ACTIVE_LEASE 0x100 /* * The following two groups are separate and we could reuse * values but not reusing them may be useful in the future. @@ -1598,7 +1598,7 @@ typedef struct dhcp_ddns_cb { int zone_addr_count; struct dns_zone *zone; - int flags; + u_int16_t flags; TIME timeout; int state; ddns_action_t cur_func; @@ -1950,7 +1950,8 @@ void parse_server_duid_conf(struct parse *cfile); /* ddns.c */ int ddns_updates(struct packet *, struct lease *, struct lease *, struct iasubopt *, struct iasubopt *, struct option_state *); -int ddns_removals(struct lease *, struct iasubopt *, struct dhcp_ddns_cb *); +isc_result_t ddns_removals(struct lease *, struct iasubopt *, + struct dhcp_ddns_cb *, isc_boolean_t); #if defined (TRACING) void trace_ddns_init(void); #endif @@ -3243,7 +3244,10 @@ void make_binding_state_transition (struct lease *); int lease_copy (struct lease **, struct lease *, const char *, int); void release_lease (struct lease *, struct packet *); void abandon_lease (struct lease *, const char *); +#if 0 +/* this appears to be unused and I plan to remove it SAR */ void dissociate_lease (struct lease *); +#endif void pool_timer (void *); int find_lease_by_uid (struct lease **, const unsigned char *, unsigned, const char *, int); @@ -3509,9 +3513,13 @@ isc_result_t release_lease6(struct ipv6_pool *pool, struct iasubopt *lease); isc_result_t decline_lease6(struct ipv6_pool *pool, struct iasubopt *lease); isc_boolean_t lease6_exists(const struct ipv6_pool *pool, const struct in6_addr *addr); +isc_boolean_t lease6_usable(struct iasubopt *lease); +isc_result_t cleanup_lease6(ia_hash_t *ia_table, + struct ipv6_pool *pool, + struct iasubopt *lease, + struct ia_xx *ia); isc_result_t mark_lease_unavailble(struct ipv6_pool *pool, const struct in6_addr *addr); - isc_result_t create_prefix6(struct ipv6_pool *pool, struct iasubopt **pref, unsigned int *attempts, @@ -3543,13 +3551,13 @@ void ddns_cb_forget_zone (dhcp_ddns_cb_t *ddns_cb); //void *key_from_zone(struct dns_zone *zone); isc_result_t -ddns_modify_fwd(dhcp_ddns_cb_t *ddns_cb); +ddns_modify_fwd(dhcp_ddns_cb_t *ddns_cb, const char *file, int line); isc_result_t -ddns_modify_ptr(dhcp_ddns_cb_t *ddns_cb); +ddns_modify_ptr(dhcp_ddns_cb_t *ddns_cb, const char *file, int line); void -ddns_cancel(dhcp_ddns_cb_t *ddns_cb); +ddns_cancel(dhcp_ddns_cb_t *ddns_cb, const char *file, int line); #define MAX_ADDRESS_STRING_LEN \ (sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")) |