]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
dhcp: fix issue with new bind changes
authorArmin Kuster <akuster808@gmail.com>
Wed, 24 Oct 2018 00:19:46 +0000 (01:19 +0100)
committerArmin Kuster <akuster808@gmail.com>
Mon, 9 Sep 2019 02:04:42 +0000 (19:04 -0700)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
meta/recipes-connectivity/dhcp/dhcp/0001-dhcpd-fix-Replace-custom-isc_boolean_t-with-C-standa.patch [new file with mode: 0644]
meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb

diff --git a/meta/recipes-connectivity/dhcp/dhcp/0001-dhcpd-fix-Replace-custom-isc_boolean_t-with-C-standa.patch b/meta/recipes-connectivity/dhcp/dhcp/0001-dhcpd-fix-Replace-custom-isc_boolean_t-with-C-standa.patch
new file mode 100644 (file)
index 0000000..d2e5771
--- /dev/null
@@ -0,0 +1,2882 @@
+From ffb1d1325bd6503df9a324befac5f5039ac77432 Mon Sep 17 00:00:00 2001
+From: Armin Kuster <akuster@mvista.com>
+Date: Tue, 23 Oct 2018 10:36:56 +0000
+Subject: [PATCH] dhcpd: fix Replace custom isc_boolean_t with C standard bool
+ type
+
+
+Upstream-Status: Pending
+
+Fixes issues introduced by bind when they changed their headers.
+
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+---
+ includes/dhcpd.h           | 34 +++++++++++++++++-----------------
+ includes/heap.h            |  2 +-
+ includes/omapip/omapip.h   |  2 +-
+ includes/omapip/omapip_p.h |  6 +++---
+ includes/tree.h            |  2 +-
+ 5 files changed, 23 insertions(+), 23 deletions(-)
+
+Index: dhcp-4.4.1/includes/dhcpd.h
+===================================================================
+--- dhcp-4.4.1.orig/includes/dhcpd.h
++++ dhcp-4.4.1/includes/dhcpd.h
+@@ -461,20 +461,20 @@ struct packet {
+        * options we got in a previous exchange were still there, we need
+        * to signal this in a reliable way.
+        */
+-      isc_boolean_t agent_options_stashed;
++      bool agent_options_stashed;
+       /*
+        * ISC_TRUE if packet received unicast (as opposed to multicast).
+        * Only used in DHCPv6.
+        */
+-      isc_boolean_t unicast;
++      bool unicast;
+       /* Propagates server value SV_ECHO_CLIENT_ID so it is available
+          * in cons_options() */
+       int sv_echo_client_id;
+       /* Relay port check */
+-      isc_boolean_t relay_source_port;
++      bool relay_source_port;
+ };
+ /*
+@@ -1174,7 +1174,7 @@ struct dhc6_lease {
+       struct dhc6_lease *next;
+       struct data_string server_id;
+-      isc_boolean_t released;
++      bool released;
+       int score;
+       u_int8_t pref;
+@@ -1695,8 +1695,8 @@ struct ipv6_pool {
+       int bits;                               /* number of bits, CIDR style */
+       int units;                              /* allocation unit in bits */
+       iasubopt_hash_t *leases;                /* non-free leases */
+-      isc_uint64_t num_active;                /* count of active leases */
+-      isc_uint64_t num_abandoned;             /* count of abandoned leases */
++      uint64_t num_active;                    /* count of active leases */
++      uint64_t num_abandoned;                 /* count of abandoned leases */
+       isc_heap_t *active_timeouts;            /* timeouts for active leases */
+       int num_inactive;                       /* count of inactive leases */
+       isc_heap_t *inactive_timeouts;          /* timeouts for expired or
+@@ -1732,11 +1732,11 @@ struct ipv6_pond {
+       struct ipv6_pool **ipv6_pools;  /* NULL-terminated array */
+       int last_ipv6_pool;             /* offset of last IPv6 pool
+                                          used to issue a lease */
+-      isc_uint64_t num_total;     /* Total number of elements in the pond */
+-      isc_uint64_t num_active;    /* Number of elements in the pond in use */
+-      isc_uint64_t num_abandoned;     /* count of abandoned leases */
++      uint64_t num_total;             /* Total number of elements in the pond */
++      uint64_t num_active;            /* Number of elements in the pond in use */
++      uint64_t num_abandoned;         /* count of abandoned leases */
+       int logged;                     /* already logged a message */
+-      isc_uint64_t low_threshold;     /* low threshold to restart logging */
++      uint64_t low_threshold;         /* low threshold to restart logging */
+       int jumbo_range;
+ #ifdef EUI_64
+       int use_eui_64;         /* use EUI-64 address assignment when true */
+@@ -1745,9 +1745,9 @@ struct ipv6_pond {
+ /*
+  * Max addresses in a pond that can be supported by log threshold
+- * Currently based on max value supported by isc_uint64_t.
++ * Currently based on max value supported by uint64_t.
+ */
+-#define POND_TRACK_MAX ISC_UINT64_MAX
++#define POND_TRACK_MAX UINT64_MAX
+ /* Flags for dhcp_ddns_cb_t */
+ #define DDNS_UPDATE_ADDR              0x0001
+@@ -1868,7 +1868,7 @@ lookup_fqdn6_option(struct universe *uni
+                   unsigned code);
+ void
+ save_fqdn6_option(struct universe *universe, struct option_state *options,
+-                struct option_cache *oc, isc_boolean_t appendp);
++                struct option_cache *oc, bool appendp);
+ void
+ delete_fqdn6_option(struct universe *universe, struct option_state *options,
+                   int code);
+@@ -1953,7 +1953,7 @@ void save_option(struct universe *, stru
+ void also_save_option(struct universe *, struct option_state *,
+                     struct option_cache *);
+ void save_hashed_option(struct universe *, struct option_state *,
+-                      struct option_cache *, isc_boolean_t appendp);
++                      struct option_cache *, bool appendp);
+ void delete_option (struct universe *, struct option_state *, int);
+ void delete_hashed_option (struct universe *,
+                          struct option_state *, int);
+@@ -2041,7 +2041,7 @@ int linked_option_state_dereference (str
+                                    struct option_state *,
+                                    const char *, int);
+ void save_linked_option(struct universe *, struct option_state *,
+-                      struct option_cache *, isc_boolean_t appendp);
++                      struct option_cache *, bool appendp);
+ void linked_option_space_foreach (struct packet *, struct lease *,
+                                 struct client_state *,
+                                 struct option_state *,
+@@ -2069,7 +2069,7 @@ void do_packet (struct interface_info *,
+               struct dhcp_packet *, unsigned,
+               unsigned int, struct iaddr, struct hardware *);
+ void do_packet6(struct interface_info *, const char *,
+-              int, int, const struct iaddr *, isc_boolean_t);
++              int, int, const struct iaddr *, bool);
+ int packet6_len_okay(const char *, int);
+ int validate_packet(struct packet *);
+@@ -2224,7 +2224,7 @@ uint32_t parse_byte_order_uint32(const v
+ int ddns_updates(struct packet *, struct lease *, struct lease *,
+                struct iasubopt *, struct iasubopt *, struct option_state *);
+ isc_result_t ddns_removals(struct lease *, struct iasubopt *,
+-                         struct dhcp_ddns_cb *, isc_boolean_t);
++                         struct dhcp_ddns_cb *, bool);
+ u_int16_t get_conflict_mask(struct option_state *input_options);
+ #if defined (TRACING)
+ void trace_ddns_init(void);
+@@ -2450,7 +2450,7 @@ void dhcpleasequery (struct packet *, in
+ void dhcpv6_leasequery (struct data_string *, struct packet *);
+ /* dhcpv6.c */
+-isc_boolean_t server_duid_isset(void);
++bool server_duid_isset(void);
+ void copy_server_duid(struct data_string *ds, const char *file, int line);
+ void set_server_duid(struct data_string *new_duid);
+ isc_result_t set_server_duid_from_option(void);
+@@ -2852,7 +2852,7 @@ extern void (*bootp_packet_handler) (str
+                                    struct iaddr, struct hardware *);
+ extern void (*dhcpv6_packet_handler)(struct interface_info *,
+                                    const char *, int,
+-                                   int, const struct iaddr *, isc_boolean_t);
++                                   int, const struct iaddr *, bool);
+ extern struct timeout *timeouts;
+ extern omapi_object_type_t *dhcp_type_interface;
+ #if defined (TRACING)
+@@ -2943,7 +2943,7 @@ int addr_or(struct iaddr *result,
+           const struct iaddr *a1, const struct iaddr *a2);
+ int addr_and(struct iaddr *result,
+            const struct iaddr *a1, const struct iaddr *a2);
+-isc_boolean_t is_cidr_mask_valid(const struct iaddr *addr, int bits);
++bool is_cidr_mask_valid(const struct iaddr *addr, int bits);
+ isc_result_t range2cidr(struct iaddrcidrnetlist **result,
+                       const struct iaddr *lo, const struct iaddr *hi);
+ isc_result_t free_iaddrcidrnetlist(struct iaddrcidrnetlist **result);
+@@ -3787,7 +3787,7 @@ isc_result_t ia_add_iasubopt(struct ia_x
+                            const char *file, int line);
+ void ia_remove_iasubopt(struct ia_xx *ia, struct iasubopt *iasubopt,
+                       const char *file, int line);
+-isc_boolean_t ia_equal(const struct ia_xx *a, const struct ia_xx *b);
++bool ia_equal(const struct ia_xx *a, const struct ia_xx *b);
+ isc_result_t ipv6_pool_allocate(struct ipv6_pool **pool, u_int16_t type,
+                               const struct in6_addr *start_addr,
+@@ -3820,9 +3820,9 @@ isc_result_t expire_lease6(struct iasubo
+                          struct ipv6_pool *pool, time_t now);
+ 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,
++bool lease6_exists(const struct ipv6_pool *pool,
+                           const struct in6_addr *addr);
+-isc_boolean_t lease6_usable(struct iasubopt *lease);
++bool lease6_usable(struct iasubopt *lease);
+ isc_result_t cleanup_lease6(ia_hash_t *ia_table,
+                           struct ipv6_pool *pool,
+                           struct iasubopt *lease,
+@@ -3834,13 +3834,13 @@ isc_result_t create_prefix6(struct ipv6_
+                           unsigned int *attempts,
+                           const struct data_string *uid,
+                           time_t soft_lifetime_end_time);
+-isc_boolean_t prefix6_exists(const struct ipv6_pool *pool,
++bool prefix6_exists(const struct ipv6_pool *pool,
+                            const struct in6_addr *pref, u_int8_t plen);
+ isc_result_t add_ipv6_pool(struct ipv6_pool *pool);
+ isc_result_t find_ipv6_pool(struct ipv6_pool **pool, u_int16_t type,
+                           const struct in6_addr *addr);
+-isc_boolean_t ipv6_in_pool(const struct in6_addr *addr,
++bool ipv6_in_pool(const struct in6_addr *addr,
+                          const struct ipv6_pool *pool);
+ isc_result_t ipv6_pond_allocate(struct ipv6_pond **pond,
+                               const char *file, int line);
+Index: dhcp-4.4.1/includes/heap.h
+===================================================================
+--- dhcp-4.4.1.orig/includes/heap.h
++++ dhcp-4.4.1/includes/heap.h
+@@ -26,7 +26,7 @@
+  * The comparision function returns ISC_TRUE if the first argument has
+  * higher priority than the second argument, and ISC_FALSE otherwise.
+  */
+-typedef isc_boolean_t (*isc_heapcompare_t)(void *, void *);
++typedef bool (*isc_heapcompare_t)(void *, void *);
+ /*%
+  * The index function allows the client of the heap to receive a callback
+Index: dhcp-4.4.1/includes/omapip/omapip.h
+===================================================================
+--- dhcp-4.4.1.orig/includes/omapip/omapip.h
++++ dhcp-4.4.1/includes/omapip/omapip.h
+@@ -264,7 +264,7 @@ isc_result_t omapi_protocol_connect (oma
+ isc_result_t omapi_connect_list (omapi_object_t *, omapi_addr_list_t *,
+                                omapi_addr_t *);
+ isc_result_t omapi_protocol_listen (omapi_object_t *, unsigned, int);
+-isc_boolean_t omapi_protocol_authenticated (omapi_object_t *);
++bool omapi_protocol_authenticated (omapi_object_t *);
+ isc_result_t omapi_protocol_configure_security (omapi_object_t *,
+                                               isc_result_t (*)
+                                               (omapi_object_t *,
+Index: dhcp-4.4.1/includes/omapip/omapip_p.h
+===================================================================
+--- dhcp-4.4.1.orig/includes/omapip/omapip_p.h
++++ dhcp-4.4.1/includes/omapip/omapip_p.h
+@@ -149,7 +149,7 @@ typedef struct __omapi_protocol_object {
+       omapi_remote_auth_t *remote_auth_list;  /* Authenticators active on
+                                                  this connection. */
+-      isc_boolean_t insecure;         /* Set to allow unauthenticated
++      bool insecure;          /* Set to allow unauthenticated
+                                          messages. */
+       isc_result_t (*verify_auth) (omapi_object_t *, omapi_auth_key_t *);
+@@ -158,7 +158,7 @@ typedef struct __omapi_protocol_object {
+ typedef struct {
+       OMAPI_OBJECT_PREAMBLE;
+-      isc_boolean_t insecure;         /* Set to allow unauthenticated
++      bool insecure;          /* Set to allow unauthenticated
+                                          messages. */
+       isc_result_t (*verify_auth) (omapi_object_t *, omapi_auth_key_t *);
+@@ -208,7 +208,7 @@ typedef struct __omapi_io_object {
+       isc_result_t (*writer) (omapi_object_t *);
+       isc_result_t (*reaper) (omapi_object_t *);
+       isc_socket_t *fd;
+-      isc_boolean_t closed; /* ISC_TRUE = closed, do not use */
++      bool closed; /* ISC_TRUE = closed, do not use */
+ } omapi_io_object_t;
+ typedef struct __omapi_generic_object {
+Index: dhcp-4.4.1/includes/tree.h
+===================================================================
+--- dhcp-4.4.1.orig/includes/tree.h
++++ dhcp-4.4.1/includes/tree.h
+@@ -304,7 +304,7 @@ struct universe {
+                                            struct option_state *,
+                                            unsigned);
+       void (*save_func) (struct universe *, struct option_state *,
+-                         struct option_cache *, isc_boolean_t);
++                         struct option_cache *, bool );
+       void (*foreach) (struct packet *,
+                        struct lease *, struct client_state *,
+                        struct option_state *, struct option_state *,
+Index: dhcp-4.4.1/common/conflex.c
+===================================================================
+--- dhcp-4.4.1.orig/common/conflex.c
++++ dhcp-4.4.1/common/conflex.c
+@@ -322,7 +322,7 @@ get_raw_token(struct parse *cfile) {
+ static enum dhcp_token 
+ get_next_token(const char **rval, unsigned *rlen, 
+-             struct parse *cfile, isc_boolean_t raw) {
++             struct parse *cfile, bool raw) {
+       int rv;
+       if (cfile -> token) {
+@@ -367,7 +367,7 @@ get_next_token(const char **rval, unsign
+ enum dhcp_token
+ next_token(const char **rval, unsigned *rlen, struct parse *cfile) {
+-      return get_next_token(rval, rlen, cfile, ISC_FALSE);
++      return get_next_token(rval, rlen, cfile, false);
+ }
+@@ -378,7 +378,7 @@ next_token(const char **rval, unsigned *
+ enum dhcp_token
+ next_raw_token(const char **rval, unsigned *rlen, struct parse *cfile) {
+-      return get_next_token(rval, rlen, cfile, ISC_TRUE);
++      return get_next_token(rval, rlen, cfile, true);
+ }
+@@ -393,7 +393,7 @@ next_raw_token(const char **rval, unsign
+ enum dhcp_token
+ do_peek_token(const char **rval, unsigned int *rlen,
+-            struct parse *cfile, isc_boolean_t raw) {
++            struct parse *cfile, bool raw) {
+       int x;
+       if (!cfile->token || (!raw && (cfile->token == WHITESPACE))) {
+@@ -441,7 +441,7 @@ do_peek_token(const char **rval, unsigne
+ enum dhcp_token
+ peek_token(const char **rval, unsigned *rlen, struct parse *cfile) {
+-      return do_peek_token(rval, rlen, cfile, ISC_FALSE);
++      return do_peek_token(rval, rlen, cfile, false);
+ }
+@@ -452,7 +452,7 @@ peek_token(const char **rval, unsigned *
+ enum dhcp_token
+ peek_raw_token(const char **rval, unsigned *rlen, struct parse *cfile) {
+-      return do_peek_token(rval, rlen, cfile, ISC_TRUE);
++      return do_peek_token(rval, rlen, cfile, true);
+ }
+ static void skip_to_eol (cfile)
+Index: dhcp-4.4.1/common/discover.c
+===================================================================
+--- dhcp-4.4.1.orig/common/discover.c
++++ dhcp-4.4.1/common/discover.c
+@@ -73,7 +73,7 @@ void (*bootp_packet_handler) (struct int
+ void (*dhcpv6_packet_handler)(struct interface_info *,
+                             const char *, int,
+                             int, const struct iaddr *,
+-                            isc_boolean_t);
++                            bool);
+ #endif /* DHCPv6 */
+@@ -236,7 +236,7 @@ struct iface_conf_list {
+ struct iface_info {
+       char name[IF_NAMESIZE+1];       /* name of the interface, e.g. "bge0" */
+       struct sockaddr_storage addr;   /* address information */
+-      isc_uint64_t flags;             /* interface flags, e.g. IFF_LOOPBACK */
++      uint64_t flags;                 /* interface flags, e.g. IFF_LOOPBACK */
+ };
+ /* 
+@@ -312,14 +312,14 @@ int
+ next_iface(struct iface_info *info, int *err, struct iface_conf_list *ifaces) {
+       struct LIFREQ *p;
+       struct LIFREQ tmp;
+-      isc_boolean_t foundif;
++      bool foundif;
+ #if defined(sun) || defined(__linux)
+       /* Pointer used to remove interface aliases. */
+       char *s;
+ #endif
+       do {
+-              foundif = ISC_FALSE;
++              foundif = false;
+               if (ifaces->next >= ifaces->num) {
+                       *err = 0;
+@@ -353,8 +353,8 @@ next_iface(struct iface_info *info, int
+               }
+ #endif /* defined(sun) || defined(__linux) */
+-              foundif = ISC_TRUE;
+-      } while ((foundif == ISC_FALSE) ||
++              foundif = true;
++      } while ((foundif == false) ||
+                (strncmp(info->name, "dummy", 5) == 0));
+       
+       memset(&tmp, 0, sizeof(tmp));
+@@ -410,7 +410,7 @@ struct iface_conf_list {
+ struct iface_info {
+       char name[IFNAMSIZ];            /* name of the interface, e.g. "bge0" */
+       struct sockaddr_storage addr;   /* address information */
+-      isc_uint64_t flags;             /* interface flags, e.g. IFF_LOOPBACK */
++      uint64_t flags;                 /* interface flags, e.g. IFF_LOOPBACK */
+ };
+ /* 
+@@ -1190,9 +1190,9 @@ got_one_v6(omapi_object_t *h) {
+                * If a packet is not multicast, we assume it is unicast.
+                */
+               if (IN6_IS_ADDR_MULTICAST(&to)) { 
+-                      is_unicast = ISC_FALSE;
++                      is_unicast = false;
+               } else {
+-                      is_unicast = ISC_TRUE;
++                      is_unicast = true;
+               }
+               ifrom.len = 16;
+Index: dhcp-4.4.1/omapip/iscprint.c
+===================================================================
+--- dhcp-4.4.1.orig/omapip/iscprint.c
++++ dhcp-4.4.1/omapip/iscprint.c
+@@ -59,8 +59,8 @@ isc_print_vsnprintf(char *str, size_t si
+       int plus;
+       int space;
+       int neg;
+-      isc_int64_t tmpi;
+-      isc_uint64_t tmpui;
++      int64_t tmpi;
++      uint64_t tmpui;
+       unsigned long width;
+       unsigned long precision;
+       unsigned int length;
+@@ -234,7 +234,7 @@ isc_print_vsnprintf(char *str, size_t si
+                               goto printint;
+                       case 'o':
+                               if (q)
+-                                      tmpui = va_arg(ap, isc_uint64_t);
++                                      tmpui = va_arg(ap, uint64_t);
+                               else if (l)
+                                       tmpui = va_arg(ap, long int);
+                               else
+@@ -244,7 +244,7 @@ isc_print_vsnprintf(char *str, size_t si
+                               goto printint;
+                       case 'u':
+                               if (q)
+-                                      tmpui = va_arg(ap, isc_uint64_t);
++                                      tmpui = va_arg(ap, uint64_t);
+                               else if (l)
+                                       tmpui = va_arg(ap, unsigned long int);
+                               else
+@@ -253,7 +253,7 @@ isc_print_vsnprintf(char *str, size_t si
+                               goto printint;
+                       case 'x':
+                               if (q)
+-                                      tmpui = va_arg(ap, isc_uint64_t);
++                                      tmpui = va_arg(ap, uint64_t);
+                               else if (l)
+                                       tmpui = va_arg(ap, unsigned long int);
+                               else
+@@ -267,7 +267,7 @@ isc_print_vsnprintf(char *str, size_t si
+                               goto printint;
+                       case 'X':
+                               if (q)
+-                                      tmpui = va_arg(ap, isc_uint64_t);
++                                      tmpui = va_arg(ap, uint64_t);
+                               else if (l)
+                                       tmpui = va_arg(ap, unsigned long int);
+                               else
+Index: dhcp-4.4.1/server/confpars.c
+===================================================================
+--- dhcp-4.4.1.orig/server/confpars.c
++++ dhcp-4.4.1/server/confpars.c
+@@ -4005,15 +4005,15 @@ add_ipv6_pool_to_subnet(struct subnet *s
+       /* Only bother if we aren't already flagged as jumbo */
+       if (pond->jumbo_range == 0) {
+-              if ((units - bits) > (sizeof(isc_uint64_t) * 8)) {
++              if ((units - bits) > (sizeof(uint64_t) * 8)) {
+                       pond->jumbo_range = 1;
+                       pond->num_total = POND_TRACK_MAX;
+               }
+               else {
+-                      isc_uint64_t space_left
++                      uint64_t space_left
+                               = POND_TRACK_MAX - pond->num_total;
+-                      isc_uint64_t addon
+-                              = (isc_uint64_t)(1) << (units - bits);
++                      uint64_t addon
++                              = (uint64_t)(1) << (units - bits);
+                       if (addon > space_left) {
+                               pond->jumbo_range = 1;
+@@ -4739,7 +4739,7 @@ parse_ia_na_declaration(struct parse *cf
+       struct iasubopt *iaaddr;
+       struct ipv6_pool *pool;
+       char addr_buf[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")];
+-      isc_boolean_t newbinding;
++      bool newbinding;
+       struct binding_scope *scope = NULL;
+       struct binding *bnd;
+       struct binding_value *nv = NULL;
+@@ -4959,9 +4959,9 @@ parse_ia_na_declaration(struct parse *cf
+                                       }
+                                       strcpy(bnd->name, val);
+-                                      newbinding = ISC_TRUE;
++                                      newbinding = true;
+                               } else {
+-                                      newbinding = ISC_FALSE;
++                                      newbinding = false;
+                               }
+                               if (!binding_value_allocate(&nv, MDL)) {
+@@ -5186,7 +5186,7 @@ parse_ia_ta_declaration(struct parse *cf
+       struct iasubopt *iaaddr;
+       struct ipv6_pool *pool;
+       char addr_buf[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")];
+-      isc_boolean_t newbinding;
++      bool newbinding;
+       struct binding_scope *scope = NULL;
+       struct binding *bnd;
+       struct binding_value *nv = NULL;
+@@ -5406,9 +5406,9 @@ parse_ia_ta_declaration(struct parse *cf
+                                       }
+                                       strcpy(bnd->name, val);
+-                                      newbinding = ISC_TRUE;
++                                      newbinding = true;
+                               } else {
+-                                      newbinding = ISC_FALSE;
++                                      newbinding = false;
+                               }
+                               if (!binding_value_allocate(&nv, MDL)) {
+@@ -5623,7 +5623,7 @@ parse_ia_pd_declaration(struct parse *cf
+       struct iasubopt *iapref;
+       struct ipv6_pool *pool;
+       char addr_buf[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")];
+-      isc_boolean_t newbinding;
++      bool newbinding;
+       struct binding_scope *scope = NULL;
+       struct binding *bnd;
+       struct binding_value *nv = NULL;
+@@ -5843,9 +5843,9 @@ parse_ia_pd_declaration(struct parse *cf
+                                       }
+                                       strcpy(bnd->name, val);
+-                                      newbinding = ISC_TRUE;
++                                      newbinding = true;
+                               } else {
+-                                      newbinding = ISC_FALSE;
++                                      newbinding = false;
+                               }
+                               if (!binding_value_allocate(&nv, MDL)) {
+Index: dhcp-4.4.1/server/dhcpv6.c
+===================================================================
+--- dhcp-4.4.1.orig/server/dhcpv6.c
++++ dhcp-4.4.1/server/dhcpv6.c
+@@ -71,8 +71,8 @@ struct reply_state {
+       unsigned ia_count;
+       unsigned pd_count;
+       unsigned client_resources;
+-      isc_boolean_t resources_included;
+-      isc_boolean_t static_lease;
++      bool resources_included;
++      bool static_lease;
+       unsigned static_prefixes;
+       struct ia_xx *ia;
+       struct ia_xx *old_ia;
+@@ -123,7 +123,7 @@ static isc_result_t shared_network_from_
+                                               struct packet *packet);
+ static void seek_shared_host(struct host_decl **hp,
+                            struct shared_network *shared);
+-static isc_boolean_t fixed_matches_shared(struct host_decl *host,
++static bool fixed_matches_shared(struct host_decl *host,
+                                         struct shared_network *shared);
+ static isc_result_t reply_process_ia_na(struct reply_state *reply,
+                                       struct option_cache *ia);
+@@ -131,9 +131,9 @@ static isc_result_t reply_process_ia_ta(
+                                       struct option_cache *ia);
+ static isc_result_t reply_process_addr(struct reply_state *reply,
+                                      struct option_cache *addr);
+-static isc_boolean_t address_is_owned(struct reply_state *reply,
++static bool address_is_owned(struct reply_state *reply,
+                                     struct iaddr *addr);
+-static isc_boolean_t temporary_is_available(struct reply_state *reply,
++static bool temporary_is_available(struct reply_state *reply,
+                                           struct iaddr *addr);
+ static isc_result_t find_client_temporaries(struct reply_state *reply);
+ static isc_result_t reply_process_try_addr(struct reply_state *reply,
+@@ -151,7 +151,7 @@ static isc_result_t reply_process_ia_pd(
+ static struct group *find_group_by_prefix(struct reply_state *reply);
+ static isc_result_t reply_process_prefix(struct reply_state *reply,
+                                        struct option_cache *pref);
+-static isc_boolean_t prefix_is_owned(struct reply_state *reply,
++static bool prefix_is_owned(struct reply_state *reply,
+                                    struct iaddrcidrnet *pref);
+ static isc_result_t find_client_prefix(struct reply_state *reply);
+ static isc_result_t reply_process_try_prefix(struct reply_state *reply,
+@@ -174,7 +174,7 @@ static void unicast_reject(struct data_s
+                 const struct data_string *client_id,
+                 const struct data_string *server_id);
+-static isc_boolean_t is_unicast_option_defined(struct packet *packet);
++static bool is_unicast_option_defined(struct packet *packet);
+ static isc_result_t shared_network_from_requested_addr (struct shared_network
+                                                       **shared,
+                                                       struct packet* packet);
+@@ -363,7 +363,7 @@ static struct data_string server_duid;
+ /*
+  * Check if the server_duid has been set.
+  */
+-isc_boolean_t
++bool
+ server_duid_isset(void) {
+       return (server_duid.data != NULL);
+ }
+@@ -992,7 +992,7 @@ void check_pool6_threshold(struct reply_
+                          struct iasubopt *lease)
+ {
+       struct ipv6_pond *pond;
+-      isc_uint64_t used, count, high_threshold;
++      uint64_t used, count, high_threshold;
+       int poolhigh = 0, poollow = 0;
+       char *shared_name = "no name";
+       char tmp_addr[INET6_ADDRSTRLEN];
+@@ -1310,9 +1310,9 @@ pick_v6_address(struct reply_state *repl
+       unsigned int attempts;
+       char tmp_buf[INET6_ADDRSTRLEN];
+       struct iasubopt **addr = &reply->lease;
+-        isc_uint64_t total = 0;
+-        isc_uint64_t active = 0;
+-        isc_uint64_t abandoned = 0;
++        uint64_t total = 0;
++        uint64_t active = 0;
++        uint64_t abandoned = 0;
+       int jumbo_range = 0;
+       char *shared_name = (reply->shared->name ?
+                            reply->shared->name : "(no name)");
+@@ -1825,7 +1825,7 @@ lease_to_client(struct data_string *repl
+               /* Start counting resources (addresses) offered. */
+               reply.client_resources = 0;
+-              reply.resources_included = ISC_FALSE;
++              reply.resources_included = false;
+               status = reply_process_ia_na(&reply, oc);
+@@ -1843,7 +1843,7 @@ lease_to_client(struct data_string *repl
+               /* Start counting resources (addresses) offered. */
+               reply.client_resources = 0;
+-              reply.resources_included = ISC_FALSE;
++              reply.resources_included = false;
+               status = reply_process_ia_ta(&reply, oc);
+@@ -1864,7 +1864,7 @@ lease_to_client(struct data_string *repl
+               /* Start counting resources (prefixes) offered. */
+               reply.client_resources = 0;
+-              reply.resources_included = ISC_FALSE;
++              reply.resources_included = false;
+               status = reply_process_ia_pd(&reply, oc);
+@@ -2077,9 +2077,9 @@ reply_process_ia_na(struct reply_state *
+                                       tmp_addr, MDL) == 0)
+                       log_fatal("Impossible condition at %s:%d.", MDL);
+-              reply->static_lease = ISC_TRUE;
++              reply->static_lease = true;
+       } else
+-              reply->static_lease = ISC_FALSE;
++              reply->static_lease = false;
+       /*
+        * Save the cursor position at the start of the IA, so we can
+@@ -2778,7 +2778,7 @@ reply_process_addr(struct reply_state *r
+  * (fault out all else).  Otherwise it's a dynamic address, so lookup
+  * that address and make sure it belongs to this DUID:IAID pair.
+  */
+-static isc_boolean_t
++static bool
+ address_is_owned(struct reply_state *reply, struct iaddr *addr) {
+       int i;
+       struct ipv6_pond *pond;
+@@ -2791,13 +2791,13 @@ address_is_owned(struct reply_state *rep
+                       log_fatal("Impossible condition at %s:%d.", MDL);
+               if (memcmp(addr->iabuf, reply->fixed.data, 16) == 0)
+-                      return (ISC_TRUE);
++                      return (true);
+-              return (ISC_FALSE);
++              return (false);
+       }
+       if ((reply->old_ia == NULL) || (reply->old_ia->num_iasubopt == 0))
+-              return (ISC_FALSE);
++              return (false);
+       for (i = 0 ; i < reply->old_ia->num_iasubopt ; i++) {
+               struct iasubopt *tmp;
+@@ -2805,8 +2805,8 @@ address_is_owned(struct reply_state *rep
+               tmp = reply->old_ia->iasubopt[i];
+               if (memcmp(addr->iabuf, &tmp->addr, 16) == 0) {
+-                      if (lease6_usable(tmp) == ISC_FALSE) {
+-                              return (ISC_FALSE);
++                      if (lease6_usable(tmp) == false) {
++                              return (false);
+                       }
+                       pond = tmp->ipv6_pool->ipv6_pond;
+@@ -2814,15 +2814,15 @@ address_is_owned(struct reply_state *rep
+                            (permitted(reply->packet, pond->prohibit_list))) ||
+                           ((pond->permit_list != NULL) &&
+                            (!permitted(reply->packet, pond->permit_list))))
+-                              return (ISC_FALSE);
++                              return (false);
+                       iasubopt_reference(&reply->lease, tmp, MDL);
+-                      return (ISC_TRUE);
++                      return (true);
+               }
+       }
+-      return (ISC_FALSE);
++      return (false);
+ }
+ /* Process a client-supplied IA_TA.  This may append options to the tail of
+@@ -2890,7 +2890,7 @@ reply_process_ia_ta(struct reply_state *
+       /*
+        * Temporary leases are dynamic by definition.
+        */
+-      reply->static_lease = ISC_FALSE;
++      reply->static_lease = false;
+       /*
+        * Save the cursor position at the start of the IA, so we can
+@@ -2972,7 +2972,7 @@ reply_process_ia_ta(struct reply_state *
+               }
+               status = ISC_R_CANCELED;
+               reply->client_resources = 0;
+-              reply->resources_included = ISC_FALSE;
++              reply->resources_included = false;
+               if (reply->lease != NULL)
+                       iasubopt_dereference(&reply->lease, MDL);
+       }
+@@ -3364,7 +3364,7 @@ void shorten_lifetimes(struct reply_stat
+ /*
+  * Verify the temporary address is available.
+  */
+-static isc_boolean_t
++static bool
+ temporary_is_available(struct reply_state *reply, struct iaddr *addr) {
+       struct in6_addr tmp_addr;
+       struct subnet *subnet;
+@@ -3379,7 +3379,7 @@ temporary_is_available(struct reply_stat
+        * So this is not a request for this address.
+        */
+       if (IN6_IS_ADDR_UNSPECIFIED(&tmp_addr))
+-              return ISC_FALSE;
++              return false;
+       /*
+        * Verify that this address is on the client's network.
+@@ -3393,13 +3393,13 @@ temporary_is_available(struct reply_stat
+       /* Address not found on shared network. */
+       if (subnet == NULL)
+-              return ISC_FALSE;
++              return false;
+       /*
+        * Check if this address is owned (must be before next step).
+        */
+       if (address_is_owned(reply, addr))
+-              return ISC_TRUE;
++              return true;
+       /*
+        * Verify that this address is in a temporary pool and try to get it.
+@@ -3424,18 +3424,18 @@ temporary_is_available(struct reply_stat
+       }
+       if (pool == NULL)
+-              return ISC_FALSE;
++              return false;
+       if (lease6_exists(pool, &tmp_addr))
+-              return ISC_FALSE;
++              return false;
+       if (iasubopt_allocate(&reply->lease, MDL) != ISC_R_SUCCESS)
+-              return ISC_FALSE;
++              return false;
+       reply->lease->addr = tmp_addr;
+       reply->lease->plen = 0;
+       /* Default is soft binding for 2 minutes. */
+       if (add_lease6(pool, reply->lease, cur_time + 120) != ISC_R_SUCCESS)
+-              return ISC_FALSE;
++              return false;
+-      return ISC_TRUE;
++      return true;
+ }
+ /*
+@@ -3652,7 +3652,7 @@ find_client_address(struct reply_state *
+                        */
+                       if ((candidate_shared != reply->shared) ||
+-                          (lease6_usable(lease) != ISC_TRUE))
++                          (lease6_usable(lease) != true))
+                               continue;
+                       if (((pond->prohibit_list != NULL) &&
+@@ -3971,7 +3971,7 @@ reply_process_send_addr(struct reply_sta
+               goto cleanup;
+       }
+-      reply->resources_included = ISC_TRUE;
++      reply->resources_included = true;
+       cleanup:
+       if (data.data != NULL)
+@@ -4722,7 +4722,7 @@ reply_process_prefix(struct reply_state
+  * (fault out all else).  Otherwise it's a dynamic prefix, so lookup
+  * that prefix and make sure it belongs to this DUID:IAID pair.
+  */
+-static isc_boolean_t
++static bool
+ prefix_is_owned(struct reply_state *reply, struct iaddrcidrnet *pref) {
+       struct iaddrcidrnetlist *l;
+       int i;
+@@ -4736,14 +4736,14 @@ prefix_is_owned(struct reply_state *repl
+                       if ((pref->bits == l->cidrnet.bits) &&
+                           (memcmp(pref->lo_addr.iabuf,
+                                   l->cidrnet.lo_addr.iabuf, 16) == 0))
+-                              return (ISC_TRUE);
++                              return (true);
+               }
+-              return (ISC_FALSE);
++              return (false);
+       }
+       if ((reply->old_ia == NULL) ||
+           (reply->old_ia->num_iasubopt == 0))
+-              return (ISC_FALSE);
++              return (false);
+       for (i = 0 ; i < reply->old_ia->num_iasubopt ; i++) {
+               struct iasubopt *tmp;
+@@ -4752,8 +4752,8 @@ prefix_is_owned(struct reply_state *repl
+               if ((pref->bits == (int) tmp->plen) &&
+                   (memcmp(pref->lo_addr.iabuf, &tmp->addr, 16) == 0)) {
+-                      if (lease6_usable(tmp) == ISC_FALSE) {
+-                              return (ISC_FALSE);
++                      if (lease6_usable(tmp) == false) {
++                              return (false);
+                       }
+                       pond = tmp->ipv6_pool->ipv6_pond;
+@@ -4761,14 +4761,14 @@ prefix_is_owned(struct reply_state *repl
+                            (permitted(reply->packet, pond->prohibit_list))) ||
+                           ((pond->permit_list != NULL) &&
+                            (!permitted(reply->packet, pond->permit_list))))
+-                              return (ISC_FALSE);
++                              return (false);
+                       iasubopt_reference(&reply->lease, tmp, MDL);
+-                      return (ISC_TRUE);
++                      return (true);
+               }
+       }
+-      return (ISC_FALSE);
++      return (false);
+ }
+ /*
+@@ -4914,7 +4914,7 @@ find_client_prefix(struct reply_state *r
+                        */
+                       if (((candidate_shared != NULL) &&
+                            (candidate_shared != reply->shared)) ||
+-                          (lease6_usable(prefix) != ISC_TRUE))
++                          (lease6_usable(prefix) != true))
+                               continue;
+                       /*
+@@ -5233,7 +5233,7 @@ reply_process_send_prefix(struct reply_s
+               goto cleanup;
+       }
+-      reply->resources_included = ISC_TRUE;
++      reply->resources_included = true;
+       cleanup:
+       if (data.data != NULL)
+@@ -5383,8 +5383,8 @@ dhcpv6_request(struct data_string *reply
+       /* If the REQUEST arrived via unicast and unicast option isn't set,
+        * reject it per RFC 3315, Sec 18.2.1 */
+-      if (packet->unicast == ISC_TRUE &&
+-          is_unicast_option_defined(packet) == ISC_FALSE) {
++      if (packet->unicast == true &&
++          is_unicast_option_defined(packet) == false) {
+               unicast_reject(reply_ret, packet, &client_id, &server_id);
+       } else {
+               /*
+@@ -5505,7 +5505,7 @@ dhcpv6_confirm(struct data_string *reply
+       struct option_state *cli_enc_opt_state, *opt_state;
+       struct iaddr cli_addr;
+       int pass;
+-      isc_boolean_t inappropriate, has_addrs;
++      bool inappropriate, has_addrs;
+       char reply_data[65536];
+       struct dhcpv6_packet *reply = (struct dhcpv6_packet *)reply_data;
+       int reply_ofs = (int)(offsetof(struct dhcpv6_packet, options));
+@@ -5556,7 +5556,7 @@ dhcpv6_confirm(struct data_string *reply
+               goto exit;
+       /* Are the addresses in all the IA's appropriate for that link? */
+-      has_addrs = inappropriate = ISC_FALSE;
++      has_addrs = inappropriate = false;
+       pass = D6O_IA_NA;
+       while(!inappropriate) {
+               /* If we've reached the end of the IA_NA pass, move to the
+@@ -5602,7 +5602,7 @@ dhcpv6_confirm(struct data_string *reply
+                       data_string_forget(&iaaddr, MDL);
+                       /* Record that we've processed at least one address. */
+-                      has_addrs = ISC_TRUE;
++                      has_addrs = true;
+                       /* Find out if any subnets cover this address. */
+                       for (subnet = shared->subnets ; subnet != NULL ;
+@@ -5621,7 +5621,7 @@ dhcpv6_confirm(struct data_string *reply
+                        * continue searching.
+                        */
+                       if (subnet == NULL) {
+-                              inappropriate = ISC_TRUE;
++                              inappropriate = true;
+                               break;
+                       }
+               }
+@@ -5719,8 +5719,8 @@ dhcpv6_renew(struct data_string *reply,
+       /* If the RENEW arrived via unicast and unicast option isn't set,
+        * reject it per RFC 3315, Sec 18.2.3 */
+-      if (packet->unicast == ISC_TRUE &&
+-          is_unicast_option_defined(packet) == ISC_FALSE) {
++      if (packet->unicast == true &&
++          is_unicast_option_defined(packet) == false) {
+               unicast_reject(reply, packet, &client_id, &server_id);
+       } else {
+               /*
+@@ -6142,8 +6142,8 @@ dhcpv6_decline(struct data_string *reply
+       /* If the DECLINE arrived via unicast and unicast option isn't set,
+        * reject it per RFC 3315, Sec 18.2.7 */
+-      if (packet->unicast == ISC_TRUE &&
+-          is_unicast_option_defined(packet) == ISC_FALSE) {
++      if (packet->unicast == true &&
++          is_unicast_option_defined(packet) == false) {
+               unicast_reject(reply, packet, &client_id, &server_id);
+       } else {
+               /*
+@@ -6597,8 +6597,8 @@ dhcpv6_release(struct data_string *reply
+       /* If the RELEASE arrived via unicast and unicast option isn't set,
+        * reject it per RFC 3315, Sec 18.2.6 */
+-      if (packet->unicast == ISC_TRUE &&
+-          is_unicast_option_defined(packet) == ISC_FALSE) {
++      if (packet->unicast == true &&
++          is_unicast_option_defined(packet) == false) {
+               unicast_reject(reply, packet, &client_id, &server_id);
+       } else {
+               /*
+@@ -6897,7 +6897,7 @@ dhcpv6_relay_forw(struct data_string *re
+               }
+               data_string_forget(&a_opt, MDL);
+-              packet->relay_source_port = ISC_TRUE;
++              packet->relay_source_port = true;
+       }
+ #endif
+@@ -7219,7 +7219,7 @@ dhcp4o6_relay_forw(struct data_string *r
+               }
+               data_string_forget(&a_opt, MDL);
+-              packet->relay_source_port = ISC_TRUE;
++              packet->relay_source_port = true;
+       }
+ #endif
+@@ -8036,35 +8036,35 @@ seek_shared_host(struct host_decl **hp,
+               host_reference(hp, seek, MDL);
+ }
+-static isc_boolean_t
++static bool
+ fixed_matches_shared(struct host_decl *host, struct shared_network *shared) {
+       struct subnet *subnet;
+       struct data_string addr;
+-      isc_boolean_t matched;
++      bool matched;
+       struct iaddr fixed;
+       if (host->fixed_addr == NULL)
+-              return ISC_FALSE;
++              return false;
+       memset(&addr, 0, sizeof(addr));
+       if (!evaluate_option_cache(&addr, NULL, NULL, NULL, NULL, NULL,
+                                  &global_scope, host->fixed_addr, MDL))
+-              return ISC_FALSE;
++              return false;
+       if (addr.len < 16) {
+               data_string_forget(&addr, MDL);
+-              return ISC_FALSE;
++              return false;
+       }
+       fixed.len = 16;
+       memcpy(fixed.iabuf, addr.data, 16);
+-      matched = ISC_FALSE;
++      matched = false;
+       for (subnet = shared->subnets ; subnet != NULL ;
+            subnet = subnet->next_sibling) {
+               if (addr_eq(subnet_number(fixed, subnet->netmask),
+                           subnet->net)) {
+-                      matched = ISC_TRUE;
++                      matched = true;
+                       break;
+               }
+       }
+@@ -8167,15 +8167,15 @@ unicast_reject(struct data_string *reply
+  * statements from the network's group outward into a local option cache.
+  * The option cache is then scanned for the presence of unicast option.  If
+  * the packet cannot be mapped to a shared network, the function returns
+- * ISC_FALSE.
++ * false.
+  * \param packet inbound packet from the client
+  *
+- * \return ISC_TRUE if the dhcp6.unicast option is defined, false otherwise.
++ * \return true if the dhcp6.unicast option is defined, false otherwise.
+  *
+  */
+-isc_boolean_t
++bool
+ is_unicast_option_defined(struct packet *packet) {
+-        isc_boolean_t is_defined = ISC_FALSE;
++        bool is_defined = false;
+       struct option_state *opt_state = NULL;
+       struct option_cache *oc = NULL;
+       struct shared_network *shared = NULL;
+@@ -8195,7 +8195,7 @@ is_unicast_option_defined(struct packet
+                * logic will catch it */
+               log_error("is_unicast_option_defined:"
+                         "cannot attribute packet to a network.");
+-              return (ISC_FALSE);
++              return (false);
+       }
+       /* Now that we've mapped it to a network, execute statments to that
+@@ -8205,7 +8205,7 @@ is_unicast_option_defined(struct packet
+                                   &global_scope, shared->group, NULL, NULL);
+       oc = lookup_option(&dhcpv6_universe, opt_state, D6O_UNICAST);
+-      is_defined = (oc != NULL ? ISC_TRUE : ISC_FALSE);
++      is_defined = (oc != NULL ? true : false);
+       log_debug("is_unicast_option_defined: option found : %d", is_defined);
+       if (shared != NULL) {
+Index: dhcp-4.4.1/client/clparse.c
+===================================================================
+--- dhcp-4.4.1.orig/client/clparse.c
++++ dhcp-4.4.1/client/clparse.c
+@@ -1527,7 +1527,7 @@ parse_client6_lease_statement(struct par
+                     case TOKEN_RELEASED:
+                     case TOKEN_ABANDONED:
+-                      lease->released = ISC_TRUE;
++                      lease->released = true;
+                       break;
+                     default:
+Index: dhcp-4.4.1/client/dhc6.c
+===================================================================
+--- dhcp-4.4.1.orig/client/dhc6.c
++++ dhcp-4.4.1/client/dhc6.c
+@@ -109,7 +109,7 @@ static isc_result_t dhc6_add_ia_pd(struc
+                                  u_int8_t message,
+                                  int wanted,
+                                  int *added);
+-static isc_boolean_t stopping_finished(void);
++static bool stopping_finished(void);
+ static void dhc6_merge_lease(struct dhc6_lease *src, struct dhc6_lease *dst);
+ void do_select6(void *input);
+ void do_refresh6(void *input);
+@@ -131,7 +131,7 @@ static void script_write_params6(struct
+                                const char *prefix,
+                                struct option_state *options);
+ static void script_write_requested6(struct client_state *client);
+-static isc_boolean_t active_prefix(struct client_state *client);
++static bool active_prefix(struct client_state *client);
+ static int check_timing6(struct client_state *client, u_int8_t msg_type,
+                        char *msg_str, struct dhc6_lease *lease,
+@@ -149,7 +149,7 @@ static isc_result_t dhc6_add_ia_na_decli
+                                          struct data_string *packet,
+                                          struct dhc6_lease *lease);
+ static int drop_declined_addrs(struct dhc6_lease *lease);
+-static isc_boolean_t unexpired_address_in_lease(struct dhc6_lease *lease);
++static bool unexpired_address_in_lease(struct dhc6_lease *lease);
+ extern int onetry;
+ extern int stateless;
+@@ -418,14 +418,14 @@ valid_reply(struct packet *packet, struc
+ {
+       struct data_string sid, cid;
+       struct option_cache *oc;
+-      int rval = ISC_TRUE;
++      int rval = true;
+       memset(&sid, 0, sizeof(sid));
+       memset(&cid, 0, sizeof(cid));
+       if (!lookup_option(&dhcpv6_universe, packet->options, D6O_SERVERID)) {
+               log_error("Response without a server identifier received.");
+-              rval = ISC_FALSE;
++              rval = false;
+       }
+       oc = lookup_option(&dhcpv6_universe, packet->options, D6O_CLIENTID);
+@@ -434,7 +434,7 @@ valid_reply(struct packet *packet, struc
+                                  client->sent_options, &global_scope, oc,
+                                  MDL)) {
+               log_error("Response without a client identifier.");
+-              rval = ISC_FALSE;
++              rval = false;
+       }
+       oc = lookup_option(&dhcpv6_universe, client->sent_options,
+@@ -444,7 +444,7 @@ valid_reply(struct packet *packet, struc
+                                  client->sent_options, NULL, &global_scope,
+                                  oc, MDL)) {
+               log_error("Local client identifier is missing!");
+-              rval = ISC_FALSE;
++              rval = false;
+       }
+       if (sid.len == 0 ||
+@@ -452,7 +452,7 @@ valid_reply(struct packet *packet, struc
+           memcmp(sid.data, cid.data, sid.len)) {
+               log_error("Advertise with matching transaction ID, but "
+                         "mismatching client id.");
+-              rval = ISC_FALSE;
++              rval = false;
+       }
+       /* clean up pointers to the strings */
+@@ -2375,7 +2375,7 @@ start_release6(struct client_state *clie
+       /* Note this in the lease file. */
+       if (client->active_lease == NULL)
+               return;
+-      client->active_lease->released = ISC_TRUE;
++      client->active_lease->released = true;
+       write_client6_lease(client, client->active_lease, 0, 1);
+       /* Set timers per RFC3315 section 18.1.6. */
+@@ -2612,7 +2612,7 @@ dhc6_check_advertise(struct dhc6_lease *
+ {
+       struct dhc6_ia *ia;
+       isc_result_t rval = ISC_R_SUCCESS;
+-      int have_addrs = ISC_FALSE;
++      int have_addrs = false;
+       unsigned code;
+       const char *scope;
+       int got_na = 0, got_ta = 0, got_pd = 0;
+@@ -2650,14 +2650,14 @@ dhc6_check_advertise(struct dhc6_lease *
+                * Should we check the addr itself for usability?
+                */
+               if (ia->addrs != NULL) {
+-                      have_addrs = ISC_TRUE;
++                      have_addrs = true;
+               }
+       }
+       /* If we didn't get some addrs or the user required us to
+        * get all of the requested IAs and we didn't return an error
+        */
+-      if ((have_addrs != ISC_TRUE) ||
++      if ((have_addrs != true) ||
+           ((require_all_ias != 0) &&
+            ((got_na < wanted_ia_na) ||
+             (got_ta < wanted_ia_ta) ||
+@@ -2670,7 +2670,7 @@ dhc6_check_advertise(struct dhc6_lease *
+ /* status code <-> action matrix for the client in INIT state
+  * (rapid/commit).  Returns always false as no action is defined.
+  */
+-static isc_boolean_t
++static bool
+ dhc6_init_action(struct client_state *client, isc_result_t *rvalp,
+                unsigned code)
+ {
+@@ -2679,21 +2679,21 @@ dhc6_init_action(struct client_state *cl
+       if (client == NULL) {
+               *rvalp = DHCP_R_INVALIDARG;
+-              return ISC_FALSE;
++              return false;
+       }
+       if (*rvalp == ISC_R_SUCCESS)
+-              return ISC_FALSE;
++              return false;
+       /* No possible action in any case... */
+-      return ISC_FALSE;
++      return false;
+ }
+ /* status code <-> action matrix for the client in SELECT state
+  * (request/reply).  Returns true if action was taken (and the
+  * packet should be ignored), or false if no action was taken.
+  */
+-static isc_boolean_t
++static bool
+ dhc6_select_action(struct client_state *client, isc_result_t *rvalp,
+                  unsigned code)
+ {
+@@ -2705,12 +2705,12 @@ dhc6_select_action(struct client_state *
+       if (client == NULL) {
+               *rvalp = DHCP_R_INVALIDARG;
+-              return ISC_FALSE;
++              return false;
+       }
+       rval = *rvalp;
+       if (rval == ISC_R_SUCCESS)
+-              return ISC_FALSE;
++              return false;
+       switch (code) {
+               /* We may have an earlier failure status code (so no
+@@ -2723,7 +2723,7 @@ dhc6_select_action(struct client_state *
+             case STATUS_NoBinding:
+             case STATUS_UseMulticast:
+               /* Take no action. */
+-              return ISC_FALSE;
++              return false;
+               /* If the server can't deal with us, either try the
+                * next advertised server, or continue retrying if there
+@@ -2739,7 +2739,7 @@ dhc6_select_action(struct client_state *
+                       break;
+               } else /* Take no action - continue to retry. */
+-                      return ISC_FALSE;
++                      return false;
+               /* If the server has no addresses, try other servers if
+                * we got some, otherwise go to INIT to hope for more
+@@ -2748,7 +2748,7 @@ dhc6_select_action(struct client_state *
+             case STATUS_NoAddrsAvail:
+             case STATUS_NoPrefixAvail:
+               if (client->state == S_REBOOTING)
+-                      return ISC_FALSE;
++                      return false;
+               if (client->selected_lease == NULL)
+                       log_fatal("Impossible case at %s:%d.", MDL);
+@@ -2794,7 +2794,7 @@ dhc6_select_action(struct client_state *
+               break;
+       }
+-      return ISC_TRUE;
++      return true;
+ }
+ static void
+@@ -2821,7 +2821,7 @@ dhc6_withdraw_lease(struct client_state
+  * (request/reply).  Returns true if action was taken (and the
+  * packet should be ignored), or false if no action was taken.
+  */
+-static isc_boolean_t
++static bool
+ dhc6_reply_action(struct client_state *client, isc_result_t *rvalp,
+                 unsigned code)
+ {
+@@ -2832,12 +2832,12 @@ dhc6_reply_action(struct client_state *c
+       if (client == NULL) {
+               *rvalp = DHCP_R_INVALIDARG;
+-              return ISC_FALSE;
++              return false;
+       }
+       rval = *rvalp;
+       if (rval == ISC_R_SUCCESS)
+-              return ISC_FALSE;
++              return false;
+       switch (code) {
+               /* It's possible an earlier status code set rval to a failure
+@@ -2852,7 +2852,7 @@ dhc6_reply_action(struct client_state *c
+             case STATUS_UnspecFail:
+               /* For unknown codes...it's a soft (retryable) error. */
+             default:
+-              return ISC_FALSE;
++              return false;
+               /* The server is telling us to use a multicast address, so
+                * we have to delete the unicast option from the active
+@@ -2865,7 +2865,7 @@ dhc6_reply_action(struct client_state *c
+                       delete_option(&dhcp_universe,
+                                     client->active_lease->options,
+                                     D6O_UNICAST);
+-              return ISC_FALSE;
++              return false;
+               /* "When the client receives a NotOnLink status from the
+                *  server in response to a Request, the client can either
+@@ -2914,7 +2914,7 @@ dhc6_reply_action(struct client_state *c
+               break;
+       }
+-      return ISC_TRUE;
++      return true;
+ }
+ /* status code <-> action matrix for the client in STOPPED state
+@@ -2922,7 +2922,7 @@ dhc6_reply_action(struct client_state *c
+  * packet should be ignored), or false if no action was taken.
+  * NoBinding is translated into Success.
+  */
+-static isc_boolean_t
++static bool
+ dhc6_stop_action(struct client_state *client, isc_result_t *rvalp,
+                 unsigned code)
+ {
+@@ -2933,12 +2933,12 @@ dhc6_stop_action(struct client_state *cl
+       if (client == NULL) {
+               *rvalp = DHCP_R_INVALIDARG;
+-              return ISC_FALSE;
++              return false;
+       }
+       rval = *rvalp;
+       if (rval == ISC_R_SUCCESS)
+-              return ISC_FALSE;
++              return false;
+       switch (code) {
+               /* It's possible an earlier status code set rval to a failure
+@@ -2948,13 +2948,13 @@ dhc6_stop_action(struct client_state *cl
+               /* For unknown codes...it's a soft (retryable) error. */
+             case STATUS_UnspecFail:
+             default:
+-              return ISC_FALSE;
++              return false;
+               /* NoBinding is not an error */
+             case STATUS_NoBinding:
+               if (rval == ISC_R_FAILURE)
+                       *rvalp = ISC_R_SUCCESS;
+-              return ISC_FALSE;
++              return false;
+               /* Should not happen */
+             case STATUS_NoAddrsAvail:
+@@ -2976,13 +2976,13 @@ dhc6_stop_action(struct client_state *cl
+                       delete_option(&dhcp_universe,
+                                     client->active_lease->options,
+                                     D6O_UNICAST);
+-              return ISC_FALSE;
++              return false;
+       }
+-      return ISC_TRUE;
++      return true;
+ }
+-static isc_boolean_t
++static bool
+ dhc6_decline_action(struct client_state *client, isc_result_t *rvalp,
+                 unsigned code)
+ {
+@@ -2993,12 +2993,12 @@ dhc6_decline_action(struct client_state
+       if (client == NULL) {
+               *rvalp = DHCP_R_INVALIDARG;
+-              return ISC_FALSE;
++              return false;
+       }
+       rval = *rvalp;
+       if (rval == ISC_R_SUCCESS) {
+-              return ISC_FALSE;
++              return false;
+       }
+       switch (code) {
+@@ -3013,13 +3013,13 @@ dhc6_decline_action(struct client_state
+                       delete_option(&dhcp_universe,
+                                     client->active_lease->options,
+                                     D6O_UNICAST);
+-              return ISC_FALSE;
++              return false;
+       default:
+               /* Anything else is basically meaningless */
+               break;
+       }
+-      return ISC_TRUE;
++      return true;
+ }
+@@ -3029,14 +3029,14 @@ dhc6_decline_action(struct client_state
+ static isc_result_t
+ dhc6_check_reply(struct client_state *client, struct dhc6_lease *new)
+ {
+-      isc_boolean_t (*action)(struct client_state *,
++      bool (*action)(struct client_state *,
+                               isc_result_t *, unsigned);
+       struct dhc6_ia *ia;
+       isc_result_t rval = ISC_R_SUCCESS;
+       unsigned code;
+       const char *scope;
+       int nscore, sscore;
+-      int have_addrs = ISC_FALSE;
++      int have_addrs = false;
+       int got_na = 0, got_ta = 0, got_pd = 0;
+       if ((client == NULL) || (new == NULL))
+@@ -3102,7 +3102,7 @@ dhc6_check_reply(struct client_state *cl
+                       return ISC_R_CANCELED;
+               if (ia->addrs != NULL) {
+-                      have_addrs = ISC_TRUE;
++                      have_addrs = true;
+               }
+       }
+@@ -3119,13 +3119,13 @@ dhc6_check_reply(struct client_state *cl
+        * check in and commented it as I eventually do want
+        * us to check for TAs as well.  SAR
+        */
+-      if ((have_addrs != ISC_TRUE) ||
++      if ((have_addrs != true) ||
+           ((require_all_ias != 0) &&
+            ((got_na < wanted_ia_na) ||
+             /*(got_ta < wanted_ia_ta) ||*/
+             (got_pd < wanted_ia_pd)))) {
+               rval = ISC_R_FAILURE;
+-              if (action(client, &rval, STATUS_NoAddrsAvail) == ISC_TRUE) {
++              if (action(client, &rval, STATUS_NoAddrsAvail) == true) {
+                       return ISC_R_CANCELED;
+               }
+       }
+@@ -4256,7 +4256,7 @@ dhc6_add_ia_pd(struct client_state *clie
+ /* stopping_finished() checks if there is a remaining work to do.
+  */
+-static isc_boolean_t
++static bool
+ stopping_finished(void)
+ {
+       struct interface_info *ip;
+@@ -4265,12 +4265,12 @@ stopping_finished(void)
+       for (ip = interfaces; ip; ip = ip -> next) {
+               for (client = ip -> client; client; client = client -> next) {
+                       if (client->state != S_STOPPED)
+-                              return ISC_FALSE;
++                              return false;
+                       if (client->active_lease != NULL)
+-                              return ISC_FALSE;
++                              return false;
+               }
+       }
+-      return ISC_TRUE;
++      return true;
+ }
+ /* reply_handler() accepts a Reply while we're attempting Select or Renew or
+@@ -4474,8 +4474,8 @@ dhc6_check_times(struct client_state *cl
+       struct dhc6_addr *addr;
+       TIME renew=MAX_TIME, rebind=MAX_TIME, depref=MAX_TIME,
+            lo_expire=MAX_TIME, hi_expire=0, max_ia_starts = 0, tmp;
+-      int has_addrs = ISC_FALSE;
+-      int has_preferred_addrs = ISC_FALSE;
++      int has_addrs = false;
++      int has_preferred_addrs = false;
+       struct timeval tv;
+       lease = client->active_lease;
+@@ -4506,7 +4506,7 @@ dhc6_check_times(struct client_state *cl
+                                       depref = tmp;
+                               if (!(addr->flags & DHC6_ADDR_EXPIRED)) {
+-                                      has_preferred_addrs = ISC_TRUE;
++                                      has_preferred_addrs = true;
+                               }
+                       }
+@@ -4525,7 +4525,7 @@ dhc6_check_times(struct client_state *cl
+                               if (tmp < this_ia_lo_expire)
+                                       this_ia_lo_expire = tmp;
+-                              has_addrs = ISC_TRUE;
++                              has_addrs = true;
+                       }
+               }
+@@ -4603,7 +4603,7 @@ dhc6_check_times(struct client_state *cl
+        * In the future, we may decide that we're done here, or to
+        * schedule a future request (using 4-pkt info-request model).
+        */
+-      if (has_addrs == ISC_FALSE) {
++      if (has_addrs == false) {
+               dhc6_lease_destroy(&client->active_lease, MDL);
+               client->active_lease = NULL;
+@@ -4855,7 +4855,7 @@ start_bound(struct client_state *client)
+                         "is selected.");
+               return;
+       }
+-      lease->released = ISC_FALSE;
++      lease->released = false;
+       old = client->old_lease;
+       client->v6_handler = bound_handler;
+@@ -5448,8 +5448,8 @@ do_expire(void *input)
+       struct dhc6_lease *lease;
+       struct dhc6_ia *ia, **tia;
+       struct dhc6_addr *addr;
+-      int has_addrs = ISC_FALSE;
+-      int ia_has_addrs = ISC_FALSE;
++      int has_addrs = false;
++      int ia_has_addrs = false;
+       client = (struct client_state *)input;
+@@ -5458,7 +5458,7 @@ do_expire(void *input)
+               return;
+       for (ia = lease->bindings, tia = &lease->bindings; ia != NULL ; ) {
+-              ia_has_addrs = ISC_FALSE;
++              ia_has_addrs = false;
+               for (addr = ia->addrs ; addr != NULL ; addr = addr->next) {
+                       if (addr->flags & DHC6_ADDR_EXPIRED)
+                               continue;
+@@ -5495,14 +5495,14 @@ do_expire(void *input)
+                               continue;
+                       }
+-                      ia_has_addrs = ISC_TRUE;
+-                      has_addrs = ISC_TRUE;
++                      ia_has_addrs = true;
++                      has_addrs = true;
+               }
+               /* Update to the next ia and git rid of this ia
+                * if it doesn't have any leases.
+                */
+-              if (ia_has_addrs == ISC_TRUE) {
++              if (ia_has_addrs == true) {
+                       /* leases, just advance the list pointer */
+                       tia = &(*tia)->next;
+               } else {
+@@ -5517,7 +5517,7 @@ do_expire(void *input)
+       }
+       /* Clean up empty leases. */
+-      if (has_addrs == ISC_FALSE) {
++      if (has_addrs == false) {
+               log_info("PRC: Bound lease is devoid of active addresses."
+                        "  Re-initializing.");
+@@ -5596,14 +5596,14 @@ dhc6_check_irt(struct client_state *clie
+       TIME expire = MAX_TIME;
+       struct timeval tv;
+       int i;
+-      isc_boolean_t found = ISC_FALSE;
++      bool found = false;
+       cancel_timeout(refresh_info_request6, client);
+       req = client->config->requested_options;
+       for (i = 0; req[i] != NULL; i++) {
+               if (req[i] == irt_option) {
+-                      found = ISC_TRUE;
++                      found = true;
+                       break;
+               }
+       }
+@@ -5924,7 +5924,7 @@ static void script_write_requested6(clie
+ /*
+  * Check if there is something not fully defined in the active lease.
+  */
+-static isc_boolean_t
++static bool
+ active_prefix(struct client_state *client)
+ {
+       struct dhc6_lease *lease;
+@@ -5934,21 +5934,21 @@ active_prefix(struct client_state *clien
+       lease = client->active_lease;
+       if (lease == NULL)
+-              return ISC_FALSE;
++              return false;
+       memset(zeros, 0, 16);
+       for (ia = lease->bindings; ia != NULL; ia = ia->next) {
+               if (ia->ia_type != D6O_IA_PD)
+                       continue;
+               for (pref = ia->addrs; pref != NULL; pref = pref->next) {
+                       if (pref->plen == 0)
+-                              return ISC_FALSE;
++                              return false;
+                       if (pref->address.len != 16)
+-                              return ISC_FALSE;
++                              return false;
+                       if (memcmp(pref->address.iabuf, zeros, 16) == 0)
+-                              return ISC_FALSE;
++                              return false;
+               }
+       }
+-      return ISC_TRUE;
++      return true;
+ }
+ /* Adds a leases's declined addreses to the outbound packet
+@@ -6111,26 +6111,26 @@ int drop_declined_addrs(struct dhc6_leas
+ /* Run through the addresses in lease and return true if there's any unexpired.
+  * Return false otherwise.
+  */
+-static isc_boolean_t
++static bool
+ unexpired_address_in_lease(struct dhc6_lease *lease)
+ {
+       struct dhc6_ia *ia;
+       struct dhc6_addr *addr;
+       if (lease == NULL) {
+-              return ISC_FALSE;
++              return false;
+       }
+       for (ia = lease->bindings ; ia != NULL ; ia = ia->next) {
+               for (addr = ia->addrs ; addr != NULL ; addr = addr->next) {
+                       if (!(addr->flags & DHC6_ADDR_EXPIRED) &&
+                           (addr->starts + addr->max_life > cur_time)) {
+-                              return ISC_TRUE;
++                              return true;
+                       }
+               }
+       }
+       log_debug("PRC: Previous lease is devoid of active addresses.");
+-      return ISC_FALSE;
++      return false;
+ }
+ #endif /* DHCPv6 */
+Index: dhcp-4.4.1/client/dhclient.c
+===================================================================
+--- dhcp-4.4.1.orig/client/dhclient.c
++++ dhcp-4.4.1/client/dhclient.c
+@@ -52,7 +52,7 @@ char *path_dhclient_script = path_dhclie
+ const char *path_dhclient_duid = NULL;
+ /* False (default) => we write and use a pid file */
+-isc_boolean_t no_pid_file = ISC_FALSE;
++bool no_pid_file = false;
+ int dhcp_max_agent_option_packet_length = 0;
+@@ -397,7 +397,7 @@ main(int argc, char **argv) {
+                       path_dhclient_pid = argv[i];
+                       no_dhclient_pid = 1;
+               } else if (!strcmp(argv[i], "--no-pid")) {
+-                      no_pid_file = ISC_TRUE;
++                      no_pid_file = true;
+               } else if (!strcmp(argv[i], "-cf")) {
+                       if (++i == argc)
+                               usage(use_noarg, argv[i-1]);
+@@ -652,7 +652,7 @@ main(int argc, char **argv) {
+        * to write a pid file - we assume they are controlling
+        * the process in some other fashion.
+        */
+-      if ((release_mode || exit_mode) && (no_pid_file == ISC_FALSE)) {
++      if ((release_mode || exit_mode) && (no_pid_file == false)) {
+               FILE *pidfd;
+               pid_t oldpid;
+               long temp;
+@@ -4469,7 +4469,7 @@ void write_client_pid_file ()
+       int pfdesc;
+       /* nothing to do if the user doesn't want a pid file */
+-      if (no_pid_file == ISC_TRUE) {
++      if (no_pid_file == true) {
+               return;
+       }
+@@ -4727,7 +4727,7 @@ unsigned cons_agent_information_options
+ static void shutdown_exit (void *foo)
+ {
+       /* get rid of the pid if we can */
+-      if (no_pid_file == ISC_FALSE)
++      if (no_pid_file == false)
+               (void) unlink(path_dhclient_pid);
+       finish(0);
+ }
+Index: dhcp-4.4.1/common/inet.c
+===================================================================
+--- dhcp-4.4.1.orig/common/inet.c
++++ dhcp-4.4.1/common/inet.c
+@@ -299,7 +299,7 @@ addr_and(struct iaddr *result, const str
+  *
+  * Because the final ".1" would get masked out by the /8.
+  */
+-isc_boolean_t
++bool
+ is_cidr_mask_valid(const struct iaddr *addr, int bits) {
+       int zero_bits;
+       int zero_bytes;
+@@ -311,10 +311,10 @@ is_cidr_mask_valid(const struct iaddr *a
+        * Check our bit boundaries.
+        */
+       if (bits < 0) {
+-              return ISC_FALSE;
++              return false;
+       }
+       if (bits > (addr->len * 8)) {
+-              return ISC_FALSE;
++              return false;
+       }
+       /*
+@@ -328,7 +328,7 @@ is_cidr_mask_valid(const struct iaddr *a
+        */
+       for (i=1; i<=zero_bytes; i++) {
+               if (addr->iabuf[addr->len-i] != 0) {
+-                      return ISC_FALSE;
++                      return false;
+               }
+       }
+@@ -340,7 +340,7 @@ is_cidr_mask_valid(const struct iaddr *a
+        * happy.
+        */
+       shift_bits = zero_bits % 8;
+-      if (shift_bits == 0) return ISC_TRUE;
++      if (shift_bits == 0) return true;
+       byte = addr->iabuf[addr->len-zero_bytes-1];
+       return (((byte >> shift_bits) << shift_bits) == byte);
+ }
+Index: dhcp-4.4.1/common/options.c
+===================================================================
+--- dhcp-4.4.1.orig/common/options.c
++++ dhcp-4.4.1/common/options.c
+@@ -676,7 +676,7 @@ cons_options(struct packet *inpacket, st
+                * the priority_list. This way we'll send it whether or not it
+                * is in the PRL. */
+               if ((inpacket != NULL) && (priority_len < PRIORITY_COUNT) &&
+-                  (inpacket->sv_echo_client_id == ISC_TRUE)) {
++                  (inpacket->sv_echo_client_id == true)) {
+                       priority_list[priority_len++] =
+                               DHO_DHCP_CLIENT_IDENTIFIER;
+               }
+@@ -1802,7 +1802,7 @@ const char *pretty_print_option (option,
+       const unsigned char *dp = data;
+       char comma;
+       unsigned long tval;
+-      isc_boolean_t a_array = ISC_FALSE;
++      bool a_array = false;
+       int len_used;
+       if (emit_commas)
+@@ -1828,7 +1828,7 @@ const char *pretty_print_option (option,
+               fmtbuf [l] = option -> format [i];
+               switch (option -> format [i]) {
+                     case 'a':
+-                      a_array = ISC_TRUE;
++                      a_array = true;
+                       /* Fall through */
+                     case 'A':
+                       --numelem;
+@@ -1858,7 +1858,7 @@ const char *pretty_print_option (option,
+                               hunksize++;
+                               comma = ':';
+                               numhunk = 0;
+-                              a_array = ISC_TRUE;
++                              a_array = true;
+                               hunkinc = 1;
+                       }
+                       fmtbuf [l + 1] = 0;
+@@ -1954,7 +1954,7 @@ const char *pretty_print_option (option,
+       /* If this is an array, compute its size. */
+       if (numhunk == 0) {
+-              if (a_array == ISC_TRUE) {
++              if (a_array == true) {
+                       /*
+                        * It is an 'a' type array - we repeat the
+                        * last format type.  A binary string for 'X'
+@@ -2006,7 +2006,7 @@ const char *pretty_print_option (option,
+       /* Cycle through the array (or hunk) printing the data. */
+       for (i = 0; i < numhunk; i++) {
+-              if ((a_array == ISC_TRUE) && (i != 0) && (numelem > 0)) {
++              if ((a_array == true) && (i != 0) && (numelem > 0)) {
+                       /*
+                        * For 'a' type of arrays we repeat
+                        * only the last format character
+@@ -2734,7 +2734,7 @@ save_option(struct universe *universe, s
+           struct option_cache *oc)
+ {
+       if (universe->save_func)
+-              (*universe->save_func)(universe, options, oc, ISC_FALSE);
++              (*universe->save_func)(universe, options, oc, true);
+       else
+               log_error("can't store options in %s space.", universe->name);
+ }
+@@ -2745,14 +2745,14 @@ also_save_option(struct universe *univer
+                struct option_cache *oc)
+ {
+       if (universe->save_func)
+-              (*universe->save_func)(universe, options, oc, ISC_TRUE);
++              (*universe->save_func)(universe, options, oc, true);
+       else
+               log_error("can't store options in %s space.", universe->name);
+ }
+ void
+ save_hashed_option(struct universe *universe, struct option_state *options,
+-                 struct option_cache *oc, isc_boolean_t appendp)
++                 struct option_cache *oc, bool appendp)
+ {
+       int hashix;
+       pair bptr;
+@@ -3062,7 +3062,7 @@ store_option(struct data_string *result,
+                                                 cfg_options, scope, subu);
+                               subu = NULL;
+                       }
+-              } while (ISC_FALSE);
++              } while (false);
+               status = append_option(result, universe, oc->option, &tmp);
+               data_string_forget(&tmp, MDL);
+@@ -3459,7 +3459,7 @@ lookup_fqdn6_option(struct universe *uni
+  */
+ void
+ save_fqdn6_option(struct universe *universe, struct option_state *options,
+-                struct option_cache *oc, isc_boolean_t appendp)
++                struct option_cache *oc, bool appendp)
+ {
+       log_fatal("Impossible condition at %s:%d.", MDL);
+ }
+@@ -3784,7 +3784,7 @@ void hashed_option_space_foreach (struct
+ void
+ save_linked_option(struct universe *universe, struct option_state *options,
+-                 struct option_cache *oc, isc_boolean_t appendp)
++                 struct option_cache *oc, bool appendp)
+ {
+       pair *tail;
+       struct option_chain_head *head;
+@@ -4073,7 +4073,7 @@ packet6_len_okay(const char *packet, int
+ void
+ do_packet6(struct interface_info *interface, const char *packet,
+          int len, int from_port, const struct iaddr *from,
+-         isc_boolean_t was_unicast) {
++         bool was_unicast) {
+       unsigned char msg_type;
+       const struct dhcpv6_packet *msg;
+       const struct dhcpv6_relay_packet *relay;
+Index: dhcp-4.4.1/common/parse.c
+===================================================================
+--- dhcp-4.4.1.orig/common/parse.c
++++ dhcp-4.4.1/common/parse.c
+@@ -4952,7 +4952,7 @@ int parse_option_token (rv, cfile, fmt,
+       unsigned len;
+       struct iaddr addr;
+       int compress;
+-      isc_boolean_t freeval = ISC_FALSE;
++      bool freeval = false;
+       const char *f, *g;
+       struct enumeration_value *e;
+@@ -5038,7 +5038,7 @@ int parse_option_token (rv, cfile, fmt,
+                       return 0;
+               }
+               len = strlen (val);
+-              freeval = ISC_TRUE;
++              freeval = true;
+               goto make_string;
+             case 't': /* Text string... */
+@@ -5055,9 +5055,9 @@ int parse_option_token (rv, cfile, fmt,
+               if (!make_const_data (&t, (const unsigned char *)val,
+                                     len, 1, 1, MDL))
+                       log_fatal ("No memory for concatenation");
+-              if (freeval == ISC_TRUE) {
++              if (freeval == true) {
+                       dfree((char *)val, MDL);
+-                      freeval = ISC_FALSE;
++                      freeval = false;
+                       POST(freeval);
+               }
+               break;
+Index: dhcp-4.4.1/omapip/dispatch.c
+===================================================================
+--- dhcp-4.4.1.orig/omapip/dispatch.c
++++ dhcp-4.4.1/omapip/dispatch.c
+@@ -156,7 +156,7 @@ omapi_iscsock_cb(isc_task_t   *task,
+        * This should be a temporary fix until we arrange to properly
+        * close the socket.
+        */
+-      if (obj->closed == ISC_TRUE) {
++      if (obj->closed == true) {
+               return(0);
+       }
+ #endif          
+@@ -223,7 +223,7 @@ isc_result_t omapi_register_io_object (o
+       status = omapi_io_allocate (&obj, MDL);
+       if (status != ISC_R_SUCCESS)
+               return status;
+-      obj->closed = ISC_FALSE;  /* mark as open */
++      obj->closed = false;  /* mark as open */
+       status = omapi_object_reference (&obj -> inner, h, MDL);
+       if (status != ISC_R_SUCCESS) {
+@@ -404,7 +404,7 @@ isc_result_t omapi_unregister_io_object
+               isc_socket_detach(&obj->fd);
+       }
+ #else
+-      obj->closed = ISC_TRUE;
++      obj->closed = true;
+ #endif
+       omapi_io_dereference (&ph, MDL);
+Index: dhcp-4.4.1/omapip/isclib.c
+===================================================================
+--- dhcp-4.4.1.orig/omapip/isclib.c
++++ dhcp-4.4.1/omapip/isclib.c
+@@ -106,9 +106,9 @@ isclib_cleanup(void)
+       if (dhcp_gbl_ctx.taskmgr != NULL)
+               isc_taskmgr_destroy(&dhcp_gbl_ctx.taskmgr);
+-      if (dhcp_gbl_ctx.actx_started != ISC_FALSE) {
++      if (dhcp_gbl_ctx.actx_started != false) {
+               isc_app_ctxfinish(dhcp_gbl_ctx.actx);
+-              dhcp_gbl_ctx.actx_started = ISC_FALSE;
++              dhcp_gbl_ctx.actx_started = false;
+       }
+       if (dhcp_gbl_ctx.actx != NULL)
+@@ -211,7 +211,7 @@ dhcp_context_create(int flags,
+               result = isc_app_ctxstart(dhcp_gbl_ctx.actx);
+               if (result != ISC_R_SUCCESS)
+                       return (result);
+-              dhcp_gbl_ctx.actx_started = ISC_TRUE;
++              dhcp_gbl_ctx.actx_started = true;
+               /* Not all OSs support suppressing SIGPIPE through socket
+                * options, so set the sigal action to be ignore.  This allows
+Index: dhcp-4.4.1/omapip/protocol.c
+===================================================================
+--- dhcp-4.4.1.orig/omapip/protocol.c
++++ dhcp-4.4.1/omapip/protocol.c
+@@ -950,14 +950,14 @@ isc_result_t omapi_protocol_stuff_values
+ /* Returns a boolean indicating whether this protocol requires that
+    messages be authenticated or not. */
+-isc_boolean_t omapi_protocol_authenticated (omapi_object_t *h)
++bool omapi_protocol_authenticated (omapi_object_t *h)
+ {
+       if (h -> type != omapi_type_protocol)
+-              return isc_boolean_false;
++              return false;
+       if (((omapi_protocol_object_t *)h) -> insecure)
+-              return isc_boolean_false;
++              return false;
+       else
+-              return isc_boolean_true;
++              return true;
+ }
+ /* Sets the address and authenticator verification callbacks.  The handle
+Index: dhcp-4.4.1/relay/dhcrelay.c
+===================================================================
+--- dhcp-4.4.1.orig/relay/dhcrelay.c
++++ dhcp-4.4.1/relay/dhcrelay.c
+@@ -45,9 +45,9 @@ char *token_line;
+ char *tlname;
+ const char *path_dhcrelay_pid = _PATH_DHCRELAY_PID;
+-isc_boolean_t no_dhcrelay_pid = ISC_FALSE;
++bool no_dhcrelay_pid = false;
+ /* False (default) => we write and use a pid file */
+-isc_boolean_t no_pid_file = ISC_FALSE;
++bool no_pid_file = false;
+ int bogus_agent_drops = 0;    /* Packets dropped because agent option
+                                  field was specified and we're not relaying
+@@ -82,7 +82,7 @@ int dfd[2] = { -1, -1 };
+ #ifdef DHCPv6
+       /* Force use of DHCPv6 interface-id option. */
+-isc_boolean_t use_if_id = ISC_FALSE;
++bool use_if_id = false;
+ #endif
+       /* Maximum size of a packet with agent options added. */
+@@ -556,7 +556,7 @@ main(int argc, char **argv) {
+                       }
+                       local_family_set = 1;
+                       local_family = AF_INET6;
+-                      use_if_id = ISC_TRUE;
++                      use_if_id = true;
+               } else if (!strcmp(argv[i], "-l")) {
+                       if (local_family_set && (local_family == AF_INET)) {
+                               usage(use_v6command, argv[i]);
+@@ -564,7 +564,7 @@ main(int argc, char **argv) {
+                       local_family_set = 1;
+                       local_family = AF_INET6;
+                       if (downstreams != NULL)
+-                              use_if_id = ISC_TRUE;
++                              use_if_id = true;
+                       if (++i == argc)
+                               usage(use_noarg, argv[i-1]);
+                       sl = parse_downstream(argv[i]);
+@@ -595,9 +595,9 @@ main(int argc, char **argv) {
+                       if (++i == argc)
+                               usage(use_noarg, argv[i-1]);
+                       path_dhcrelay_pid = argv[i];
+-                      no_dhcrelay_pid = ISC_TRUE;
++                      no_dhcrelay_pid = true;
+               } else if (!strcmp(argv[i], "--no-pid")) {
+-                      no_pid_file = ISC_TRUE;
++                      no_pid_file = true;
+               } else if (argv[i][0] == '-') {
+                       usage("Unknown command: %s", argv[i]);
+               } else {
+@@ -645,7 +645,7 @@ main(int argc, char **argv) {
+        * If the user didn't specify a pid file directly
+        * find one from environment variables or defaults
+        */
+-      if (no_dhcrelay_pid == ISC_FALSE) {
++      if (no_dhcrelay_pid == false) {
+               if (local_family == AF_INET) {
+                       path_dhcrelay_pid = getenv("PATH_DHCRELAY_PID");
+                       if (path_dhcrelay_pid == NULL)
+@@ -774,7 +774,7 @@ main(int argc, char **argv) {
+               }
+               /* Create the pid file. */
+-              if (no_pid_file == ISC_FALSE) {
++              if (no_pid_file == false) {
+                       pfdesc = open(path_dhcrelay_pid,
+                                     O_CREAT | O_TRUNC | O_WRONLY, 0644);
+@@ -1569,7 +1569,7 @@ static void
+ setup_streams(void) {
+       struct stream_list *dp, *up;
+       int i;
+-      isc_boolean_t link_is_set;
++      bool link_is_set;
+       for (dp = downstreams; dp; dp = dp->next) {
+               /* Check interface */
+@@ -1579,9 +1579,9 @@ setup_streams(void) {
+               /* Check/set link. */
+               if (IN6_IS_ADDR_UNSPECIFIED(&dp->link.sin6_addr))
+-                      link_is_set = ISC_FALSE;
++                      link_is_set = false;
+               else
+-                      link_is_set = ISC_TRUE;
++                      link_is_set = true;
+               for (i = 0; i < dp->ifp->v6address_count; i++) {
+                       if (IN6_IS_ADDR_LINKLOCAL(&dp->ifp->v6addresses[i]))
+                               continue;
+@@ -2076,7 +2076,7 @@ dhcp_set_control_state(control_object_st
+       if (newstate != server_shutdown)
+               return ISC_R_SUCCESS;
+-      if (no_pid_file == ISC_FALSE)
++      if (no_pid_file == false)
+               (void) unlink(path_dhcrelay_pid);
+       if (!no_daemon && dfd[0] != -1 && dfd[1] != -1) {
+Index: dhcp-4.4.1/server/dhcp.c
+===================================================================
+--- dhcp-4.4.1.orig/server/dhcp.c
++++ dhcp-4.4.1/server/dhcp.c
+@@ -225,7 +225,7 @@ dhcp (struct packet *packet) {
+                       packet->options->universe_count =
+                                               agent_universe.index + 1;
+-              packet->agent_options_stashed = ISC_TRUE;
++              packet->agent_options_stashed = true;
+       }
+       nolease:
+@@ -1094,7 +1094,7 @@ void dhcpinform (packet, ms_nulltp)
+       int nulltp;
+       struct sockaddr_in to;
+       struct in_addr from;
+-      isc_boolean_t zeroed_ciaddr;
++      bool zeroed_ciaddr;
+       struct interface_info *interface;
+       int result, h_m_client_ip = 0;
+       struct host_decl  *host = NULL, *hp = NULL, *h;
+@@ -1109,7 +1109,7 @@ void dhcpinform (packet, ms_nulltp)
+          it's common for clients not to do this, so we'll use their IP
+          source address if they didn't set ciaddr. */
+       if (!packet->raw->ciaddr.s_addr) {
+-              zeroed_ciaddr = ISC_TRUE;
++              zeroed_ciaddr = true;
+               /* With DHCPv4-over-DHCPv6 it can be an IPv6 address
+                  so we check its length. */
+               if (packet->client_addr.len == 4) {
+@@ -1122,7 +1122,7 @@ void dhcpinform (packet, ms_nulltp)
+                       addr_type = "v4o6";
+               }
+       } else {
+-              zeroed_ciaddr = ISC_FALSE;
++              zeroed_ciaddr = false;
+               cip.len = 4;
+               memcpy(cip.iabuf, &packet->raw->ciaddr, 4);
+               addr_type = "client";
+@@ -1133,7 +1133,7 @@ void dhcpinform (packet, ms_nulltp)
+       if (packet->raw->giaddr.s_addr) {
+               gip.len = 4;
+               memcpy(gip.iabuf, &packet->raw->giaddr, 4);
+-              if (zeroed_ciaddr == ISC_TRUE) {
++              if (zeroed_ciaddr == true) {
+                       addr_type = "relay";
+                       memcpy(sip.iabuf, gip.iabuf, 4);
+               }
+@@ -1207,7 +1207,7 @@ void dhcpinform (packet, ms_nulltp)
+               save_option(&dhcp_universe, options, noc);
+               option_cache_dereference(&noc, MDL);
+-              if ((zeroed_ciaddr == ISC_TRUE) && (gip.len != 0))
++              if ((zeroed_ciaddr == true) && (gip.len != 0))
+                       addr_type = "relay link select";
+               else
+                       addr_type = "selected";
+@@ -1261,7 +1261,7 @@ void dhcpinform (packet, ms_nulltp)
+                                   NULL, NULL);
+       /* If we have ciaddr, find its lease so we can find its pool. */
+-      if (zeroed_ciaddr == ISC_FALSE) {
++      if (zeroed_ciaddr == false) {
+               struct lease* cip_lease = NULL;
+               find_lease_by_ip_addr (&cip_lease, cip, MDL);
+@@ -2036,7 +2036,7 @@ void echo_client_id(packet, lease, in_op
+               unsigned int opcode = DHO_DHCP_CLIENT_IDENTIFIER;
+               /* Save knowledge that echo is enabled to the packet */
+-              packet->sv_echo_client_id = ISC_TRUE;
++              packet->sv_echo_client_id = true;
+               /* Now see if inbound packet contains client-id */
+               oc = lookup_option(&dhcp_universe, packet->options, opcode);
+@@ -2187,7 +2187,7 @@ void ack_lease (packet, lease, offer, wh
+       struct iaddr cip;
+ #if defined(DELAYED_ACK)
+       /* By default we don't do the enqueue */
+-      isc_boolean_t enqueue = ISC_FALSE;
++      bool enqueue = false;
+ #endif
+       int use_old_lease = 0;
+@@ -3217,7 +3217,7 @@ void ack_lease (packet, lease, offer, wh
+                * can just answer right away, set a flag to indicate this.
+                */
+               if (commit)
+-                      enqueue = ISC_TRUE;
++                      enqueue = true;
+               /* Install the new information on 'lt' onto the lease at
+                * 'lease'.  We will not 'commit' this information to disk
+@@ -4234,7 +4234,7 @@ int find_lease (struct lease **lp,
+        * preference, so the first one is the best one.
+        */
+       while (uid_lease) {
+-              isc_boolean_t do_release = !packet->raw->ciaddr.s_addr;
++              bool do_release = !packet->raw->ciaddr.s_addr;
+ #if defined (DEBUG_FIND_LEASE)
+               log_info ("trying next lease matching client id: %s",
+                         piaddr (uid_lease -> ip_addr));
+@@ -4267,7 +4267,7 @@ int find_lease (struct lease **lp,
+ #endif
+                       /* Allow multiple leases using the same UID
+                          on different subnetworks. */
+-                      do_release = ISC_FALSE;
++                      do_release = false;
+                       goto n_uid;
+               }
+@@ -5331,7 +5331,7 @@ get_server_source_address(struct in_addr
+       struct option_cache *oc = NULL;
+       struct data_string d;
+       struct in_addr *a = NULL;
+-      isc_boolean_t found = ISC_FALSE;
++      bool found = false;
+       int allocate = 0;
+       memset(&d, 0, sizeof(d));
+@@ -5344,7 +5344,7 @@ get_server_source_address(struct in_addr
+                                         packet->options, options, 
+                                         &global_scope, oc, MDL)) {
+                       if (d.len == sizeof(*from)) {
+-                              found = ISC_TRUE;
++                              found = true;
+                               memcpy(from, d.data, sizeof(*from));
+                               /*
+@@ -5362,7 +5362,7 @@ get_server_source_address(struct in_addr
+               oc = NULL;
+       }
+-      if ((found == ISC_FALSE) &&
++      if ((found == false) &&
+           (packet->interface->address_count > 0)) {
+               *from = packet->interface->addresses[0];
+Index: dhcp-4.4.1/server/failover.c
+===================================================================
+--- dhcp-4.4.1.orig/server/failover.c
++++ dhcp-4.4.1/server/failover.c
+@@ -45,7 +45,7 @@ static isc_result_t failover_message_der
+ static void dhcp_failover_pool_balance(dhcp_failover_state_t *state);
+ static void dhcp_failover_pool_reqbalance(dhcp_failover_state_t *state);
+ static int dhcp_failover_pool_dobalance(dhcp_failover_state_t *state,
+-                                      isc_boolean_t *sendreq);
++                                      bool *sendreq);
+ static inline int secondary_not_hoarding(dhcp_failover_state_t *state,
+                                        struct pool *p);
+ static void scrub_lease(struct lease* lease, const char *file, int line);
+@@ -2464,7 +2464,7 @@ void
+ dhcp_failover_pool_rebalance(void *failover_state)
+ {
+       dhcp_failover_state_t *state;
+-      isc_boolean_t sendreq = ISC_FALSE;
++      bool sendreq = false;
+       state = (dhcp_failover_state_t *)failover_state;
+@@ -2512,7 +2512,7 @@ dhcp_failover_pool_reqbalance(dhcp_failo
+  */
+ static int
+ dhcp_failover_pool_dobalance(dhcp_failover_state_t *state,
+-                          isc_boolean_t *sendreq)
++                          bool *sendreq)
+ {
+       int lts, total, thresh, hold, panic, pass;
+       int leases_queued = 0;
+@@ -2581,7 +2581,7 @@ dhcp_failover_pool_dobalance(dhcp_failov
+               if ((sendreq != NULL) && (lts < panic)) {
+                       reqlog = "  (requesting peer rebalance!)";
+-                      *sendreq = ISC_TRUE;
++                      *sendreq = true;
+               } else
+                       reqlog = "";
+@@ -5111,7 +5111,7 @@ isc_result_t dhcp_failover_send_update_d
+  * a more detailed system of preferences is required, so this is something we
+  * should monitor as we gain experience with these dueling events.
+  */
+-static isc_boolean_t
++static bool
+ failover_lease_is_better(dhcp_failover_state_t *state, struct lease *lease,
+                        failover_message_t *msg)
+ {
+@@ -5132,15 +5132,15 @@ failover_lease_is_better(dhcp_failover_s
+             case FTS_ACTIVE:
+               if (msg->binding_status == FTS_ACTIVE) {
+                       if (msg_cltt < lease->cltt)
+-                              return ISC_TRUE;
++                              return true;
+                       else if (msg_cltt > lease->cltt)
+-                              return ISC_FALSE;
++                              return false;
+                       else if (state->i_am == primary)
+-                              return ISC_TRUE;
++                              return true;
+                       else
+-                              return ISC_FALSE;
++                              return false;
+               } else if (msg->binding_status == FTS_EXPIRED) {
+-                      return ISC_FALSE;
++                      return false;
+               }
+               /* FALL THROUGH */
+@@ -5151,11 +5151,11 @@ failover_lease_is_better(dhcp_failover_s
+             case FTS_ABANDONED:
+             case FTS_RESET:
+               if (msg->binding_status == FTS_ACTIVE)
+-                      return ISC_FALSE;
++                      return false;
+               else if (state->i_am == primary)
+-                      return ISC_TRUE;
++                      return true;
+               else
+-                      return ISC_FALSE;
++                      return false;
+               /* FALL THROUGH to impossible condition */
+             default:
+@@ -5164,7 +5164,7 @@ failover_lease_is_better(dhcp_failover_s
+       log_fatal("Impossible condition at %s:%d.", MDL);
+       /* Silence compiler warning. */
+-      return ISC_FALSE;
++      return false;
+ }
+ isc_result_t dhcp_failover_process_bind_update (dhcp_failover_state_t *state,
+@@ -5177,8 +5177,8 @@ isc_result_t dhcp_failover_process_bind_
+       int new_binding_state;
+       int send_to_backup = 0;
+       int required_options;
+-      isc_boolean_t chaddr_changed = ISC_FALSE;
+-      isc_boolean_t ident_changed = ISC_FALSE;
++      bool chaddr_changed = false;
++      bool ident_changed = false;
+       /* Validate the binding update. */
+       required_options = FTB_ASSIGNED_IP_ADDRESS | FTB_BINDING_STATUS;
+@@ -5250,7 +5250,7 @@ isc_result_t dhcp_failover_process_bind_
+               if ((lt->hardware_addr.hlen != msg->chaddr.count) ||
+                   (memcmp(lt->hardware_addr.hbuf, msg->chaddr.data,
+                           msg->chaddr.count) != 0))
+-                      chaddr_changed = ISC_TRUE;
++                      chaddr_changed = true;
+               lt -> hardware_addr.hlen = msg -> chaddr.count;
+               memcpy (lt -> hardware_addr.hbuf, msg -> chaddr.data,
+@@ -5262,7 +5262,7 @@ isc_result_t dhcp_failover_process_bind_
+               reason = FTR_MISSING_BINDINFO;
+               goto bad;
+       } else if (msg->binding_status == FTS_ABANDONED) {
+-              chaddr_changed = ISC_TRUE;
++              chaddr_changed = true;
+               lt->hardware_addr.hlen = 0;
+               if (lt->scope)
+                       binding_scope_dereference(&lt->scope, MDL);
+@@ -5282,7 +5282,7 @@ isc_result_t dhcp_failover_process_bind_
+                   (lt->uid == NULL) || /* Sanity; should never happen. */
+                   (memcmp(lt->uid, msg->client_identifier.data,
+                           lt->uid_len) != 0))
+-                      ident_changed = ISC_TRUE;
++                      ident_changed = true;
+               lt->uid_len = msg->client_identifier.count;
+@@ -5312,7 +5312,7 @@ isc_result_t dhcp_failover_process_bind_
+       } else if (lt->uid && msg->binding_status != FTS_RESET &&
+                  msg->binding_status != FTS_FREE &&
+                  msg->binding_status != FTS_BACKUP) {
+-              ident_changed = ISC_TRUE;
++              ident_changed = true;
+               if (lt->uid != lt->uid_buf)
+                       dfree (lt->uid, MDL);
+               lt->uid = NULL;
+@@ -5347,7 +5347,7 @@ isc_result_t dhcp_failover_process_bind_
+       if (msg->binding_status == FTS_ACTIVE &&
+           (chaddr_changed || ident_changed)) {
+ #if defined (NSUPDATE)
+-              (void) ddns_removals(lease, NULL, NULL, ISC_FALSE);
++              (void) ddns_removals(lease, NULL, NULL, false);
+ #endif /* NSUPDATE */
+               if (lease->scope != NULL)
+@@ -5534,7 +5534,7 @@ isc_result_t dhcp_failover_process_bind_
+       struct iaddr ia;
+       const char *message = "no memory";
+       u_int32_t pot_expire;
+-      int send_to_backup = ISC_FALSE;
++      int send_to_backup = false;
+       struct timeval tv;
+       ia.len = sizeof msg -> assigned_addr;
+@@ -5621,7 +5621,7 @@ isc_result_t dhcp_failover_process_bind_
+               if (state->i_am == primary &&
+                   !(lease->flags & (RESERVED_LEASE | BOOTP_LEASE)) &&
+                   peer_wants_lease(lease))
+-                      send_to_backup = ISC_TRUE;
++                      send_to_backup = true;
+               if (!send_to_backup && state->me.state == normal)
+                       commit_leases();
+Index: dhcp-4.4.1/server/dhcpd.c
+===================================================================
+--- dhcp-4.4.1.orig/server/dhcpd.c
++++ dhcp-4.4.1/server/dhcpd.c
+@@ -98,7 +98,7 @@ const char *path_dhcpd_conf = _PATH_DHCP
+ const char *path_dhcpd_db = _PATH_DHCPD_DB;
+ const char *path_dhcpd_pid = _PATH_DHCPD_PID;
+ /* False (default) => we write and use a pid file */
+-isc_boolean_t no_pid_file = ISC_FALSE;
++bool no_pid_file = false;
+ int dhcp_max_agent_option_packet_length = DHCP_MTU_MAX;
+@@ -476,7 +476,7 @@ main(int argc, char **argv) {
+                       path_dhcpd_pid = argv [i];
+                       have_dhcpd_pid = 1;
+               } else if (!strcmp(argv[i], "--no-pid")) {
+-                      no_pid_file = ISC_TRUE;
++                      no_pid_file = true;
+                 } else if (!strcmp (argv [i], "-t")) {
+                       /* test configurations only */
+ #ifndef DEBUG
+@@ -863,7 +863,7 @@ main(int argc, char **argv) {
+        * - we don't have a pid file to check
+        * - there is no other process running
+        */
+-      if ((lftest == 0) && (no_pid_file == ISC_FALSE)) {
++      if ((lftest == 0) && (no_pid_file == false)) {
+               /*Read previous pid file. */
+               if ((i = open(path_dhcpd_pid, O_RDONLY)) >= 0) {
+                       status = read(i, pbuf, (sizeof pbuf) - 1);
+@@ -974,7 +974,7 @@ main(int argc, char **argv) {
+        * that we have forked we can write our pid if
+        * appropriate.
+        */
+-      if (no_pid_file == ISC_FALSE) {
++      if (no_pid_file == false) {
+               i = open(path_dhcpd_pid, O_WRONLY|O_CREAT|O_TRUNC, 0644);
+               if (i >= 0) {
+                       sprintf(pbuf, "%d\n", (int) getpid());
+@@ -1730,7 +1730,7 @@ static isc_result_t dhcp_io_shutdown_cou
+           free_everything ();
+           omapi_print_dmalloc_usage_by_caller ();
+ #endif
+-          if (no_pid_file == ISC_FALSE)
++          if (no_pid_file == false)
+                   (void) unlink(path_dhcpd_pid);
+           exit (0);
+       }
+@@ -1741,7 +1741,7 @@ static isc_result_t dhcp_io_shutdown_cou
+               free_everything ();
+               omapi_print_dmalloc_usage_by_caller ();
+ #endif
+-              if (no_pid_file == ISC_FALSE)
++              if (no_pid_file == false)
+                       (void) unlink(path_dhcpd_pid);
+               exit (0);
+       }
+@@ -1750,7 +1750,7 @@ static isc_result_t dhcp_io_shutdown_cou
+ #if defined(FAILOVER_PROTOCOL)
+           !failover_connection_count &&
+ #endif
+-          ISC_TRUE) {
++          true) {
+               shutdown_state = shutdown_done;
+               shutdown_time = cur_time;
+               goto oncemore;
+Index: dhcp-4.4.1/server/mdb6.c
+===================================================================
+--- dhcp-4.4.1.orig/server/mdb6.c
++++ dhcp-4.4.1/server/mdb6.c
+@@ -514,10 +514,10 @@ ia_remove_all_lease(struct ia_xx *ia, co
+ /*
+  * Compare two IA.
+  */
+-isc_boolean_t
++bool
+ ia_equal(const struct ia_xx *a, const struct ia_xx *b) 
+ {
+-      isc_boolean_t found;
++      bool found;
+       int i, j;
+       /*
+@@ -525,9 +525,9 @@ ia_equal(const struct ia_xx *a, const st
+        */
+       if (a == NULL) {
+               if (b == NULL) {
+-                      return ISC_TRUE;
++                      return true;
+               } else {
+-                      return ISC_FALSE;
++                      return false;
+               }
+       }       
+@@ -535,58 +535,58 @@ ia_equal(const struct ia_xx *a, const st
+        * Check the type is the same.
+        */
+       if (a->ia_type != b->ia_type) {
+-              return ISC_FALSE;
++              return false;
+       }
+       /*
+        * Check the DUID is the same.
+        */
+       if (a->iaid_duid.len != b->iaid_duid.len) {
+-              return ISC_FALSE;
++              return false;
+       }
+       if (memcmp(a->iaid_duid.data, 
+                  b->iaid_duid.data, a->iaid_duid.len) != 0) {
+-              return ISC_FALSE;
++              return false;
+       }
+       /*
+        * Make sure we have the same number of addresses/prefixes in each.
+        */
+       if (a->num_iasubopt != b->num_iasubopt) {
+-              return ISC_FALSE;
++              return false;
+       }
+       /*
+        * Check that each address/prefix is present in both.
+        */
+       for (i=0; i<a->num_iasubopt; i++) {
+-              found = ISC_FALSE;
++              found = false;
+               for (j=0; j<a->num_iasubopt; j++) {
+                       if (a->iasubopt[i]->plen != b->iasubopt[i]->plen)
+                               continue;
+                       if (memcmp(&(a->iasubopt[i]->addr),
+                                  &(b->iasubopt[j]->addr), 
+                                  sizeof(struct in6_addr)) == 0) {
+-                              found = ISC_TRUE;
++                              found = true;
+                               break;
+                       }
+               }
+               if (!found) {
+-                      return ISC_FALSE;
++                      return false;
+               }
+       }
+       /*
+        * These are the same in every way we care about.
+        */
+-      return ISC_TRUE;
++      return true;
+ }
+ /*
+  * Helper function for lease heaps.
+  * Makes the top of the heap the oldest lease.
+  */
+-static isc_boolean_t 
++static bool 
+ lease_older(void *a, void *b) {
+       struct iasubopt *la = (struct iasubopt *)a;
+       struct iasubopt *lb = (struct iasubopt *)b;
+@@ -1038,8 +1038,8 @@ create_lease6(struct ipv6_pool *pool, st
+       struct data_string new_ds;
+       struct iasubopt *iaaddr;
+       isc_result_t result;
+-      isc_boolean_t reserved_iid;
+-      static isc_boolean_t init_resiid = ISC_FALSE;
++      bool reserved_iid;
++      static bool init_resiid = false;
+       /*
+        * Fill the reserved IIDs.
+@@ -1049,7 +1049,7 @@ create_lease6(struct ipv6_pool *pool, st
+               memset(&resany, 0, 8);
+               resany.s6_addr[8] = 0xfd;
+               memset(&resany.s6_addr[9], 0xff, 6);
+-              init_resiid = ISC_TRUE;
++              init_resiid = true;
+       }
+       /* 
+@@ -1094,14 +1094,14 @@ create_lease6(struct ipv6_pool *pool, st
+               /*
+                * Avoid reserved interface IDs. (cf. RFC 5453)
+                */
+-              reserved_iid = ISC_FALSE;
++              reserved_iid = false;
+               if (memcmp(&tmp.s6_addr[8], &rtany.s6_addr[8], 8) == 0) {
+-                      reserved_iid = ISC_TRUE;
++                      reserved_iid = true;
+               }
+               if (!reserved_iid &&
+                   (memcmp(&tmp.s6_addr[8], &resany.s6_addr[8], 7) == 0) &&
+                   ((tmp.s6_addr[15] & 0x80) == 0x80)) {
+-                      reserved_iid = ISC_TRUE;
++                      reserved_iid = true;
+               }
+               /*
+@@ -1177,7 +1177,7 @@ create_lease6_eui_64(struct ipv6_pool *p
+       struct iasubopt *test_iaaddr;
+       struct iasubopt *iaaddr;
+       isc_result_t result;
+-      static isc_boolean_t init_resiid = ISC_FALSE;
++      static bool init_resiid = false;
+       /*  Fill the reserved IIDs.  */
+       if (!init_resiid) {
+@@ -1185,7 +1185,7 @@ create_lease6_eui_64(struct ipv6_pool *p
+               memset(&resany, 0, 8);
+               resany.s6_addr[8] = 0xfd;
+               memset(&resany.s6_addr[9], 0xff, 6);
+-              init_resiid = ISC_TRUE;
++              init_resiid = true;
+       }
+       /* Pool must be IA_NA */
+@@ -1520,7 +1520,7 @@ add_lease6(struct ipv6_pool *pool, struc
+ /*
+  * Determine if an address is present in a pool or not.
+  */
+-isc_boolean_t
++bool
+ lease6_exists(const struct ipv6_pool *pool, const struct in6_addr *addr) {
+       struct iasubopt *test_iaaddr;
+@@ -1528,9 +1528,9 @@ lease6_exists(const struct ipv6_pool *po
+       if (iasubopt_hash_lookup(&test_iaaddr, pool->leases, 
+                                (void *)addr, sizeof(*addr), MDL)) {
+               iasubopt_dereference(&test_iaaddr, MDL);
+-              return ISC_TRUE;
++              return true;
+       } else {
+-              return ISC_FALSE;
++              return false;
+       }
+ }
+@@ -1545,20 +1545,20 @@ lease6_exists(const struct ipv6_pool *po
+  * \param[in] lease = lease to check
+  *
+  * \return
+- * ISC_TRUE  = The lease is allowed to use that address
+- * ISC_FALSE = The lease isn't allowed to use that address
++ * true  = The lease is allowed to use that address
++ * false = The lease isn't allowed to use that address
+  */
+-isc_boolean_t
++bool
+ lease6_usable(struct iasubopt *lease) {
+       struct iasubopt *test_iaaddr;
+-      isc_boolean_t status = ISC_TRUE;
++      bool status = true;
+       test_iaaddr = NULL;
+       if (iasubopt_hash_lookup(&test_iaaddr, lease->ipv6_pool->leases,
+                                (void *)&lease->addr,
+                                sizeof(lease->addr), MDL)) {
+               if (test_iaaddr != lease) {
+-                      status = ISC_FALSE;
++                      status = false;
+               }
+               iasubopt_dereference(&test_iaaddr, MDL);
+       }
+@@ -1697,7 +1697,7 @@ move_lease_to_inactive(struct ipv6_pool
+ #if defined (NSUPDATE)
+               /* Process events upon expiration. */
+               if (pool->pool_type != D6O_IA_PD) {
+-                      (void) ddns_removals(NULL, lease, NULL, ISC_FALSE);
++                      (void) ddns_removals(NULL, lease, NULL, false);
+               }
+ #endif
+@@ -1977,21 +1977,21 @@ create_prefix6(struct ipv6_pool *pool, s
+ /*
+  * Determine if a prefix is present in a pool or not.
+  */
+-isc_boolean_t
++bool
+ prefix6_exists(const struct ipv6_pool *pool,
+              const struct in6_addr *pref, u_int8_t plen) {
+       struct iasubopt *test_iapref;
+       if ((int)plen != pool->units)
+-              return ISC_FALSE;
++              return false;
+       test_iapref = NULL;
+       if (iasubopt_hash_lookup(&test_iapref, pool->leases, 
+                                (void *)pref, sizeof(*pref), MDL)) {
+               iasubopt_dereference(&test_iapref, MDL);
+-              return ISC_TRUE;
++              return true;
+       } else {
+-              return ISC_FALSE;
++              return false;
+       }
+ }
+@@ -2267,15 +2267,15 @@ ipv6_network_portion(struct in6_addr *re
+ /*
+  * Determine if the given address/prefix is in the pool.
+  */
+-isc_boolean_t
++bool
+ ipv6_in_pool(const struct in6_addr *addr, const struct ipv6_pool *pool) {
+       struct in6_addr tmp;
+       ipv6_network_portion(&tmp, addr, pool->bits);
+       if (memcmp(&tmp, &pool->start_addr, sizeof(tmp)) == 0) {
+-              return ISC_TRUE;
++              return true;
+       } else {
+-              return ISC_FALSE;
++              return false;
+       }
+ }
+Index: dhcp-4.4.1/server/ddns.c
+===================================================================
+--- dhcp-4.4.1.orig/server/ddns.c
++++ dhcp-4.4.1/server/ddns.c
+@@ -373,7 +373,7 @@ ddns_updates(struct packet *packet, stru
+               /* If desired do the removals */
+               if (do_remove != 0) {
+-                      (void) ddns_removals(lease, lease6, NULL, ISC_TRUE);
++                      (void) ddns_removals(lease, lease6, NULL, true);
+               }
+               goto out;
+       }
+@@ -618,7 +618,7 @@ ddns_updates(struct packet *packet, stru
+                * We should log a more specific error closer to the actual
+                * error if we want one. ddns_removal failure not logged here.
+                */
+-               (void) ddns_removals(lease, lease6, ddns_cb, ISC_TRUE);
++               (void) ddns_removals(lease, lease6, ddns_cb, true);
+       }
+       else {
+               ddns_fwd_srv_connector(lease, lease6, scope, ddns_cb,
+@@ -1907,7 +1907,7 @@ ddns_fwd_srv_rem1(dhcp_ddns_cb_t *ddns_c
+  *     the current entry.
+  *
+  * \li active - indication about the status of the lease. It is
+- *     ISC_TRUE if the lease is still active, and FALSE if the lease
++ *     true if the lease is still active, and FALSE if the lease
+  *     is inactive.  This is used to indicate if the lease is inactive or going
+  *     to inactive so we can avoid trying to update the lease with cb pointers
+  *     and text information if it isn't useful.
+@@ -1923,7 +1923,7 @@ isc_result_t
+ ddns_removals(struct lease    *lease,
+             struct iasubopt *lease6,
+             dhcp_ddns_cb_t  *add_ddns_cb,
+-            isc_boolean_t    active)
++            bool    active)
+ {
+       isc_result_t rcode, execute_add = ISC_R_FAILURE;
+       struct binding_scope **scope = NULL;
+@@ -1970,7 +1970,7 @@ ddns_removals(struct lease    *lease,
+                       if (((ddns_cb->state == DDNS_STATE_ADD_PTR) ||
+                            (ddns_cb->state == DDNS_STATE_ADD_FW_NXDOMAIN) ||
+                            (ddns_cb->state == DDNS_STATE_ADD_FW_YXDHCID)) ||
+-                          ((active == ISC_FALSE) &&
++                          ((active == false) &&
+                            ((ddns_cb->flags & DDNS_ACTIVE_LEASE) != 0))) {
+                               /* Cancel the current request */
+                               ddns_cancel(lease->ddns_cb, MDL);
+@@ -1998,7 +1998,7 @@ ddns_removals(struct lease    *lease,
+                       if (((ddns_cb->state == DDNS_STATE_ADD_PTR) ||
+                            (ddns_cb->state == DDNS_STATE_ADD_FW_NXDOMAIN) ||
+                            (ddns_cb->state == DDNS_STATE_ADD_FW_YXDHCID)) ||
+-                          ((active == ISC_FALSE) &&
++                          ((active == false) &&
+                            ((ddns_cb->flags & DDNS_ACTIVE_LEASE) != 0))) {
+                               /* Cancel the current request */
+                               ddns_cancel(lease6->ddns_cb, MDL);
+@@ -2053,7 +2053,7 @@ ddns_removals(struct lease    *lease,
+        * the lease information for v6 when the response
+        * from the DNS code is processed.
+        */
+-      if (active == ISC_TRUE) {
++      if (active == true) {
+               ddns_cb->flags |= DDNS_ACTIVE_LEASE;
+       }
+Index: dhcp-4.4.1/server/mdb.c
+===================================================================
+--- dhcp-4.4.1.orig/server/mdb.c
++++ dhcp-4.4.1/server/mdb.c
+@@ -1504,7 +1504,7 @@ void make_binding_state_transition (stru
+             lease -> binding_state == FTS_ACTIVE &&
+             lease -> next_binding_state != FTS_RELEASED))) {
+ #if defined (NSUPDATE)
+-              (void) ddns_removals(lease, NULL, NULL, ISC_TRUE);
++              (void) ddns_removals(lease, NULL, NULL, true);
+ #endif
+               if (lease->on_star.on_expiry) {
+                       execute_statements(NULL, NULL, lease,
+@@ -1568,7 +1568,7 @@ void make_binding_state_transition (stru
+                * release message.  This is not true of expiry, where the
+                * peer may have extended the lease.
+                */
+-              (void) ddns_removals(lease, NULL, NULL, ISC_TRUE);
++              (void) ddns_removals(lease, NULL, NULL, true);
+ #endif
+               if (lease->on_star.on_release) {
+                       execute_statements(NULL, NULL, lease,
+@@ -1736,7 +1736,7 @@ void release_lease (lease, packet)
+       /* If there are statements to execute when the lease is
+          released, execute them. */
+ #if defined (NSUPDATE)
+-      (void) ddns_removals(lease, NULL, NULL, ISC_FALSE);
++      (void) ddns_removals(lease, NULL, NULL, false);
+ #endif
+       if (lease->on_star.on_release) {
+               execute_statements (NULL, packet, lease,
+@@ -1810,7 +1810,7 @@ void abandon_lease (lease, message)
+ {
+       struct lease *lt = NULL;
+ #if defined (NSUPDATE)
+-      (void) ddns_removals(lease, NULL, NULL, ISC_FALSE);
++      (void) ddns_removals(lease, NULL, NULL, false);
+ #endif
+       if (!lease_copy(&lt, lease, MDL)) {
+@@ -1860,7 +1860,7 @@ void dissociate_lease (lease)
+ {
+       struct lease *lt = (struct lease *)0;
+ #if defined (NSUPDATE)
+-      (void) ddns_removals(lease, NULL, NULL, ISC_FALSE);
++      (void) ddns_removals(lease, NULL, NULL, false);
+ #endif
+       if (!lease_copy (&lt, lease, MDL))
+@@ -2072,38 +2072,38 @@ int find_lease_by_hw_addr (struct lease
+  *    should never see reset leases for this.
+  * 4) Abandoned leases are always dead last.
+  */
+-static isc_boolean_t
++static bool
+ client_lease_preferred(struct lease *cand, struct lease *lease)
+ {
+       if (cand->binding_state == FTS_ACTIVE) {
+               if (lease->binding_state == FTS_ACTIVE &&
+                   lease->ends >= cand->ends)
+-                      return ISC_TRUE;
++                      return true;
+       } else if (cand->binding_state == FTS_EXPIRED ||
+                  cand->binding_state == FTS_RELEASED) {
+               if (lease->binding_state == FTS_ACTIVE)
+-                      return ISC_TRUE;
++                      return true;
+               if ((lease->binding_state == FTS_EXPIRED ||
+                    lease->binding_state == FTS_RELEASED) &&
+                   lease->cltt >= cand->cltt)
+-                      return ISC_TRUE;
++                      return true;
+       } else if (cand->binding_state != FTS_ABANDONED) {
+               if (lease->binding_state == FTS_ACTIVE ||
+                   lease->binding_state == FTS_EXPIRED ||
+                   lease->binding_state == FTS_RELEASED)
+-                      return ISC_TRUE;
++                      return true;
+               if (lease->binding_state != FTS_ABANDONED &&
+                   lease->cltt >= cand->cltt)
+-                      return ISC_TRUE;
++                      return true;
+       } else /* (cand->binding_state == FTS_ABANDONED) */ {
+               if (lease->binding_state != FTS_ABANDONED ||
+                   lease->cltt >= cand->cltt)
+-                      return ISC_TRUE;
++                      return true;
+       }
+-      return ISC_FALSE;
++      return false;
+ }
+ /* Add the specified lease to the uid hash. */
index 159abbc4056bd5f32b9ad94722f3c9fa3f0c0584..ca0daa1810e91667f3b743362cf5c89d3a39af30 100644 (file)
@@ -10,6 +10,7 @@ SRC_URI += "file://0001-define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.pat
             file://0009-remove-dhclient-script-bash-dependency.patch \
             file://0012-dhcp-correct-the-intention-for-xml2-lib-search.patch \
             file://0013-fixup_use_libbind.patch \
+            file://0001-dhcpd-fix-Replace-custom-isc_boolean_t-with-C-standa.patch \
 "
 
 SRC_URI[md5sum] = "18c7f4dcbb0a63df25098216d47b1ede"