Blob Blame History Raw
From: Jeremie Corbier <jeremie+debian@famille-corbier.net>
Date: Tue, 6 Apr 2010 15:51:10 +0200
Subject: GNU libc6 fixes

Fixes for recent libc releases.

Signed-off-by: Jeremie Corbier <jeremie@famille-corbier.net>
---
 addrconf.c          |  16 +-
 cftoken.c           |  12 +-
 cftoken.l           |  12 +-
 common.c            | 226 +++++++++++++-------------
 common.h            |   2 +-
 config.c            | 268 +++++++++++++++----------------
 configure           |  50 +++++-
 configure.in        |   7 +
 dhcp6.h             |   7 +
 dhcp6_ctl.c         |  40 ++---
 dhcp6c.c            | 246 ++++++++++++++---------------
 dhcp6c_ia.c         |  86 +++++-----
 dhcp6c_script.c     |  36 ++---
 dhcp6relay.c        | 118 +++++++-------
 dhcp6relay_script.c |  28 ++--
 dhcp6s.c            | 446 ++++++++++++++++++++++++++--------------------------
 if.c                |  12 +-
 lease.c             |  14 +-
 prefixconf.c        |  24 +--
 timer.c             |   6 +-
 20 files changed, 859 insertions(+), 797 deletions(-)

diff --git a/addrconf.c b/addrconf.c
index d98373f..98d03e5 100644
--- a/addrconf.c
+++ b/addrconf.c
@@ -122,7 +122,7 @@ update_address(ia, addr, dhcpifp, ctlp, callback)
 	if (addr->vltime != DHCP6_DURATION_INFINITE &&
 	    (addr->pltime == DHCP6_DURATION_INFINITE ||
 	    addr->pltime > addr->vltime)) {
-		dprintf(LOG_INFO, FNAME, "invalid address %s: "
+		debug_printf(LOG_INFO, FNAME, "invalid address %s: "
 		    "pltime (%lu) is larger than vltime (%lu)",
 		    in6addr2str(&addr->addr, 0),
 		    addr->pltime, addr->vltime);
@@ -131,7 +131,7 @@ update_address(ia, addr, dhcpifp, ctlp, callback)
 
 	if (iac_na == NULL) {
 		if ((iac_na = malloc(sizeof(*iac_na))) == NULL) {
-			dprintf(LOG_NOTICE, FNAME, "memory allocation failed");
+			debug_printf(LOG_NOTICE, FNAME, "memory allocation failed");
 			return (-1);
 		}
 		memset(iac_na, 0, sizeof(*iac_na));
@@ -152,7 +152,7 @@ update_address(ia, addr, dhcpifp, ctlp, callback)
 	/* search for the given address, and make a new one if it fails */
 	if ((sa = find_addr(&iac_na->statefuladdr_head, addr)) == NULL) {
 		if ((sa = malloc(sizeof(*sa))) == NULL) {
-			dprintf(LOG_NOTICE, FNAME, "memory allocation failed");
+			debug_printf(LOG_NOTICE, FNAME, "memory allocation failed");
 			return (-1);
 		}
 		memset(sa, 0, sizeof(*sa));
@@ -169,7 +169,7 @@ update_address(ia, addr, dhcpifp, ctlp, callback)
 	sa->addr.pltime = addr->pltime;
 	sa->addr.vltime = addr->vltime;
 	sa->dhcpif = dhcpifp;
-	dprintf(LOG_DEBUG, FNAME, "%s an address %s pltime=%lu, vltime=%lu",
+	debug_printf(LOG_DEBUG, FNAME, "%s an address %s pltime=%lu, vltime=%lu",
 	    sacreate ? "create" : "update",
 	    in6addr2str(&addr->addr, 0), addr->pltime, addr->vltime);
 
@@ -194,7 +194,7 @@ update_address(ia, addr, dhcpifp, ctlp, callback)
 		if (sa->timer == NULL) {
 			sa->timer = dhcp6_add_timer(addr_timo, sa);
 			if (sa->timer == NULL) {
-				dprintf(LOG_NOTICE, FNAME,
+				debug_printf(LOG_NOTICE, FNAME,
 				    "failed to add stateful addr timer");
 				remove_addr(sa); /* XXX */
 				return (-1);
@@ -233,7 +233,7 @@ remove_addr(sa)
 {
 	int ret;
 
-	dprintf(LOG_DEBUG, FNAME, "remove an address %s",
+	debug_printf(LOG_DEBUG, FNAME, "remove an address %s",
 	    in6addr2str(&sa->addr.addr, 0));
 
 	if (sa->timer)
@@ -343,7 +343,7 @@ na_renew_data_free(evd)
 	struct dhcp6_list *ial;
 
 	if (evd->type != DHCP6_EVDATA_IANA) {
-		dprintf(LOG_ERR, FNAME, "assumption failure");
+		debug_printf(LOG_ERR, FNAME, "assumption failure");
 		exit(1);
 	}
 
@@ -362,7 +362,7 @@ addr_timo(arg)
 	struct ia *ia;
 	void (*callback)__P((struct ia *));
 
-	dprintf(LOG_DEBUG, FNAME, "address timeout for %s",
+	debug_printf(LOG_DEBUG, FNAME, "address timeout for %s",
 	    in6addr2str(&sa->addr.addr, 0));
 
 	ia = sa->ctl->iacna_ia;
diff --git a/cftoken.c b/cftoken.c
index fcccc5a..0f6c1bf 100644
--- a/cftoken.c
+++ b/cftoken.c
@@ -2475,10 +2475,10 @@ cfdebug_print(w, t, l)
 	int l;
 {
 	if (w) {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "<%d>%s [%s] (%d)", yy_start, w, t, l);
 	} else {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "<%d>[%s] (%d)", yy_start, t, l);
 	}
 }
@@ -2494,7 +2494,7 @@ yyerror0(int level, char *s, va_list ap)
 	if (bp < ep)
 		bp += vsnprintf(bp, ep - bp, s, ap);
 
-	dprintf(level, FNAME, ebuf);
+	debug_printf(level, FNAME, ebuf);
 }
 
 void
@@ -2532,7 +2532,7 @@ cfswitch_buffer(incl)
 	FILE *fp;
 
 	if (incstackp >= MAX_INCLUDE_DEPTH) {
-		dprintf(LOG_ERR, FNAME, "cfparse: includes nested too deeply");
+		debug_printf(LOG_ERR, FNAME, "cfparse: includes nested too deeply");
 		return (-1);
 	}
 	incstack[incstackp].path = configfilename;
@@ -2541,7 +2541,7 @@ cfswitch_buffer(incl)
 
 	fp = fopen(path, "r");
 	if (fp == NULL) {
-		dprintf(LOG_ERR, FNAME, "cfparse: fopen(%s): %s",
+		debug_printf(LOG_ERR, FNAME, "cfparse: fopen(%s): %s",
 			path, strerror(errno));
 		if (errno == ENOENT)
 			return (0);
@@ -2563,7 +2563,7 @@ cfparse(conf)
 {
 	configfilename = conf;
 	if ((yyin = fopen(configfilename, "r")) == NULL) {
-		dprintf(LOG_ERR, FNAME, "cfparse: fopen(%s): %s",
+		debug_printf(LOG_ERR, FNAME, "cfparse: fopen(%s): %s",
 			configfilename, strerror(errno));
 		if (errno == ENOENT)
 			return (0);
diff --git a/cftoken.l b/cftoken.l
index ece7fbb..ad4128d 100644
--- a/cftoken.l
+++ b/cftoken.l
@@ -340,10 +340,10 @@ cfdebug_print(w, t, l)
 	int l;
 {
 	if (w) {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "<%d>%s [%s] (%d)", yy_start, w, t, l);
 	} else {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "<%d>[%s] (%d)", yy_start, t, l);
 	}
 }
@@ -359,7 +359,7 @@ yyerror0(int level, char *s, va_list ap)
 	if (bp < ep)
 		bp += vsnprintf(bp, ep - bp, s, ap);
 
-	dprintf(level, FNAME, ebuf);
+	debug_printf(level, FNAME, ebuf);
 }
 
 void
@@ -397,7 +397,7 @@ cfswitch_buffer(incl)
 	FILE *fp;
 
 	if (incstackp >= MAX_INCLUDE_DEPTH) {
-		dprintf(LOG_ERR, FNAME, "cfparse: includes nested too deeply");
+		debug_printf(LOG_ERR, FNAME, "cfparse: includes nested too deeply");
 		return (-1);
 	}
 	incstack[incstackp].path = configfilename;
@@ -406,7 +406,7 @@ cfswitch_buffer(incl)
 
 	fp = fopen(path, "r");
 	if (fp == NULL) {
-		dprintf(LOG_ERR, FNAME, "cfparse: fopen(%s): %s",
+		debug_printf(LOG_ERR, FNAME, "cfparse: fopen(%s): %s",
 			path, strerror(errno));
 		if (errno == ENOENT)
 			return (0);
@@ -428,7 +428,7 @@ cfparse(conf)
 {
 	configfilename = conf;
 	if ((yyin = fopen(configfilename, "r")) == NULL) {
-		dprintf(LOG_ERR, FNAME, "cfparse: fopen(%s): %s",
+		debug_printf(LOG_ERR, FNAME, "cfparse: fopen(%s): %s",
 			configfilename, strerror(errno));
 		if (errno == ENOENT)
 			return (0);
diff --git a/common.c b/common.c
index f35399c..cc4abcc 100644
--- a/common.c
+++ b/common.c
@@ -265,7 +265,7 @@ dhcp6_add_listval(head, type, val, sublist)
 	struct dhcp6_listval *lv = NULL;
 
 	if ((lv = malloc(sizeof(*lv))) == NULL) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "failed to allocate memory for list entry");
 		goto fail;
 	}
@@ -298,7 +298,7 @@ dhcp6_add_listval(head, type, val, sublist)
 			goto fail;
 		break;
 	default:
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "unexpected list value type (%d)", type);
 		goto fail;
 	}
@@ -361,7 +361,7 @@ dhcp6_get_addr(optlen, cp, type, list)
 	void *val;
 
 	if (optlen % sizeof(struct in6_addr) || optlen == 0) {
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 		    "malformed DHCP option: type %d, len %d", type, optlen);
 		return -1;
 	}
@@ -371,14 +371,14 @@ dhcp6_get_addr(optlen, cp, type, list)
 		memcpy(&valaddr, val, sizeof(valaddr));
 		if (dhcp6_find_listval(list,
 		    DHCP6_LISTVAL_ADDR6, &valaddr, 0)) {
-			dprintf(LOG_INFO, FNAME, "duplicated %s address (%s)",
+			debug_printf(LOG_INFO, FNAME, "duplicated %s address (%s)",
 			    dhcp6optstr(type), in6addr2str(&valaddr, 0));
 			continue;
 		}
 
 		if (dhcp6_add_listval(list, DHCP6_LISTVAL_ADDR6,
 		    &valaddr, NULL) == NULL) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "failed to copy %s address", dhcp6optstr(type));
 			return -1;
 		}
@@ -405,7 +405,7 @@ dhcp6_set_addr(type, list, p, optep, len)
 	tmpbuf = NULL;
 	optlen = dhcp6_count_list(list) * sizeof(struct in6_addr);
 	if ((tmpbuf = malloc(optlen)) == NULL) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "memory allocation failed for %s options",
 		    dhcp6optstr(type));
 		return -1;
@@ -438,10 +438,10 @@ dhcp6_get_domain(optlen, cp, type, list)
 
 		if (dnsdecode((u_char **)(void *)&val,
 		    (u_char *)(cp + optlen), name, sizeof(name)) == NULL) {
-			dprintf(LOG_INFO, FNAME, "failed to "
+			debug_printf(LOG_INFO, FNAME, "failed to "
 			    "decode a %s domain name",
 			    dhcp6optstr(type));
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "malformed DHCP option: type %d, len %d",
 			     type, optlen);
 			return -1;
@@ -452,7 +452,7 @@ dhcp6_get_domain(optlen, cp, type, list)
 
 		if (dhcp6_add_listval(list,
 		    DHCP6_LISTVAL_VBUF, &vb, NULL) == NULL) {
-			dprintf(LOG_ERR, FNAME, "failed to "
+			debug_printf(LOG_ERR, FNAME, "failed to "
 			    "copy a %s domain name", dhcp6optstr(type));
 			return -1;
 		}
@@ -485,7 +485,7 @@ dhcp6_set_domain(type, list, p, optep, len)
 
 	tmpbuf = NULL;
 	if ((tmpbuf = malloc(optlen)) == NULL) {
-		dprintf(LOG_ERR, FNAME, "memory allocation failed for "
+		debug_printf(LOG_ERR, FNAME, "memory allocation failed for "
 		    "%s domain options", dhcp6optstr(type));
 		return -1;
 	}
@@ -497,14 +497,14 @@ dhcp6_set_domain(type, list, p, optep, len)
 		nlen = dnsencode((const char *)d->val_vbuf.dv_buf,
 		    name, sizeof (name));
 		if (nlen < 0) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "failed to encode a %s domain name",
 			    dhcp6optstr(type));
 			free(tmpbuf);
 			return -1;
 		}
 		if (ep - cp < nlen) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "buffer length for %s domain name is too short",
 			    dhcp6optstr(type));
 			free(tmpbuf);
@@ -530,7 +530,7 @@ dhcp6_create_event(ifp, state)
 	struct dhcp6_event *ev;
 
 	if ((ev = malloc(sizeof(*ev))) == NULL) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "failed to allocate memory for an event");
 		return (NULL);
 	}
@@ -548,7 +548,7 @@ dhcp6_remove_event(ev)
 {
 	struct dhcp6_serverinfo *sp, *sp_next;
 
-	dprintf(LOG_DEBUG, FNAME, "removing an event on %s, state=%s",
+	debug_printf(LOG_DEBUG, FNAME, "removing an event on %s, state=%s",
 	    ev->ifp->ifname, dhcp6_event_statestr(ev));
 
 	dhcp6_remove_evdata(ev);
@@ -562,7 +562,7 @@ dhcp6_remove_event(ev)
 	for (sp = ev->servers; sp; sp = sp_next) {
 		sp_next = sp->next;
 
-		dprintf(LOG_DEBUG, FNAME, "removing server (ID: %s)",
+		debug_printf(LOG_DEBUG, FNAME, "removing server (ID: %s)",
 		    duidstr(&sp->optinfo.serverID));
 		dhcp6_clear_options(&sp->optinfo);
 		if (sp->authparam != NULL)
@@ -649,14 +649,14 @@ dhcp6_auth_replaycheck(method, prev, current)
 	char bufcurrent[] = "ffff ffff ffff ffff";
 
 	if (method != DHCP6_AUTHRDM_MONOCOUNTER) {
-		dprintf(LOG_ERR, FNAME, "unsupported replay detection "
+		debug_printf(LOG_ERR, FNAME, "unsupported replay detection "
 		    "method (%d)", method);
 		return (-1);
 	}
 
 	(void)sprint_uint64(bufprev, sizeof(bufprev), prev);
 	(void)sprint_uint64(bufcurrent, sizeof(bufcurrent), current);
-	dprintf(LOG_DEBUG, FNAME, "previous: %s, current: %s",
+	debug_printf(LOG_DEBUG, FNAME, "previous: %s, current: %s",
 	    bufprev, bufcurrent);
 
 	prev = ntohq(prev);
@@ -667,7 +667,7 @@ dhcp6_auth_replaycheck(method, prev, current)
 	 * whether the serial number is increasing or not.
 	 */
         if (prev == (current ^ 0x8000000000000000ULL)) {
-		dprintf(LOG_INFO, FNAME, "detected a singular point");
+		debug_printf(LOG_INFO, FNAME, "detected a singular point");
 		return (1);
 	}
 
@@ -688,7 +688,7 @@ getifaddr(addr, ifnam, prefix, plen, strong, ignoreflags)
 	int error = -1;
 
 	if (getifaddrs(&ifap) != 0) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 			"getifaddrs failed: %s", strerror(errno));
 		return (-1);
 	}
@@ -765,7 +765,7 @@ getifidfromaddr(addr, ifidp)
 	int retval = -1;
 
 	if (getifaddrs(&ifap) != 0) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 			"getifaddrs failed: %s", strerror(errno));
 		return (-1);
 	}
@@ -781,7 +781,7 @@ getifidfromaddr(addr, ifidp)
 
 	if (ifa != NULL) {
 		if ((ifid = if_nametoindex(ifa->ifa_name)) == 0) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "if_nametoindex failed for %s", ifa->ifa_name);
 			goto end;
 		}
@@ -999,20 +999,20 @@ get_duid(idfile, duid)
 	char tmpbuf[256];	/* DUID should be no more than 256 bytes */
 
 	if ((fp = fopen(idfile, "r")) == NULL && errno != ENOENT)
-		dprintf(LOG_NOTICE, FNAME, "failed to open DUID file: %s",
+		debug_printf(LOG_NOTICE, FNAME, "failed to open DUID file: %s",
 		    idfile);
 
 	if (fp) {
 		/* decode length */
 		if (fread(&len, sizeof(len), 1, fp) != 1) {
-			dprintf(LOG_ERR, FNAME, "DUID file corrupted");
+			debug_printf(LOG_ERR, FNAME, "DUID file corrupted");
 			goto fail;
 		}
 	} else {
 		int l;
 
 		if ((l = gethwid(tmpbuf, sizeof(tmpbuf), NULL, &hwtype)) < 0) {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "failed to get a hardware address");
 			goto fail;
 		}
@@ -1022,18 +1022,18 @@ get_duid(idfile, duid)
 	memset(duid, 0, sizeof(*duid));
 	duid->duid_len = len;
 	if ((duid->duid_id = (char *)malloc(len)) == NULL) {
-		dprintf(LOG_ERR, FNAME, "failed to allocate memory");
+		debug_printf(LOG_ERR, FNAME, "failed to allocate memory");
 		goto fail;
 	}
 
 	/* copy (and fill) the ID */
 	if (fp) {
 		if (fread(duid->duid_id, len, 1, fp) != 1) {
-			dprintf(LOG_ERR, FNAME, "DUID file corrupted");
+			debug_printf(LOG_ERR, FNAME, "DUID file corrupted");
 			goto fail;
 		}
 
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "extracted an existing DUID from %s: %s",
 		    idfile, duidstr(duid));
 	} else {
@@ -1047,27 +1047,27 @@ get_duid(idfile, duid)
 		dp->dh6_duid1_time = htonl((u_long)(t64 & 0xffffffff));
 		memcpy((void *)(dp + 1), tmpbuf, (len - sizeof(*dp)));
 
-		dprintf(LOG_DEBUG, FNAME, "generated a new DUID: %s",
+		debug_printf(LOG_DEBUG, FNAME, "generated a new DUID: %s",
 		    duidstr(duid));
 	}
 
 	/* save the (new) ID to the file for next time */
 	if (!fp) {
 		if ((fp = fopen(idfile, "w+")) == NULL) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "failed to open DUID file for save");
 			goto fail;
 		}
 		if ((fwrite(&len, sizeof(len), 1, fp)) != 1) {
-			dprintf(LOG_ERR, FNAME, "failed to save DUID");
+			debug_printf(LOG_ERR, FNAME, "failed to save DUID");
 			goto fail;
 		}
 		if ((fwrite(duid->duid_id, len, 1, fp)) != 1) {
-			dprintf(LOG_ERR, FNAME, "failed to save DUID");
+			debug_printf(LOG_ERR, FNAME, "failed to save DUID");
 			goto fail;
 		}
 
-		dprintf(LOG_DEBUG, FNAME, "saved generated DUID to %s",
+		debug_printf(LOG_DEBUG, FNAME, "saved generated DUID to %s",
 		    idfile);
 	}
 
@@ -1104,7 +1104,7 @@ getifhwaddr(const char *ifname, char *buf, u_int16_t *hwtypep, int ppa)
 	dl_phys_addr_req_t dlpar;
 	dl_phys_addr_ack_t *dlpaa;
 
-	dprintf(LOG_DEBUG, FNAME, "trying %s ppa %d", ifname, ppa);
+	debug_printf(LOG_DEBUG, FNAME, "trying %s ppa %d", ifname, ppa);
 
 	if (ifname[0] == '\0')
 		return (-1);
@@ -1239,7 +1239,7 @@ gethwid(buf, len, ifname, hwtypep)
 
 		if ((root = di_init("/", DINFOSUBTREE | DINFOMINOR |
 		    DINFOPROP)) == DI_NODE_NIL) {
-			dprintf(LOG_INFO, FNAME, "di_init failed");
+			debug_printf(LOG_INFO, FNAME, "di_init failed");
 			return (-1);
 		}
 		parms.buf = buf;
@@ -1283,7 +1283,7 @@ gethwid(buf, len, ifname, hwtypep)
 		default:
 			continue; /* XXX */
 		}
-		dprintf(LOG_DEBUG, FNAME, "found an interface %s for DUID",
+		debug_printf(LOG_DEBUG, FNAME, "found an interface %s for DUID",
 		    ifa->ifa_name);
 		memcpy(buf, LLADDR(sdl), sdl->sdl_alen);
 		l = sdl->sdl_alen; /* sdl will soon be freed */
@@ -1296,7 +1296,7 @@ gethwid(buf, len, ifname, hwtypep)
 		if (sll->sll_hatype != ARPHRD_ETHER)
 			continue;
 		*hwtypep = ARPHRD_ETHER;
-		dprintf(LOG_DEBUG, FNAME, "found an interface %s for DUID",
+		debug_printf(LOG_DEBUG, FNAME, "found an interface %s for DUID",
 		    ifa->ifa_name);
 		memcpy(buf, sll->sll_addr, sll->sll_halen);
 		l = sll->sll_halen; /* sll will soon be freed */
@@ -1512,12 +1512,12 @@ dhcp6_get_options(p, ep, optinfo)
 		cp = (char *)(p + 1);
 		np = (struct dhcp6opt *)(cp + optlen);
 
-		dprintf(LOG_DEBUG, FNAME, "get DHCP option %s, len %d",
+		debug_printf(LOG_DEBUG, FNAME, "get DHCP option %s, len %d",
 		    dhcp6optstr(opt), optlen);
 
 		/* option length field overrun */
 		if (np > ep) {
-			dprintf(LOG_INFO, FNAME, "malformed DHCP options");
+			debug_printf(LOG_INFO, FNAME, "malformed DHCP options");
 			goto fail;
 		}
 
@@ -1527,10 +1527,10 @@ dhcp6_get_options(p, ep, optinfo)
 				goto malformed;
 			duid0.duid_len = optlen;
 			duid0.duid_id = cp;
-			dprintf(LOG_DEBUG, "",
+			debug_printf(LOG_DEBUG, "",
 				"  DUID: %s", duidstr(&duid0));
 			if (duidcpy(&optinfo->clientID, &duid0)) {
-				dprintf(LOG_ERR, FNAME, "failed to copy DUID");
+				debug_printf(LOG_ERR, FNAME, "failed to copy DUID");
 				goto fail;
 			}
 			break;
@@ -1539,9 +1539,9 @@ dhcp6_get_options(p, ep, optinfo)
 				goto malformed;
 			duid0.duid_len = optlen;
 			duid0.duid_id = cp;
-			dprintf(LOG_DEBUG, "", "  DUID: %s", duidstr(&duid0));
+			debug_printf(LOG_DEBUG, "", "  DUID: %s", duidstr(&duid0));
 			if (duidcpy(&optinfo->serverID, &duid0)) {
-				dprintf(LOG_ERR, FNAME, "failed to copy DUID");
+				debug_printf(LOG_ERR, FNAME, "failed to copy DUID");
 				goto fail;
 			}
 			break;
@@ -1550,14 +1550,14 @@ dhcp6_get_options(p, ep, optinfo)
 				goto malformed;
 			memcpy(&val16, cp, sizeof(val16));
 			num16 = ntohs(val16);
-			dprintf(LOG_DEBUG, "", "  status code: %s",
+			debug_printf(LOG_DEBUG, "", "  status code: %s",
 			    dhcp6_stcodestr(num16));
 
 			/* need to check duplication? */
 
 			if (dhcp6_add_listval(&optinfo->stcode_list,
 			    DHCP6_LISTVAL_STCODE, &num16, NULL) == NULL) {
-				dprintf(LOG_ERR, FNAME, "failed to copy "
+				debug_printf(LOG_ERR, FNAME, "failed to copy "
 				    "status code");
 				goto fail;
 			}
@@ -1574,13 +1574,13 @@ dhcp6_get_options(p, ep, optinfo)
 				memcpy(&opttype, val, sizeof(u_int16_t));
 				num = (int)ntohs(opttype);
 
-				dprintf(LOG_DEBUG, "",
+				debug_printf(LOG_DEBUG, "",
 					"  requested option: %s",
 					dhcp6optstr(num));
 
 				if (dhcp6_find_listval(&optinfo->reqopt_list,
 				    DHCP6_LISTVAL_NUM, &num, 0)) {
-					dprintf(LOG_INFO, FNAME, "duplicated "
+					debug_printf(LOG_INFO, FNAME, "duplicated "
 					    "option type (%s)",
 					    dhcp6optstr(opttype));
 					goto nextoption;
@@ -1588,7 +1588,7 @@ dhcp6_get_options(p, ep, optinfo)
 
 				if (dhcp6_add_listval(&optinfo->reqopt_list,
 				    DHCP6_LISTVAL_NUM, &num, NULL) == NULL) {
-					dprintf(LOG_ERR, FNAME,
+					debug_printf(LOG_ERR, FNAME,
 					    "failed to copy requested option");
 					goto fail;
 				}
@@ -1599,10 +1599,10 @@ dhcp6_get_options(p, ep, optinfo)
 		case DH6OPT_PREFERENCE:
 			if (optlen != 1)
 				goto malformed;
-			dprintf(LOG_DEBUG, "", "  preference: %d",
+			debug_printf(LOG_DEBUG, "", "  preference: %d",
 			    (int)*(u_char *)cp);
 			if (optinfo->pref != DH6OPT_PREF_UNDEF) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "duplicated preference option");
 			} else
 				optinfo->pref = (int)*(u_char *)cp;
@@ -1612,11 +1612,11 @@ dhcp6_get_options(p, ep, optinfo)
 				goto malformed;
 			memcpy(&val16, cp, sizeof(val16));
 			val16 = ntohs(val16);
-			dprintf(LOG_DEBUG, "", "  elapsed time: %lu",
+			debug_printf(LOG_DEBUG, "", "  elapsed time: %lu",
 			    (u_int32_t)val16);
 			if (optinfo->elapsed_time !=
 			    DH6OPT_ELAPSED_TIME_UNDEF) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "duplicated elapsed time option");
 			} else
 				optinfo->elapsed_time = val16;
@@ -1637,7 +1637,7 @@ dhcp6_get_options(p, ep, optinfo)
 			 * [RFC3315 Section 21.4.2]
 			 */
 			if (optinfo->authproto != DHCP6_AUTHPROTO_UNDEF) {
-				dprintf(LOG_INFO, FNAME, "found more than one "
+				debug_printf(LOG_INFO, FNAME, "found more than one "
 				    "authentication option");
 				goto fail;
 			}
@@ -1648,7 +1648,7 @@ dhcp6_get_options(p, ep, optinfo)
 			memcpy(&optinfo->authrd, cp, sizeof(optinfo->authrd));
 			cp += sizeof(optinfo->authrd);
 
-			dprintf(LOG_DEBUG, "", "  %s", sprint_auth(optinfo));
+			debug_printf(LOG_DEBUG, "", "  %s", sprint_auth(optinfo));
 
 			authinfolen =
 			    optlen - (sizeof(struct dhcp6opt_auth) - 4);
@@ -1670,7 +1670,7 @@ dhcp6_get_options(p, ep, optinfo)
 				optinfo->delayedauth_realmval =
 				    malloc(optinfo->delayedauth_realmlen);
 				if (optinfo->delayedauth_realmval == NULL) {
-					dprintf(LOG_WARNING, FNAME, "failed "
+					debug_printf(LOG_WARNING, FNAME, "failed "
 					    "allocate memory for auth realm");
 					goto fail;
 				}
@@ -1687,7 +1687,7 @@ dhcp6_get_options(p, ep, optinfo)
 				optinfo->delayedauth_offset = cp - bp;
 				cp += 16;
 
-				dprintf(LOG_DEBUG, "", "  auth key ID: %x, "
+				debug_printf(LOG_DEBUG, "", "  auth key ID: %x, "
 				    "offset=%d, realmlen=%d",
 				    optinfo->delayedauth_keyid,
 				    optinfo->delayedauth_offset,
@@ -1698,7 +1698,7 @@ dhcp6_get_options(p, ep, optinfo)
 				break;
 #endif
 			default:
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "unsupported authentication protocol: %d",
 				    *cp);
 				goto fail;
@@ -1779,14 +1779,14 @@ dhcp6_get_options(p, ep, optinfo)
 			ia.t1 = ntohl(optia.dh6_ia_t1);
 			ia.t2 = ntohl(optia.dh6_ia_t2);
 
-			dprintf(LOG_DEBUG, "",
+			debug_printf(LOG_DEBUG, "",
 			    "  IA_PD: ID=%lu, T1=%lu, T2=%lu",
 			    ia.iaid, ia.t1, ia.t2);
 
 			/* duplication check */
 			if (dhcp6_find_listval(&optinfo->iapd_list,
 			    DHCP6_LISTVAL_IAPD, &ia, 0)) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "duplicated IA_PD %lu", ia.iaid);
 				break; /* ignore this IA_PD */
 			}
@@ -1813,7 +1813,7 @@ dhcp6_get_options(p, ep, optinfo)
 				goto malformed;
 			memcpy(&val32, cp, sizeof(val32));
 			val32 = ntohl(val32);
-			dprintf(LOG_DEBUG, "",
+			debug_printf(LOG_DEBUG, "",
 			    "   information refresh time: %lu", val32);
 			if (val32 < DHCP6_IRT_MINIMUM) {
 				/*
@@ -1823,13 +1823,13 @@ dhcp6_get_options(p, ep, optinfo)
 				 * [draft-ietf-dhc-lifetime-02.txt,
 				 *  Section 3.2]
 				 */
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "refresh time is too small (%d), adjusted",
 				    val32);
 				val32 = DHCP6_IRT_MINIMUM;
 			}
 			if (optinfo->refreshtime != DH6OPT_REFRESHTIME_UNDEF) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "duplicated refresh time option");
 			} else
 				optinfo->refreshtime = (int64_t)val32;
@@ -1843,14 +1843,14 @@ dhcp6_get_options(p, ep, optinfo)
 			ia.t1 = ntohl(optia.dh6_ia_t1);
 			ia.t2 = ntohl(optia.dh6_ia_t2);
 
-			dprintf(LOG_DEBUG, "",
+			debug_printf(LOG_DEBUG, "",
 			    "  IA_NA: ID=%lu, T1=%lu, T2=%lu",
 			    ia.iaid, ia.t1, ia.t2);
 
 			/* duplication check */
 			if (dhcp6_find_listval(&optinfo->iana_list,
 			    DHCP6_LISTVAL_IANA, &ia, 0)) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "duplicated IA_NA %lu", ia.iaid);
 				break; /* ignore this IA_NA */
 			}
@@ -1874,7 +1874,7 @@ dhcp6_get_options(p, ep, optinfo)
 			break;
 		default:
 			/* no option specific behavior */
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "unknown or unexpected DHCP6 option %s, len %d",
 			    dhcp6optstr(opt), optlen);
 			break;
@@ -1884,7 +1884,7 @@ dhcp6_get_options(p, ep, optinfo)
 	return (0);
 
   malformed:
-	dprintf(LOG_INFO, FNAME, "malformed DHCP option: type %d, len %d",
+	debug_printf(LOG_INFO, FNAME, "malformed DHCP option: type %d, len %d",
 	    opt, optlen);
   fail:
 	dhcp6_clear_options(optinfo);
@@ -1967,11 +1967,11 @@ copyin_option(type, p, ep, list)
 		cp = (char *)(p + 1);
 		np = (struct dhcp6opt *)(cp + optlen);
 
-		dprintf(LOG_DEBUG, FNAME, "get DHCP option %s, len %d",
+		debug_printf(LOG_DEBUG, FNAME, "get DHCP option %s, len %d",
 		    dhcp6optstr(opt), optlen);
 
 		if (np > ep) {
-			dprintf(LOG_INFO, FNAME, "malformed DHCP option");
+			debug_printf(LOG_INFO, FNAME, "malformed DHCP option");
 			goto fail;
 		}
 
@@ -1979,7 +1979,7 @@ copyin_option(type, p, ep, list)
 		case DH6OPT_IA_PD_PREFIX:
 			/* check option context */
 			if (type != DH6OPT_IA_PD) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "%s is an invalid position for %s",
 				    dhcp6optstr(type), dhcp6optstr(opt));
 				goto fail;
@@ -1991,7 +1991,7 @@ copyin_option(type, p, ep, list)
 			/* copy and convert option values */
 			memcpy(&opt_iapd_prefix, p, sizeof(opt_iapd_prefix));
 			if (opt_iapd_prefix.dh6_iapd_prefix_prefix_len > 128) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "invalid prefix length (%d)",
 				    opt_iapd_prefix.dh6_iapd_prefix_prefix_len);
 				goto malformed;
@@ -2006,7 +2006,7 @@ copyin_option(type, p, ep, list)
 			/* clear padding bits in the prefix address */
 			prefix6_mask(&iapd_prefix.addr, iapd_prefix.plen);
 
-			dprintf(LOG_DEBUG, FNAME, "  IA_PD prefix: "
+			debug_printf(LOG_DEBUG, FNAME, "  IA_PD prefix: "
 			    "%s/%d pltime=%lu vltime=%lu",
 			    in6addr2str(&iapd_prefix.addr, 0),
 			    iapd_prefix.plen,
@@ -2014,7 +2014,7 @@ copyin_option(type, p, ep, list)
 
 			if (dhcp6_find_listval(list, DHCP6_LISTVAL_PREFIX6,
 			    &iapd_prefix, 0)) {
-				dprintf(LOG_INFO, FNAME, 
+				debug_printf(LOG_INFO, FNAME, 
 				    "duplicated IA_PD prefix "
 				    "%s/%d pltime=%lu vltime=%lu",
 				    in6addr2str(&iapd_prefix.addr, 0),
@@ -2041,7 +2041,7 @@ copyin_option(type, p, ep, list)
 		case DH6OPT_IAADDR:
 			/* check option context */
 			if (type != DH6OPT_IA_NA) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "%s is an invalid position for %s",
 				    dhcp6optstr(type), dhcp6optstr(opt));
 				goto fail;
@@ -2057,14 +2057,14 @@ copyin_option(type, p, ep, list)
 			memcpy(&ia_addr.addr, &opt_ia_addr.dh6_ia_addr_addr,
 			    sizeof(ia_addr.addr));
 
-			dprintf(LOG_DEBUG, FNAME, "  IA_NA address: "
+			debug_printf(LOG_DEBUG, FNAME, "  IA_NA address: "
 			    "%s pltime=%lu vltime=%lu",
 			    in6addr2str(&ia_addr.addr, 0),
 			    ia_addr.pltime, ia_addr.vltime);
 
 			if (dhcp6_find_listval(list,
 			    DHCP6_LISTVAL_STATEFULADDR6, &ia_addr, 0)) {
-				dprintf(LOG_INFO, FNAME, 
+				debug_printf(LOG_INFO, FNAME, 
 				    "duplicated IA_NA address"
 				    "%s pltime=%lu vltime=%lu",
 				    in6addr2str(&ia_addr.addr, 0),
@@ -2093,7 +2093,7 @@ copyin_option(type, p, ep, list)
 			    type != DH6OPT_IA_PD_PREFIX &&
 			    type != DH6OPT_IA_NA &&
 			    type != DH6OPT_IAADDR) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "%s is an invalid position for %s",
 				    dhcp6optstr(type), dhcp6optstr(opt));
 				goto nextoption; /* or discard the message? */
@@ -2107,13 +2107,13 @@ copyin_option(type, p, ep, list)
 			opt_stcode.dh6_stcode_code =
 			    ntohs(opt_stcode.dh6_stcode_code);
 
-			dprintf(LOG_DEBUG, "", "  status code: %s",
+			debug_printf(LOG_DEBUG, "", "  status code: %s",
 			    dhcp6_stcodestr(opt_stcode.dh6_stcode_code));
 
 			/* duplication check */
 			if (dhcp6_find_listval(list, DHCP6_LISTVAL_STCODE,
 			    &opt_stcode.dh6_stcode_code, 0)) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "duplicated status code (%d)",
 				    opt_stcode.dh6_stcode_code);
 				goto nextoption;
@@ -2133,7 +2133,7 @@ copyin_option(type, p, ep, list)
 	return (0);
 
   malformed:
-	dprintf(LOG_INFO, "", "  malformed DHCP option: type %d", opt);
+	debug_printf(LOG_INFO, "", "  malformed DHCP option: type %d", opt);
 
   fail:
 	dhcp6_clear_list(&sublist);
@@ -2221,7 +2221,7 @@ copy_option(type, len, val, optp, ep, totallenp)
 	struct dhcp6opt *opt = *optp, opth;
 
 	if ((void *)ep - (void *)optp < len + sizeof(struct dhcp6opt)) {
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 		    "option buffer short for %s", dhcp6optstr(type));
 		return (-1);
 	}
@@ -2233,7 +2233,7 @@ copy_option(type, len, val, optp, ep, totallenp)
 
 	*optp = (struct dhcp6opt *)((char *)(opt + 1) + len);
  	*totallenp += sizeof(struct dhcp6opt) + len;
-	dprintf(LOG_DEBUG, FNAME, "set %s (len %d)", dhcp6optstr(type), len);
+	debug_printf(LOG_DEBUG, FNAME, "set %s (len %d)", dhcp6optstr(type), len);
 
 	return (0);
 }
@@ -2269,21 +2269,21 @@ dhcp6_set_options(type, optbp, optep, optinfo)
 
 		tmpbuf = NULL;
 		if ((optlen = copyout_option(NULL, NULL, op)) < 0) {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "failed to count option length");
 			goto fail;
 		}
 		if ((void *)optep - (void *)p < optlen) {
-			dprintf(LOG_INFO, FNAME, "short buffer");
+			debug_printf(LOG_INFO, FNAME, "short buffer");
 			goto fail;
 		}
 		if ((tmpbuf = malloc(optlen)) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "memory allocation failed for IA_NA options");
 			goto fail;
 		}
 		if (copyout_option(tmpbuf, tmpbuf + optlen, op) < 0) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "failed to construct an IA_NA option");
 			goto fail;
 		}
@@ -2340,7 +2340,7 @@ dhcp6_set_options(type, optbp, optep, optinfo)
 		buflen = dhcp6_count_list(&optinfo->reqopt_list) *
 			sizeof(u_int16_t);
 		if ((tmpbuf = malloc(buflen)) == NULL) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "memory allocation failed for options");
 			goto fail;
 		}
@@ -2355,7 +2355,7 @@ dhcp6_set_options(type, optbp, optep, optinfo)
 			 */
 			if (opt->val_num == DH6OPT_REFRESHTIME &&
 			    type != DH6_INFORM_REQ) {
-				dprintf(LOG_DEBUG, FNAME,
+				debug_printf(LOG_DEBUG, FNAME,
 				    "refresh time option is not requested "
 				    "for %s", dhcp6msgstr(type));
 			}
@@ -2423,21 +2423,21 @@ dhcp6_set_options(type, optbp, optep, optinfo)
 
 		tmpbuf = NULL;
 		if ((optlen = copyout_option(NULL, NULL, op)) < 0) {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "failed to count option length");
 			goto fail;
 		}
 		if ((void *)optep - (void *)p < optlen) {
-			dprintf(LOG_INFO, FNAME, "short buffer");
+			debug_printf(LOG_INFO, FNAME, "short buffer");
 			goto fail;
 		}
 		if ((tmpbuf = malloc(optlen)) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "memory allocation failed for IA_PD options");
 			goto fail;
 		}
 		if (copyout_option(tmpbuf, tmpbuf + optlen, op) < 0) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "failed to construct an IA_PD option");
 			goto fail;
 		}
@@ -2492,13 +2492,13 @@ dhcp6_set_options(type, optbp, optep, optinfo)
 				break;
 #endif
 			default:
-				dprintf(LOG_ERR, FNAME,
+				debug_printf(LOG_ERR, FNAME,
 				    "unexpected authentication protocol");
 				goto fail;
 			}
 		}
 		if ((auth = malloc(authlen)) == NULL) {
-			dprintf(LOG_WARNING, FNAME, "failed to allocate "
+			debug_printf(LOG_WARNING, FNAME, "failed to allocate "
 			    "memory for authentication information");
 			goto fail;
 		}
@@ -2534,7 +2534,7 @@ dhcp6_set_options(type, optbp, optep, optinfo)
 				optinfo->delayedauth_offset =
 				    ((char *)p - (char *)optbp) + authlen - 16;
 
-				dprintf(LOG_DEBUG, FNAME,
+				debug_printf(LOG_DEBUG, FNAME,
 				    "key ID %x, offset %d",
 				    optinfo->delayedauth_keyid,
 				    optinfo->delayedauth_offset); 
@@ -2543,7 +2543,7 @@ dhcp6_set_options(type, optbp, optep, optinfo)
 			case DHCP6_AUTHPROTO_RECONFIG:
 #endif
 			default:
-				dprintf(LOG_ERR, FNAME,
+				debug_printf(LOG_ERR, FNAME,
 				    "unexpected authentication protocol");
 				free(auth);
 				goto fail;
@@ -2695,7 +2695,7 @@ copyout_option(p, ep, optval)
 		 * we encounter an unknown option.  this should be an internal
 		 * error.
 		 */
-		dprintf(LOG_ERR, FNAME, "unknown option: code %d",
+		debug_printf(LOG_ERR, FNAME, "unknown option: code %d",
 		    optval->type);
 		return (-1);
 	}
@@ -2721,7 +2721,7 @@ copyout_option(p, ep, optval)
 	if (!p)
 		return(optlen);
 
-	dprintf(LOG_DEBUG, FNAME, "set %s", dhcp6optstr(opttype));
+	debug_printf(LOG_DEBUG, FNAME, "set %s", dhcp6optstr(opttype));
 	if (ep - p < headlen) /* check it just in case */
 		return (-1);
 
@@ -2812,7 +2812,7 @@ dhcp6_set_timeoparam(ev)
 		ev->max_retrans_cnt = REL_MAX_RC;
 		break;
 	default:
-		dprintf(LOG_ERR, FNAME, "unexpected event state %d on %s",
+		debug_printf(LOG_ERR, FNAME, "unexpected event state %d on %s",
 		    ev->state, ev->ifp->ifname);
 		exit(1);
 	}
@@ -2870,7 +2870,7 @@ dhcp6_reset_timer(ev)
 
 	statestr = dhcp6_event_statestr(ev);
 
-	dprintf(LOG_DEBUG, FNAME, "reset a timer on %s, "
+	debug_printf(LOG_DEBUG, FNAME, "reset a timer on %s, "
 		"state=%s, timeo=%d, retrans=%d",
 		ev->ifp->ifname, statestr, ev->timeouts, ev->retrans);
 }
@@ -2881,7 +2881,7 @@ duidcpy(dd, ds)
 {
 	dd->duid_len = ds->duid_len;
 	if ((dd->duid_id = malloc(dd->duid_len)) == NULL) {
-		dprintf(LOG_ERR, FNAME, "memory allocation failed");
+		debug_printf(LOG_ERR, FNAME, "memory allocation failed");
 		return (-1);
 	}
 	memcpy(dd->duid_id, ds->duid_id, dd->duid_len);
@@ -2929,17 +2929,17 @@ get_rdvalue(rdm, rdvalue, rdsize)
 	u_int32_t u32, l32;
 
 	if (rdm != DHCP6_AUTHRDM_MONOCOUNTER) {
-		dprintf(LOG_INFO, FNAME, "unsupported RDM (%d)", rdm);
+		debug_printf(LOG_INFO, FNAME, "unsupported RDM (%d)", rdm);
 		return (-1);
 	}
 	if (rdsize != sizeof(u_int64_t)) {
-		dprintf(LOG_INFO, FNAME, "unsupported RD size (%d)", rdsize);
+		debug_printf(LOG_INFO, FNAME, "unsupported RD size (%d)", rdsize);
 		return (-1);
 	}
 
 #if defined(HAVE_CLOCK_GETTIME)
 	if (clock_gettime(CLOCK_REALTIME, &tp)) {
-		dprintf(LOG_WARNING, FNAME, "clock_gettime failed: %s",
+		debug_printf(LOG_WARNING, FNAME, "clock_gettime failed: %s",
 		    strerror(errno));
 		return (-1);
 	}
@@ -2952,7 +2952,7 @@ get_rdvalue(rdm, rdvalue, rdsize)
 	l32 = (u_int32_t)nsec;
 #else
 	if (gettimeofday(&tv, NULL) != 0) {
-		dprintf(LOG_WARNING, FNAME, "gettimeofday failed: %s",
+		debug_printf(LOG_WARNING, FNAME, "gettimeofday failed: %s",
 		    strerror(errno));
 		return (-1);
 	}
@@ -3207,7 +3207,7 @@ setloglevel(debuglevel)
 }
 
 void
-dprintf(int level, const char *fname, const char *fmt, ...)
+debug_printf(int level, const char *fname, const char *fmt, ...)
 {
 	va_list ap;
 	char logbuf[LINE_MAX];
@@ -3293,7 +3293,7 @@ ifaddrconf(cmd, ifname, addr, plen, pltime, vltime)
 	}
 
 	if ((s = socket(PF_INET6, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
-		dprintf(LOG_ERR, FNAME, "can't open a temporary socket: %s",
+		debug_printf(LOG_ERR, FNAME, "can't open a temporary socket: %s",
 		    strerror(errno));
 		return (-1);
 	}
@@ -3311,7 +3311,7 @@ ifaddrconf(cmd, ifname, addr, plen, pltime, vltime)
 	memset(&ifr, 0, sizeof(ifr));
 	strncpy(ifr.ifr_name, ifname, IFNAMSIZ - 1);
 	if (ioctl(s, SIOGIFINDEX, &ifr) < 0) {
-		dprintf(LOG_NOTICE, FNAME, "failed to get the index of %s: %s",
+		debug_printf(LOG_NOTICE, FNAME, "failed to get the index of %s: %s",
 		    ifname, strerror(errno));
 		close(s); 
 		return (-1); 
@@ -3325,7 +3325,7 @@ ifaddrconf(cmd, ifname, addr, plen, pltime, vltime)
 #endif
 
 	if (ioctl(s, ioctl_cmd, &req)) {
-		dprintf(LOG_NOTICE, FNAME, "failed to %s an address on %s: %s",
+		debug_printf(LOG_NOTICE, FNAME, "failed to %s an address on %s: %s",
 		    cmdstr, ifname, strerror(errno));
 		close(s);
 		return (-1);
@@ -3334,14 +3334,14 @@ ifaddrconf(cmd, ifname, addr, plen, pltime, vltime)
 #ifdef __sun__
 	memcpy(&req.lifr_addr, addr, sizeof (*addr));
 	if (ioctl(s, SIOCSLIFADDR, &req) == -1) {
-		dprintf(LOG_NOTICE, FNAME, "failed to %s new address on %s: %s",
+		debug_printf(LOG_NOTICE, FNAME, "failed to %s new address on %s: %s",
 		    cmdstr, ifname, strerror(errno));
 		close(s);
 		return (-1);
 	}
 #endif
 
-	dprintf(LOG_DEBUG, FNAME, "%s an address %s/%d on %s", cmdstr,
+	debug_printf(LOG_DEBUG, FNAME, "%s an address %s/%d on %s", cmdstr,
 	    addr2str((struct sockaddr *)addr), plen, ifname);
 
 	close(s);
@@ -3357,13 +3357,13 @@ safefile(path)
 
 	/* no setuid */
 	if (getuid() != geteuid()) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "setuid'ed execution not allowed");
 		return (-1);
 	}
 
 	if (lstat(path, &s) != 0) {
-		dprintf(LOG_NOTICE, FNAME, "lstat failed: %s",
+		debug_printf(LOG_NOTICE, FNAME, "lstat failed: %s",
 		    strerror(errno));
 		return (-1);
 	}
@@ -3371,7 +3371,7 @@ safefile(path)
 	/* the file must be owned by the running uid */
 	myuid = getuid();
 	if (s.st_uid != myuid) {
-		dprintf(LOG_NOTICE, FNAME, "%s has invalid owner uid", path);
+		debug_printf(LOG_NOTICE, FNAME, "%s has invalid owner uid", path);
 		return (-1);
 	}
 
@@ -3379,7 +3379,7 @@ safefile(path)
 	case S_IFREG:
 		break;
 	default:
-		dprintf(LOG_NOTICE, FNAME, "%s is an invalid file type 0x%o",
+		debug_printf(LOG_NOTICE, FNAME, "%s is an invalid file type 0x%o",
 		    path, (s.st_mode & S_IFMT));
 		return (-1);
 	}
diff --git a/common.h b/common.h
index 7366c25..9fd8008 100644
--- a/common.h
+++ b/common.h
@@ -155,7 +155,7 @@ extern char *in6addr2str __P((struct in6_addr *, int));
 extern int in6_addrscopebyif __P((struct in6_addr *, char *));
 extern int in6_scope __P((struct in6_addr *));
 extern void setloglevel __P((int));
-extern void dprintf __P((int, const char *, const char *, ...));
+extern void debug_printf __P((int, const char *, const char *, ...));
 extern int get_duid __P((char *, struct duid *));
 extern void dhcp6_init_options __P((struct dhcp6_optinfo *));
 extern void dhcp6_clear_options __P((struct dhcp6_optinfo *));
diff --git a/config.c b/config.c
index 383c12a..3721545 100644
--- a/config.c
+++ b/config.c
@@ -156,13 +156,13 @@ configure_interface(iflist)
 		struct cf_list *cfl;
 
 		if (if_nametoindex(ifp->name) == 0) {
-			dprintf(LOG_ERR, FNAME, "invalid interface(%s): %s",
+			debug_printf(LOG_ERR, FNAME, "invalid interface(%s): %s",
 			    ifp->name, strerror(errno));
 			goto bad;
 		}
 
 		if ((ifc = malloc(sizeof(*ifc))) == NULL) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "memory allocation for %s failed", ifp->name);
 			goto bad;
 		}
@@ -171,7 +171,7 @@ configure_interface(iflist)
 		dhcp6_ifconflist = ifc;
 
 		if ((ifc->ifname = strdup(ifp->name)) == NULL) {
-			dprintf(LOG_ERR, FNAME, "failed to copy ifname");
+			debug_printf(LOG_ERR, FNAME, "failed to copy ifname");
 			goto bad;
 		}
 
@@ -183,7 +183,7 @@ configure_interface(iflist)
 			switch(cfl->type) {
 			case DECL_REQUEST:
 				if (dhcp6_mode != DHCP6_MODE_CLIENT) {
-					dprintf(LOG_INFO, FNAME, "%s:%d "
+					debug_printf(LOG_INFO, FNAME, "%s:%d "
 						"client-only configuration",
 						configfilename,
 						cfl->line);
@@ -208,7 +208,7 @@ configure_interface(iflist)
 				break;
 			case DECL_INFO_ONLY:
 				if (dhcp6_mode != DHCP6_MODE_CLIENT) {
-					dprintf(LOG_INFO, FNAME, "%s:%d "
+					debug_printf(LOG_INFO, FNAME, "%s:%d "
 						"client-only configuration",
 						configfilename, cfl->line);
 					goto bad;
@@ -217,7 +217,7 @@ configure_interface(iflist)
 				break;
 			case DECL_PREFERENCE:
 				if (dhcp6_mode != DHCP6_MODE_SERVER) {
-					dprintf(LOG_INFO, FNAME, "%s:%d "
+					debug_printf(LOG_INFO, FNAME, "%s:%d "
 						"server-only configuration",
 						configfilename, cfl->line);
 					goto bad;
@@ -225,7 +225,7 @@ configure_interface(iflist)
 				ifc->server_pref = (int)cfl->num;
 				if (ifc->server_pref < 0 ||
 				    ifc->server_pref > 255) {
-					dprintf(LOG_INFO, FNAME, "%s:%d "
+					debug_printf(LOG_INFO, FNAME, "%s:%d "
 						"bad value: %d",
 						configfilename, cfl->line,
 						ifc->server_pref);
@@ -234,13 +234,13 @@ configure_interface(iflist)
 				break;
 			case DECL_SCRIPT:
 				if (dhcp6_mode != DHCP6_MODE_CLIENT) {
-					dprintf(LOG_INFO, FNAME, "%s:%d "
+					debug_printf(LOG_INFO, FNAME, "%s:%d "
 						"client-only configuration",
 						configfilename, cfl->line);
 					goto bad;
 				}
 				if (ifc->scriptpath) {
-					dprintf(LOG_INFO, FNAME,
+					debug_printf(LOG_INFO, FNAME,
 					    "%s:%d duplicated configuration",
 					    configfilename, cfl->line);
 					goto bad;
@@ -248,13 +248,13 @@ configure_interface(iflist)
 				cp = cfl->ptr;
 				ifc->scriptpath = strdup(cp + 1);
 				if (ifc->scriptpath == NULL) {
-					dprintf(LOG_NOTICE, FNAME,
+					debug_printf(LOG_NOTICE, FNAME,
 					    "failed to copy script path");
 					goto bad;
 				}
 				cp = ifc->scriptpath;
 				if (*cp != '/') {
-					dprintf(LOG_INFO, FNAME,
+					debug_printf(LOG_INFO, FNAME,
 					    "script must be an absolute path");
 					goto bad;
 				}
@@ -272,7 +272,7 @@ configure_interface(iflist)
 						if (strcmp(spec->name, pool->name) == 0)
 							break;
 					if (pool == NULL) {
-						dprintf(LOG_ERR, FNAME, "%s:%d "
+						debug_printf(LOG_ERR, FNAME, "%s:%d "
 							"pool '%s' not found",
 							configfilename, cfl->line,
 					   		spec->name);
@@ -281,7 +281,7 @@ configure_interface(iflist)
 					if (spec->vltime != DHCP6_DURATION_INFINITE &&
 						(spec->pltime == DHCP6_DURATION_INFINITE ||
 						spec->pltime > spec->vltime)) {
-						dprintf(LOG_ERR, FNAME, "%s:%d ",
+						debug_printf(LOG_ERR, FNAME, "%s:%d ",
 							configfilename, cfl->line,
 							"specified a larger preferred lifetime "
 							"than valid lifetime");
@@ -289,17 +289,17 @@ configure_interface(iflist)
 					}
 					ifc->pool = *spec;
 					if ((ifc->pool.name = strdup(spec->name)) == NULL) {
-						dprintf(LOG_ERR, FNAME,
+						debug_printf(LOG_ERR, FNAME,
 							"memory allocation failed");
 						goto bad;
 					}
-					dprintf(LOG_DEBUG, FNAME,
+					debug_printf(LOG_DEBUG, FNAME,
 						"pool '%s' is specified to the interface '%s'",
 						ifc->pool.name, ifc->ifname);
 				}
 				break;
 			default:
-				dprintf(LOG_ERR, FNAME, "%s:%d "
+				debug_printf(LOG_ERR, FNAME, "%s:%d "
 					"invalid interface configuration",
 					configfilename, cfl->line);
 				goto bad;
@@ -338,7 +338,7 @@ configure_ia(ialist, iatype)
 		confsize = sizeof(struct iana_conf);
 		break;
 	default:
-		dprintf(LOG_ERR, FNAME, "internal error");
+		debug_printf(LOG_ERR, FNAME, "internal error");
 		goto bad;
 	}
 
@@ -346,7 +346,7 @@ configure_ia(ialist, iatype)
 		struct cf_list *cfl;
 
 		if ((iac = malloc(confsize)) == NULL) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "memory allocation for IA %s failed",
 			    iap->name);
 			goto bad;
@@ -386,13 +386,13 @@ configure_ia(ialist, iatype)
 					if (add_prefix(&pdp->iapd_prefix_list,
 					    "IAPD", DHCP6_LISTVAL_PREFIX6,
 					    cfl->ptr)) {
-						dprintf(LOG_NOTICE, FNAME, "failed "
+						debug_printf(LOG_NOTICE, FNAME, "failed "
 							"to configure prefix");
 						goto bad;
 					}
 					break;
 				default:
-					dprintf(LOG_ERR, FNAME, "%s:%d "
+					debug_printf(LOG_ERR, FNAME, "%s:%d "
 					    "invalid configuration",
 					    configfilename, cfl->line);
 					goto bad;
@@ -404,20 +404,20 @@ configure_ia(ialist, iatype)
 					if (add_prefix(&nap->iana_address_list,
 					    "IANA", DHCP6_LISTVAL_STATEFULADDR6,
 					    cfl->ptr)) {
-						dprintf(LOG_NOTICE, FNAME, "failed "
+						debug_printf(LOG_NOTICE, FNAME, "failed "
 							"to configure address");
 						goto bad;
 					}
 					break;
 				default:
-					dprintf(LOG_ERR, FNAME, "%s:%d "
+					debug_printf(LOG_ERR, FNAME, "%s:%d "
 					    "invalid configuration",
 					    configfilename, cfl->line);
 					goto bad;
 				}
 				break;
 			default:
-				dprintf(LOG_ERR, FNAME, "%s:%d "
+				debug_printf(LOG_ERR, FNAME, "%s:%d "
 				    "invalid iatype %d",
 				    configfilename, cfl->line, iatype);
 				goto bad;
@@ -443,7 +443,7 @@ add_pd_pif(iapdc, cfl0)
 	for (pif = TAILQ_FIRST(&iapdc->iapd_pif_list); pif;
 	    pif = TAILQ_NEXT(pif, link)) {
 		if (strcmp(pif->ifname, cfl0->ptr) == 0) {
-			dprintf(LOG_NOTICE, FNAME, "%s:%d "
+			debug_printf(LOG_NOTICE, FNAME, "%s:%d "
 			    "duplicated prefix interface: %s",
 			    configfilename, cfl0->line, cfl0->ptr);
 			return (0); /* ignore it */
@@ -451,7 +451,7 @@ add_pd_pif(iapdc, cfl0)
 	}
 
 	if ((pif = malloc(sizeof(*pif))) == NULL) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "memory allocation for %s failed", cfl0->ptr);
 		goto bad;
 	}
@@ -459,20 +459,20 @@ add_pd_pif(iapdc, cfl0)
 
 	/* validate and copy ifname */
 	if (if_nametoindex(cfl0->ptr) == 0) {
-		dprintf(LOG_ERR, FNAME, "%s:%d invalid interface (%s): %s",
+		debug_printf(LOG_ERR, FNAME, "%s:%d invalid interface (%s): %s",
 		    configfilename, cfl0->line,
 		    cfl0->ptr, strerror(errno));
 		goto bad;
 	}
 	if ((pif->ifname = strdup(cfl0->ptr)) == NULL) {
-		dprintf(LOG_ERR, FNAME, "failed to copy ifname");
+		debug_printf(LOG_ERR, FNAME, "failed to copy ifname");
 		goto bad;
 	}
 
 	pif->ifid_len = IFID_LEN_DEFAULT;
 	pif->sla_len = SLA_LEN_DEFAULT;
 	if (get_default_ifid(pif)) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to get default IF ID for %s", pif->ifname);
 		goto bad;
 	}
@@ -485,14 +485,14 @@ add_pd_pif(iapdc, cfl0)
 		case IFPARAM_SLA_LEN:
 			pif->sla_len = (int)cfl->num;
 			if (pif->sla_len < 0 || pif->sla_len > 128) {
-				dprintf(LOG_ERR, FNAME, "%s:%d "
+				debug_printf(LOG_ERR, FNAME, "%s:%d "
 				    "invalid SLA length: %d",
 				    configfilename, cfl->line, pif->sla_len); 
 				goto bad;
 			}
 			break;
 		default:
-			dprintf(LOG_ERR, FNAME, "%s:%d internal error: "
+			debug_printf(LOG_ERR, FNAME, "%s:%d internal error: "
 			    "invalid configuration",
 			    configfilename, cfl->line);
 			goto bad;
@@ -520,7 +520,7 @@ configure_host(hostlist)
 		struct cf_list *cfl;
 
 		if ((hconf = malloc(sizeof(*hconf))) == NULL) {
-			dprintf(LOG_ERR, FNAME, "memory allocation failed "
+			debug_printf(LOG_ERR, FNAME, "memory allocation failed "
 				"for host %s", host->name);
 			goto bad;
 		}
@@ -531,7 +531,7 @@ configure_host(hostlist)
 		host_conflist0 = hconf;
 
 		if ((hconf->name = strdup(host->name)) == NULL) {
-			dprintf(LOG_ERR, FNAME, "failed to copy host name: %s",
+			debug_printf(LOG_ERR, FNAME, "failed to copy host name: %s",
 			    host->name);
 			goto bad;
 		}
@@ -540,7 +540,7 @@ configure_host(hostlist)
 			switch(cfl->type) {
 			case DECL_DUID:
 				if (hconf->duid.duid_id) {
-					dprintf(LOG_ERR, FNAME, "%s:%d "
+					debug_printf(LOG_ERR, FNAME, "%s:%d "
 					    "duplicated DUID for %s",
 					    configfilename,
 					    cfl->line, host->name);
@@ -548,14 +548,14 @@ configure_host(hostlist)
 				}
 				if ((configure_duid((char *)cfl->ptr,
 						    &hconf->duid)) != 0) {
-					dprintf(LOG_ERR, FNAME, "%s:%d "
+					debug_printf(LOG_ERR, FNAME, "%s:%d "
 					    "failed to configure "
 					    "DUID for %s",
 					    configfilename, cfl->line,
 					    host->name);
 					goto bad;
 				}
-				dprintf(LOG_DEBUG, FNAME,
+				debug_printf(LOG_DEBUG, FNAME,
 				    "configure DUID for %s: %s",
 				    host->name, duidstr(&hconf->duid));
 				break;
@@ -563,7 +563,7 @@ configure_host(hostlist)
 				if (add_prefix(&hconf->prefix_list,
 				    hconf->name, DHCP6_LISTVAL_PREFIX6,
 				    cfl->ptr)) {
-					dprintf(LOG_ERR, FNAME, "failed "
+					debug_printf(LOG_ERR, FNAME, "failed "
 					    "to configure prefix for %s",
 					    host->name);
 					goto bad;
@@ -573,7 +573,7 @@ configure_host(hostlist)
 				if (add_prefix(&hconf->addr_list,
 				    hconf->name, DHCP6_LISTVAL_STATEFULADDR6,
 				    cfl->ptr)) {
-					dprintf(LOG_ERR, FNAME, "failed "
+					debug_printf(LOG_ERR, FNAME, "failed "
 					    "to configure address for %s",
 					    host->name);
 					goto bad;
@@ -581,7 +581,7 @@ configure_host(hostlist)
 				break;
 			case DECL_DELAYEDKEY:
 				if (hconf->delayedkey != NULL) {
-					dprintf(LOG_WARNING, FNAME,
+					debug_printf(LOG_WARNING, FNAME,
 					    "%s:%d: duplicate key %s for %s"
 					    " (ignored)", configfilename,
 					    cfl->line, cfl->ptr, host->name);
@@ -590,12 +590,12 @@ configure_host(hostlist)
 				if ((hconf->delayedkey =
 				    find_keybyname(key_list0, cfl->ptr))
 				    == NULL) {
-					dprintf(LOG_ERR, FNAME, "failed to "
+					debug_printf(LOG_ERR, FNAME, "failed to "
 					    "find key information for %s",
 					    cfl->ptr);
 					goto bad;
 				}
-				dprintf(LOG_DEBUG, FNAME, "configure key for "
+				debug_printf(LOG_DEBUG, FNAME, "configure key for "
 				    "delayed auth with %s (keyid=%08x)",
 				    host->name, hconf->delayedkey->keyid);
 				break;
@@ -610,7 +610,7 @@ configure_host(hostlist)
 						if (strcmp(spec->name, pool->name) == 0)
 							break;
 					if (pool == NULL) {
-						dprintf(LOG_ERR, FNAME, "%s:%d "
+						debug_printf(LOG_ERR, FNAME, "%s:%d "
 							"pool '%s' not found",
 							configfilename, cfl->line,
 					   		spec->name);
@@ -619,7 +619,7 @@ configure_host(hostlist)
 					if (spec->vltime != DHCP6_DURATION_INFINITE &&
 						(spec->pltime == DHCP6_DURATION_INFINITE ||
 						spec->pltime > spec->vltime)) {
-						dprintf(LOG_ERR, FNAME, "%s:%d ",
+						debug_printf(LOG_ERR, FNAME, "%s:%d ",
 							configfilename, cfl->line,
 							"specified a larger preferred lifetime "
 							"than valid lifetime");
@@ -627,17 +627,17 @@ configure_host(hostlist)
 					}
 					hconf->pool = *spec;
 					if ((hconf->pool.name = strdup(spec->name)) == NULL) {
-						dprintf(LOG_ERR, FNAME,
+						debug_printf(LOG_ERR, FNAME,
 							"memory allocation failed");
 						goto bad;
 					}
-					dprintf(LOG_DEBUG, FNAME,
+					debug_printf(LOG_DEBUG, FNAME,
 						"pool '%s' is specified to the host '%s'",
 						hconf->pool.name, hconf->name);
 				}
 				break;
 			default:
-				dprintf(LOG_ERR, FNAME, "%s:%d "
+				debug_printf(LOG_ERR, FNAME, "%s:%d "
 				    "invalid host configuration for %s",
 				    configfilename, cfl->line,
 				    host->name);
@@ -669,7 +669,7 @@ configure_keys(keylist)
 		struct cf_list *cfl;
 
 		if ((kinfo = malloc(sizeof(*kinfo))) == NULL) {
-			dprintf(LOG_ERR, FNAME, "memory allocation failed "
+			debug_printf(LOG_ERR, FNAME, "memory allocation failed "
 				"for key %s", key->name);
 			goto bad;
 		}
@@ -678,7 +678,7 @@ configure_keys(keylist)
 		key_list0 = kinfo;
 
 		if ((kinfo->name = strdup(key->name)) == NULL) {
-			dprintf(LOG_ERR, FNAME, "failed to copy key name: %s",
+			debug_printf(LOG_ERR, FNAME, "failed to copy key name: %s",
 			    key->name);
 			goto bad;
 		}
@@ -689,7 +689,7 @@ configure_keys(keylist)
 			switch (cfl->type) {
 			case KEYPARAM_REALM:
 				if (kinfo->realm != NULL) {
-					dprintf(LOG_WARNING, FNAME,
+					debug_printf(LOG_WARNING, FNAME,
 					    "%s:%d duplicate realm for key %s "
 					    "(ignored)", configfilename,
 					    cfl->line, key->name);
@@ -697,7 +697,7 @@ configure_keys(keylist)
 				}
 				kinfo->realm = qstrdup(cfl->ptr);
 				if (kinfo->realm == NULL) {
-					dprintf(LOG_WARNING, FNAME,
+					debug_printf(LOG_WARNING, FNAME,
 					    "failed to allocate memory for "
 					    "realm");
 					goto bad;
@@ -706,7 +706,7 @@ configure_keys(keylist)
 				break;
 			case KEYPARAM_KEYID:
 				if (keyid != -1) {
-					dprintf(LOG_WARNING, FNAME,
+					debug_printf(LOG_WARNING, FNAME,
 					    "%s:%d duplicate realm for key %s "
 					    "(ignored)",
 					    configfilename, cfl->line);
@@ -714,7 +714,7 @@ configure_keys(keylist)
 				}
 				keyid = cfl->num;
 				if (keyid < 0 || keyid > 0xffffffff) {
-					dprintf(LOG_WARNING, FNAME,
+					debug_printf(LOG_WARNING, FNAME,
 					    "%s:%d key ID overflow",
 					     configfilename, cfl->line);
 					goto bad;
@@ -723,7 +723,7 @@ configure_keys(keylist)
 			case KEYPARAM_SECRET:
 				/* duplicate check */
 				if (kinfo->secret != NULL) {
-					dprintf(LOG_WARNING, FNAME,
+					debug_printf(LOG_WARNING, FNAME,
 					    "%s:%d duplicate secret "
 					    "for key %s (ignored)",
 					    configfilename, cfl->line,
@@ -733,7 +733,7 @@ configure_keys(keylist)
 
 				/* convert base64 string to binary secret */
 				if ((secretstr = qstrdup(cfl->ptr)) == NULL) {
-					dprintf(LOG_WARNING, FNAME,
+					debug_printf(LOG_WARNING, FNAME,
 					    "failed to make a copy of secret");
 					goto bad;
 				}
@@ -741,7 +741,7 @@ configure_keys(keylist)
 				secretlen = base64_decodestring(secretstr,
 				    secret, sizeof(secret));
 				if (secretlen < 0) {
-					dprintf(LOG_ERR, FNAME,
+					debug_printf(LOG_ERR, FNAME,
 					    "%s:%d failed to parse base64 key",
 					    configfilename, cfl->line);
 					free(secretstr);
@@ -752,7 +752,7 @@ configure_keys(keylist)
 				/* set the binary secret */
 				kinfo->secret = malloc(secretlen);
 				if (kinfo->secret == NULL) {
-					dprintf(LOG_WARNING, FNAME,
+					debug_printf(LOG_WARNING, FNAME,
 					    "failed to allocate memory "
 					    "for secret");
 					goto bad;
@@ -762,7 +762,7 @@ configure_keys(keylist)
 				break;
 			case KEYPARAM_EXPIRE:
 				if (expire != NULL) {
-					dprintf(LOG_WARNING, FNAME,
+					debug_printf(LOG_WARNING, FNAME,
 					    "%s:%d duplicate expire for key "
 					    "%s (ignored)", configfilename,
 					    cfl->line, key->name);
@@ -771,7 +771,7 @@ configure_keys(keylist)
 				expire = qstrdup(cfl->ptr);
 				break;
 			default:
-				dprintf(LOG_ERR, FNAME,
+				debug_printf(LOG_ERR, FNAME,
 				    "%s:%d invalid key parameter for %s",
 				    configfilename, cfl->line, key->name);
 				goto bad;
@@ -780,18 +780,18 @@ configure_keys(keylist)
 
 		/* check for mandatory parameters or use default */
 		if (kinfo->realm == NULL) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "realm not specified for key %s", key->name);
 			goto bad;
 		}
 		if (keyid == -1) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "key ID not specified for key %s", key->name);
 			goto bad;
 		}
 		kinfo->keyid = keyid;
 		if (kinfo->secret == NULL) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "secret not specified for key %s", key->name);
 			goto bad;
 		}
@@ -802,7 +802,7 @@ configure_keys(keylist)
 				struct tm *lt;
 
 				if (time(&now) == -1) {
-					dprintf(LOG_ERR, FNAME, "cannot get "
+					debug_printf(LOG_ERR, FNAME, "cannot get "
 					    "current time: %s",
 					    strerror(errno));
 					goto bad;
@@ -815,14 +815,14 @@ configure_keys(keylist)
 				    strptime(expire, "%m-%d %H:%M", lt)
 				    == NULL &&
 				    strptime(expire, "%H:%M", lt) == NULL) {
-					dprintf(LOG_ERR, FNAME, "invalid "
+					debug_printf(LOG_ERR, FNAME, "invalid "
 					    "expiration time: %s");
 					goto bad;
 				}
 
 				expire_time = mktime(lt);
 				if (expire_time < now) {
-					dprintf(LOG_ERR, FNAME, "past "
+					debug_printf(LOG_ERR, FNAME, "past "
 					    "expiration time specified: %s",
 					    expire);
 					goto bad;
@@ -867,7 +867,7 @@ configure_authinfo(authlist)
 		struct cf_list *cfl;
 
 		if ((ainfo = malloc(sizeof(*ainfo))) == NULL) {
-			dprintf(LOG_ERR, FNAME, "memory allocation failed "
+			debug_printf(LOG_ERR, FNAME, "memory allocation failed "
 				"for auth info %s", auth->name);
 			goto bad;
 		}
@@ -879,7 +879,7 @@ configure_authinfo(authlist)
 		ainfo->rdm = DHCP6_AUTHRDM_UNDEF;
 
 		if ((ainfo->name = strdup(auth->name)) == NULL) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "failed to copy auth info name: %s", auth->name);
 			goto bad;
 		}
@@ -888,7 +888,7 @@ configure_authinfo(authlist)
 			switch (cfl->type) {
 			case AUTHPARAM_PROTO:
 				if (ainfo->protocol != DHCP6_AUTHPROTO_UNDEF) {
-					dprintf(LOG_WARNING, FNAME,
+					debug_printf(LOG_WARNING, FNAME,
 					    "%s:%d duplicate protocol "
 					    "for auth info %s "
 					    "(ignored)",
@@ -900,7 +900,7 @@ configure_authinfo(authlist)
 				break;
 			case AUTHPARAM_ALG:
 				if (ainfo->algorithm != DHCP6_AUTHALG_UNDEF) {
-					dprintf(LOG_WARNING, FNAME,
+					debug_printf(LOG_WARNING, FNAME,
 					    "%s:%d duplicate algorithm "
 					    "for auth info %s "
 					    "(ignored)",
@@ -912,7 +912,7 @@ configure_authinfo(authlist)
 				break;
 			case AUTHPARAM_RDM:
 				if (ainfo->rdm != DHCP6_AUTHRDM_UNDEF) {
-					dprintf(LOG_WARNING, FNAME,
+					debug_printf(LOG_WARNING, FNAME,
 					    "%s:%d duplicate RDM "
 					    "for auth info %s "
 					    "(ignored)",
@@ -923,13 +923,13 @@ configure_authinfo(authlist)
 				ainfo->rdm = (int)cfl->num;
 				break;
 			case AUTHPARAM_KEY:
-				dprintf(LOG_WARNING, FNAME,
+				debug_printf(LOG_WARNING, FNAME,
 				    "%s:%d auth info specific keys "
 				    "are not supported",
 				    configfilename, cfl->line);
 				break;
 			default:
-				dprintf(LOG_ERR, FNAME,
+				debug_printf(LOG_ERR, FNAME,
 				    "%s:%d invalid auth info parameter for %s",
 				    configfilename, cfl->line, auth->name);
 				goto bad;
@@ -939,20 +939,20 @@ configure_authinfo(authlist)
 		/* check for mandatory parameters and consistency */
 		switch (ainfo->protocol) {
 		case DHCP6_AUTHPROTO_UNDEF:
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "auth protocol is not specified for %s",
 			    auth->name);
 			goto bad;
 		case DHCP6_AUTHPROTO_DELAYED:
 			if (dhcp6_mode != DHCP6_MODE_CLIENT) {
-				dprintf(LOG_ERR, FNAME,
+				debug_printf(LOG_ERR, FNAME,
 				    "client-only auth protocol is specified");
 				goto bad;
 			}
 			break;
 		case DHCP6_AUTHPROTO_RECONFIG:
 			if (dhcp6_mode != DHCP6_MODE_SERVER) {
-				dprintf(LOG_ERR, FNAME,
+				debug_printf(LOG_ERR, FNAME,
 				    "server-only auth protocol is specified");
 				goto bad;
 			}
@@ -1039,7 +1039,7 @@ configure_addr(cf_addr_list, list0, optname)
 
 	/* check against configuration restriction */
 	if (cf_addr_list != NULL && dhcp6_mode != DHCP6_MODE_SERVER) {
-		dprintf(LOG_INFO, FNAME, "%s:%d server-only configuration",
+		debug_printf(LOG_INFO, FNAME, "%s:%d server-only configuration",
 		    configfilename, cf_addr_list->line);
 		return -1;
 	}
@@ -1049,7 +1049,7 @@ configure_addr(cf_addr_list, list0, optname)
 		/* duplication check */
 		if (dhcp6_find_listval(list0, DHCP6_LISTVAL_ADDR6,
 		    cl->ptr, 0)) {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "%s:%d duplicated %s server: %s",
 			    configfilename, cl->line,
 			    optname,
@@ -1058,7 +1058,7 @@ configure_addr(cf_addr_list, list0, optname)
 		}
 		if (dhcp6_add_listval(list0, DHCP6_LISTVAL_ADDR6,
 		    cl->ptr, NULL) == NULL) {
-			dprintf(LOG_ERR, FNAME, "failed to add a %s server",
+			debug_printf(LOG_ERR, FNAME, "failed to add a %s server",
 			    optname);
 			return -1;
 		}
@@ -1077,7 +1077,7 @@ configure_domain(cf_name_list, list0, optname)
 
 	/* check against configuration restriction */
 	if (cf_name_list != NULL && dhcp6_mode != DHCP6_MODE_SERVER) {
-		dprintf(LOG_INFO, FNAME, "%s:%d server-only configuration",
+		debug_printf(LOG_INFO, FNAME, "%s:%d server-only configuration",
 		    configfilename, cf_name_list->line);
 		return -1;
 	}
@@ -1089,7 +1089,7 @@ configure_domain(cf_name_list, list0, optname)
 
 		name = strdup(cl->ptr + 1);
 		if (name == NULL) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "failed to copy a %s domain name",
 			    optname);
 			return -1;
@@ -1103,7 +1103,7 @@ configure_domain(cf_name_list, list0, optname)
 		/* duplication check */
 		if (dhcp6_find_listval(list0, DHCP6_LISTVAL_VBUF,
 		    &name_vbuf, 0)) {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "%s:%d duplicated %s name: %s",
 			    configfilename, cl->line, optname,
 			    name_vbuf.dv_buf);
@@ -1114,7 +1114,7 @@ configure_domain(cf_name_list, list0, optname)
 		/* add the name */
 		if (dhcp6_add_listval(list0, DHCP6_LISTVAL_VBUF,
 		    &name_vbuf, NULL) == NULL) {
-			dprintf(LOG_ERR, FNAME, "failed to add a %s name",
+			debug_printf(LOG_ERR, FNAME, "failed to add a %s name",
 			    optname);
 			dhcp6_vbuf_free(&name_vbuf);
 			return -1;
@@ -1145,12 +1145,12 @@ configure_duid(str, duid)
 		goto bad;
 	duidlen += (slen / 3);
 	if (duidlen > 128) {
-		dprintf(LOG_ERR, FNAME, "too long DUID (%d)", duidlen);
+		debug_printf(LOG_ERR, FNAME, "too long DUID (%d)", duidlen);
 		return (-1);
 	}
 
 	if ((idbuf = malloc(duidlen)) == NULL) {
-		dprintf(LOG_ERR, FNAME, "memory allocation failed");
+		debug_printf(LOG_ERR, FNAME, "memory allocation failed");
 		return (-1);
 	}
 
@@ -1175,7 +1175,7 @@ configure_duid(str, duid)
   bad:
 	if (idbuf)
 		free(idbuf);
-	dprintf(LOG_ERR, FNAME, "assumption failure (bad string)");
+	debug_printf(LOG_ERR, FNAME, "assumption failure (bad string)");
 	return (-1);
 }
 
@@ -1193,12 +1193,12 @@ get_default_ifid(pif)
 #endif
 
 	if (pif->ifid_len < 64) {
-		dprintf(LOG_NOTICE, FNAME, "ID length too short");
+		debug_printf(LOG_NOTICE, FNAME, "ID length too short");
 		return (-1);
 	}
 
 	if (getifaddrs(&ifap) < 0) {
-		dprintf(LOG_ERR, FNAME, "getifaddrs failed: %s",
+		debug_printf(LOG_ERR, FNAME, "getifaddrs failed: %s",
 		    strerror(errno));
 		return (-1);
 	}
@@ -1218,7 +1218,7 @@ get_default_ifid(pif)
 
 		sdl = (struct sockaddr_dl *)ifa->ifa_addr;
 		if (sdl->sdl_alen < 6) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "link layer address is too short (%s)",
 			    pif->ifname);
 			goto fail;
@@ -1233,7 +1233,7 @@ get_default_ifid(pif)
 
 		sll = (struct sockaddr_ll *)ifa->ifa_addr;
 		if (sll->sll_halen < 6) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "link layer address is too short (%s)",
 			    pif->ifname);
 			goto fail;
@@ -1256,7 +1256,7 @@ get_default_ifid(pif)
 	}
 
 	if (ifa == NULL) {
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 		    "cannot find interface information for %s", pif->ifname);
 		goto fail;
 	}
@@ -1352,7 +1352,7 @@ configure_commit()
 
 	/* clear unused IA configuration */
 	if (!TAILQ_EMPTY(&ia_conflist0)) {
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 		    "some IA configuration defined but not used");
 	}
 	clear_iaconf(&ia_conflist0);
@@ -1475,7 +1475,7 @@ clear_iaconf(ialist)
 		switch(iac->type) {
 		case IATYPE_PD:
 			if (!TAILQ_EMPTY(&iac->iadata)) {
-				dprintf(LOG_ERR, FNAME, "assumption failure");
+				debug_printf(LOG_ERR, FNAME, "assumption failure");
 				exit(1);
 			}
 			clear_pd_pif((struct iapd_conf *)iac);
@@ -1557,7 +1557,7 @@ add_options(opcode, ifc, cfl0)
 				ifc->allow_flags |= DHCIFF_RAPID_COMMIT;
 				break;
 			default:
-				dprintf(LOG_ERR, FNAME,
+				debug_printf(LOG_ERR, FNAME,
 				    "invalid operation (%d) "
 				    "for option type (%d)",
 				    opcode, cfl->type);
@@ -1566,7 +1566,7 @@ add_options(opcode, ifc, cfl0)
 			break;
 		case DHCPOPT_AUTHINFO:
 			if (opcode != DHCPOPTCODE_SEND) {
-				dprintf(LOG_ERR, FNAME,
+				debug_printf(LOG_ERR, FNAME,
 				    "invalid operation (%d) "
 				    "for option type (%d)",
 				    opcode, cfl->type);
@@ -1574,14 +1574,14 @@ add_options(opcode, ifc, cfl0)
 			}
 			ainfo = find_authinfo(auth_list0, cfl->ptr);
 			if (ainfo == NULL) {
-				dprintf(LOG_ERR, FNAME, "%s:%d "
+				debug_printf(LOG_ERR, FNAME, "%s:%d "
 				    "auth info (%s) is not defined",
 				    configfilename, cfl->line,
 				    (char *)cfl->ptr);
 				return (-1);
 			}
 			if (ifc->authinfo != NULL) {
-				dprintf(LOG_ERR, FNAME,
+				debug_printf(LOG_ERR, FNAME,
 				    "%s:%d authinfo is doubly specified on %s",
 				    configfilename, cfl->line, ifc->ifname);
 				return (-1);
@@ -1594,7 +1594,7 @@ add_options(opcode, ifc, cfl0)
 				iac = find_iaconf(&ia_conflist0, IATYPE_PD,
 				    (u_int32_t)cfl->num);
 				if (iac == NULL) {
-					dprintf(LOG_ERR, FNAME, "%s:%d "
+					debug_printf(LOG_ERR, FNAME, "%s:%d "
 					    "IA_PD (%lu) is not defined",
 					    configfilename, cfl->line,
 					    (u_long)cfl->num);
@@ -1607,7 +1607,7 @@ add_options(opcode, ifc, cfl0)
 
 				break;
 			default:
-				dprintf(LOG_ERR, FNAME,
+				debug_printf(LOG_ERR, FNAME,
 				    "invalid operation (%d) "
 				    "for option type (%d)", opcode, cfl->type);
 				break;
@@ -1619,7 +1619,7 @@ add_options(opcode, ifc, cfl0)
 				iac = find_iaconf(&ia_conflist0, IATYPE_NA,
 				    (u_int32_t)cfl->num);
 				if (iac == NULL) {
-					dprintf(LOG_ERR, FNAME, "%s:%d "
+					debug_printf(LOG_ERR, FNAME, "%s:%d "
 					    "IA_NA (%lu) is not defined",
 					    configfilename, cfl->line,
 					    (u_long)cfl->num);
@@ -1632,7 +1632,7 @@ add_options(opcode, ifc, cfl0)
 
 				break;
 			default:
-				dprintf(LOG_ERR, FNAME,
+				debug_printf(LOG_ERR, FNAME,
 				    "invalid operation (%d) "
 				    "for option type (%d)", opcode, cfl->type);
 				break;
@@ -1693,7 +1693,7 @@ add_options(opcode, ifc, cfl0)
 				if (dhcp6_find_listval(&ifc->reqopt_list,
 					DHCP6_LISTVAL_NUM, &opttype, 0)
 				    != NULL) {
-					dprintf(LOG_INFO, FNAME,
+					debug_printf(LOG_INFO, FNAME,
 					    "duplicated requested option: %s",
 					    dhcp6optstr(opttype));
 					goto next; /* ignore it */
@@ -1701,20 +1701,20 @@ add_options(opcode, ifc, cfl0)
 				if (dhcp6_add_listval(&ifc->reqopt_list,
 				    DHCP6_LISTVAL_NUM, &opttype, NULL)
 				    == NULL) {
-					dprintf(LOG_ERR, FNAME, "failed to "
+					debug_printf(LOG_ERR, FNAME, "failed to "
 					    "configure an option");
 					return (-1);
 				}
 				break;
 			default:
-				dprintf(LOG_ERR, FNAME,
+				debug_printf(LOG_ERR, FNAME,
 				    "invalid operation (%d) "
 				    "for option type (%d)", opcode, cfl->type);
 				break;
 			}
 			break;
 		default:
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "%s:%d unsupported option type: %d",
 			    configfilename, cfl->line, cfl->type);
 			return (-1);
@@ -1740,13 +1740,13 @@ add_prefix(head, name, type, prefix0)
 
 	/* additional validation of parameters */
 	if (oprefix.plen < 0 || oprefix.plen > 128) {
-		dprintf(LOG_ERR, FNAME, "invalid prefix: %d", oprefix.plen);
+		debug_printf(LOG_ERR, FNAME, "invalid prefix: %d", oprefix.plen);
 		return (-1);
 	}
 	/* clear trailing bits */
 	prefix6_mask(&oprefix.addr, oprefix.plen);
 	if (!IN6_ARE_ADDR_EQUAL(&prefix0->addr, &oprefix.addr)) {
-		dprintf(LOG_WARNING, FNAME, "prefix %s/%d for %s "
+		debug_printf(LOG_WARNING, FNAME, "prefix %s/%d for %s "
 		    "has a trailing garbage.  It should be %s/%d",
 		    in6addr2str(&prefix0->addr, 0), prefix0->plen,
 		    name, in6addr2str(&oprefix.addr, 0), oprefix.plen);
@@ -1757,7 +1757,7 @@ add_prefix(head, name, type, prefix0)
 	if (IN6_IS_ADDR_MULTICAST(&oprefix.addr) ||
 	    IN6_IS_ADDR_LINKLOCAL(&oprefix.addr) ||
 	    IN6_IS_ADDR_SITELOCAL(&oprefix.addr)) {
-		dprintf(LOG_ERR, FNAME, "invalid prefix address: %s",
+		debug_printf(LOG_ERR, FNAME, "invalid prefix address: %s",
 		    in6addr2str(&oprefix.addr, 0));
 		return (-1);
 	}
@@ -1765,11 +1765,11 @@ add_prefix(head, name, type, prefix0)
 	/* prefix duplication check */
 	if (dhcp6_find_listval(head, type, &oprefix, 0)) {
 		if (type == DHCP6_LISTVAL_PREFIX6) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "duplicated prefix: %s/%d for %s",
 			    in6addr2str(&oprefix.addr, 0), oprefix.plen, name);
 		} else {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "duplicated address: %s for %s",
 			    in6addr2str(&oprefix.addr, 0), name);
 		}
@@ -1781,12 +1781,12 @@ add_prefix(head, name, type, prefix0)
 	    (oprefix.pltime == DHCP6_DURATION_INFINITE ||
 	    oprefix.pltime > oprefix.vltime)) {
 		if (type == DHCP6_LISTVAL_PREFIX6) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "%s/%d has larger preferred lifetime "
 			    "than valid lifetime",
 			    in6addr2str(&oprefix.addr, 0), oprefix.plen);
 		} else {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "%s has larger preferred lifetime "
 			    "than valid lifetime",
 			    in6addr2str(&oprefix.addr, 0));
@@ -1915,10 +1915,10 @@ configure_pool(poollist)
 {
 	struct cf_namelist *plp;
 
-	dprintf(LOG_DEBUG, FNAME, "called");
+	debug_printf(LOG_DEBUG, FNAME, "called");
 
 	if (poollist && dhcp6_mode != DHCP6_MODE_SERVER) {
-		dprintf(LOG_ERR, FNAME, "%s:%d "
+		debug_printf(LOG_ERR, FNAME, "%s:%d "
 			"pool statement is server-only",
 			configfilename, poollist->line);
 		goto bad;
@@ -1935,7 +1935,7 @@ configure_pool(poollist)
 				range = cfl->ptr;
 				break;
 			default:
-				dprintf(LOG_ERR, FNAME, "%s:%d "
+				debug_printf(LOG_ERR, FNAME, "%s:%d "
 					"invalid pool configuration",
 					configfilename, cfl->line);
 				goto bad;
@@ -1943,14 +1943,14 @@ configure_pool(poollist)
 		}
 
 		if (!range) {
-			dprintf(LOG_ERR, FNAME, "%s:%d "
+			debug_printf(LOG_ERR, FNAME, "%s:%d "
 				"pool '%s' has no range declaration",
 				configfilename, plp->line,
 				plp->name);
 			goto bad;
 		}
 		if ((pool = create_pool(plp->name, range)) == NULL) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 				"faled to craete pool '%s'", plp->name);
 			goto bad;
 		}
@@ -1971,7 +1971,7 @@ clear_poolconf(plist)
 {
 	struct pool_conf *pool, *pool_next;
 
-	dprintf(LOG_DEBUG, FNAME, "called");
+	debug_printf(LOG_DEBUG, FNAME, "called");
 
 	for (pool = plist; pool; pool = pool_next) {
 		pool_next = pool->next;
@@ -1999,7 +1999,7 @@ create_dynamic_hostconf(duid, pool)
 	if (dynamic_hostconf_count >= DHCP6_DYNAMIC_HOSTCONF_MAX) {
 		struct dynamic_hostconf_listhead *head = &dynamic_hostconf_head;
 
-		dprintf(LOG_DEBUG, FNAME, "reached to the max count (count=%lu)",
+		debug_printf(LOG_DEBUG, FNAME, "reached to the max count (count=%lu)",
 			dynamic_hostconf_count);
 
 		/* Find the last entry that doesn't need authentication */
@@ -2013,14 +2013,14 @@ create_dynamic_hostconf(duid, pool)
 		clear_hostconf(dynconf->host);
 	} else {
 		if ((dynconf = malloc(sizeof(*dynconf))) == NULL) {
-			dprintf(LOG_ERR, FNAME, "memory allocation failed");
+			debug_printf(LOG_ERR, FNAME, "memory allocation failed");
 			return (NULL);
 		}
 	}
 	memset(dynconf, 0, sizeof(*dynconf));
 
 	if ((host = malloc(sizeof(*host))) == NULL) {
-		dprintf(LOG_ERR, FNAME, "memory allocation failed");
+		debug_printf(LOG_ERR, FNAME, "memory allocation failed");
 		goto bad;
 	}
 	memset(host, 0, sizeof(*host));
@@ -2030,7 +2030,7 @@ create_dynamic_hostconf(duid, pool)
 	if ((strid = duidstr(duid)) == NULL)
 		strid = "???";
 	if ((host->name = strdup(strid)) == NULL) {
-		dprintf(LOG_ERR, FNAME, "memory allocation failed");
+		debug_printf(LOG_ERR, FNAME, "memory allocation failed");
 		goto bad;
 	}
 	if (duidcpy(&host->duid, duid) != 0) {
@@ -2038,7 +2038,7 @@ create_dynamic_hostconf(duid, pool)
 	}
 	if (pool->name) {
 		if ((host->pool.name = strdup(pool->name)) == NULL) {
-			dprintf(LOG_ERR, FNAME, "memory allocation failed");
+			debug_printf(LOG_ERR, FNAME, "memory allocation failed");
 			goto bad;
 		}
 	}
@@ -2049,7 +2049,7 @@ create_dynamic_hostconf(duid, pool)
 	TAILQ_INSERT_HEAD(&dynamic_hostconf_head, dynconf, link);
 	dynamic_hostconf_count++; 
 
-	dprintf(LOG_DEBUG, FNAME, "created host_conf (name=%s)", host->name);
+	debug_printf(LOG_DEBUG, FNAME, "created host_conf (name=%s)", host->name);
 
 	return (host);
 
@@ -2097,22 +2097,22 @@ create_pool(name, range)
 		return (NULL);
 	}
 
-	dprintf(LOG_DEBUG, FNAME, "name=%s, range=%s->%s", name,
+	debug_printf(LOG_DEBUG, FNAME, "name=%s, range=%s->%s", name,
 		in6addr2str(&range->min, 0), in6addr2str(&range->max, 0));
 
 	if (in6_addr_cmp(&range->min, &range->max) > 0) {
-		dprintf(LOG_ERR, FNAME, "invalid address range %s->%s",
+		debug_printf(LOG_ERR, FNAME, "invalid address range %s->%s",
 			in6addr2str(&range->min, 0),
 			in6addr2str(&range->max, 0));
 		return (NULL);
 	}
 
 	if ((pool = malloc(sizeof(struct pool_conf))) == NULL) {
-		dprintf(LOG_ERR, FNAME, "memory allocation failed");
+		debug_printf(LOG_ERR, FNAME, "memory allocation failed");
 		return (NULL);
 	}
 	if ((pool->name = strdup(name)) == NULL) {
-		dprintf(LOG_ERR, FNAME, "memory allocation failed");
+		debug_printf(LOG_ERR, FNAME, "memory allocation failed");
 		free(pool);
 		return (NULL);
 	}
@@ -2131,16 +2131,16 @@ find_pool(name)
 	if (!name)
 		return (NULL);
 
-	dprintf(LOG_DEBUG, FNAME, "name=%s", name);
+	debug_printf(LOG_DEBUG, FNAME, "name=%s", name);
 
 	for (pool = pool_conflist; pool; pool = pool->next) {
 		if (strcmp(name, pool->name) == 0) {
-			dprintf(LOG_DEBUG, FNAME, "found (name=%s)", name);
+			debug_printf(LOG_DEBUG, FNAME, "found (name=%s)", name);
 			return (pool);
 		}
 	}
 
-	dprintf(LOG_DEBUG, FNAME, "not found (name=%s)", name);
+	debug_printf(LOG_DEBUG, FNAME, "not found (name=%s)", name);
 
 	return (NULL);
 }
@@ -2154,7 +2154,7 @@ get_free_address_from_pool(pool, addr)
 	if (!pool || !addr)
 		return (0);
 
-	dprintf(LOG_DEBUG, FNAME, "called (pool=%s)", pool->name);
+	debug_printf(LOG_DEBUG, FNAME, "called (pool=%s)", pool->name);
 
 	for (cur = pool->min; in6_addr_cmp(&cur, &pool->max) <= 0;
 	    in6_addr_inc(&cur)) {
@@ -2162,17 +2162,17 @@ get_free_address_from_pool(pool, addr)
 		    !IN6_IS_ADDR_MULTICAST(&cur) &&
 		    !IN6_IS_ADDR_LINKLOCAL(&cur) &&
 		    !IN6_IS_ADDR_SITELOCAL(&cur)) {
-			dprintf(LOG_DEBUG, FNAME, "found %s",
+			debug_printf(LOG_DEBUG, FNAME, "found %s",
 				in6addr2str(&cur, 0));
 			*addr= cur;
 			return 1;
 		}
 
-		dprintf(LOG_DEBUG, FNAME, "next address %s",
+		debug_printf(LOG_DEBUG, FNAME, "next address %s",
 			in6addr2str(&cur, 0));
 	}
 
-	dprintf(LOG_NOTICE, FNAME, "no available address");
+	debug_printf(LOG_NOTICE, FNAME, "no available address");
 	return 0;
 }
 
@@ -2184,7 +2184,7 @@ is_available_in_pool(pool, addr)
 	if (!pool || !addr)
 		return (0);
 
-	dprintf(LOG_DEBUG, FNAME, "pool=%s, addr=%s",
+	debug_printf(LOG_DEBUG, FNAME, "pool=%s, addr=%s",
 		 pool->name, in6addr2str(addr, 0));
 
 	if (in6_addr_cmp(addr, &pool->min) >= 0 &&
@@ -2196,7 +2196,7 @@ is_available_in_pool(pool, addr)
 		return (1);
 	}
 
-	dprintf(LOG_DEBUG, FNAME, "unavailable address (pool=%s, addr=%s)",
+	debug_printf(LOG_DEBUG, FNAME, "unavailable address (pool=%s, addr=%s)",
 		 pool->name, in6addr2str(addr, 0));
 
 	return (0);
diff --git a/configure b/configure
index 6f50634..4722b7b 100755
--- a/configure
+++ b/configure
@@ -6013,7 +6013,55 @@ fi
 done
 
 
-          ac_config_files="$ac_config_files Makefile"
+{ echo "$as_me:$LINENO: checking whether libc defines struct in6_pktinfo" >&5
+echo $ECHO_N "checking whether libc defines struct in6_pktinfo... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <netinet/in.h>
+int
+main ()
+{
+struct in6_pktinfo p6;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+  CFLAGS="$CFLAGS -DHAVE_IN6_PKTINFO"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+ac_config_files="$ac_config_files Makefile"
+
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
diff --git a/configure.in b/configure.in
index 59dd84e..6da9af5 100644
--- a/configure.in
+++ b/configure.in
@@ -236,4 +236,11 @@ AC_SUBST(group)
 
 AC_CHECK_HEADERS(stdarg.h)
 
+AC_MSG_CHECKING(whether libc defines struct in6_pktinfo)
+AC_TRY_COMPILE([#include <netinet/in.h>],
+ [struct in6_pktinfo p6;],
+ [AC_MSG_RESULT(yes)
+  CFLAGS="$CFLAGS -DHAVE_IN6_PKTINFO"],
+ [AC_MSG_RESULT(no)])
+
 AC_OUTPUT(Makefile)
diff --git a/dhcp6.h b/dhcp6.h
index 6afb517..9f3a62d 100644
--- a/dhcp6.h
+++ b/dhcp6.h
@@ -108,6 +108,13 @@ typedef uint64_t u_int64_t;
 #define DHCP6_IRT_DEFAULT 86400	/* 1 day */
 #define DHCP6_IRT_MINIMUM 600
 
+#ifndef HAVE_IN6_PKTINFO
+struct in6_pktinfo {
+	struct in6_addr ipi6_addr;  /* src/dst IPv6 address */
+	unsigned int ipi6_ifindex;  /* send/recv interface index */
+};
+#endif
+
 /* DUID: DHCP unique Identifier */
 struct duid {
 	size_t duid_len;	/* length */
diff --git a/dhcp6_ctl.c b/dhcp6_ctl.c
index ab1f18d..a12f82a 100644
--- a/dhcp6_ctl.c
+++ b/dhcp6_ctl.c
@@ -93,32 +93,32 @@ dhcp6_ctl_init(addr, port, max, sockp)
 	hints.ai_protocol = IPPROTO_TCP;
 	error = getaddrinfo(addr, port, &hints, &res);
 	if (error) {
-		dprintf(LOG_ERR, FNAME, "getaddrinfo: %s",
+		debug_printf(LOG_ERR, FNAME, "getaddrinfo: %s",
 		    gai_strerror(error));
 		return (-1);
 	}
 	ctlsock = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
 	if (ctlsock < 0) {
-		dprintf(LOG_ERR, FNAME, "socket(control sock): %s",
+		debug_printf(LOG_ERR, FNAME, "socket(control sock): %s",
 		    strerror(errno));
 		goto fail;
 	}
 	on = 1;
 	if (setsockopt(ctlsock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on))
 	    < 0) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "setsockopt(control sock, SO_REUSEADDR: %s",
 		    strerror(errno));
 		goto fail;
 	}
 	if (bind(ctlsock, res->ai_addr, res->ai_addrlen) < 0) {
-		dprintf(LOG_ERR, FNAME, "bind(control sock): %s",
+		debug_printf(LOG_ERR, FNAME, "bind(control sock): %s",
 		    strerror(errno));
 		goto fail;
 	}
 	freeaddrinfo(res);
 	if (listen(ctlsock, 1)) {
-		dprintf(LOG_ERR, FNAME, "listen(control sock): %s",
+		debug_printf(LOG_ERR, FNAME, "listen(control sock): %s",
 		    strerror(errno));
 		goto fail;
 	}
@@ -126,7 +126,7 @@ dhcp6_ctl_init(addr, port, max, sockp)
 	TAILQ_INIT(&commandqueue_head);
 
 	if (max <= 0) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "invalid maximum number of commands (%d)", max_commands);
 		goto fail;
 	}
@@ -159,27 +159,27 @@ dhcp6_ctl_authinit(keyfile, keyinfop, digestlenp)
 	*digestlenp = MD5_DIGESTLENGTH;
 
 	if ((fp = fopen(keyfile, "r")) == NULL) {
-		dprintf(LOG_ERR, FNAME, "failed to open %s: %s", keyfile,
+		debug_printf(LOG_ERR, FNAME, "failed to open %s: %s", keyfile,
 		    strerror(errno));
 		return (-1);
 	}
 	if (fgets(line, sizeof(line), fp) == NULL && ferror(fp)) {
-		dprintf(LOG_ERR, FNAME, "failed to read key file: %s",
+		debug_printf(LOG_ERR, FNAME, "failed to read key file: %s",
 		    strerror(errno));
 		goto fail;
 	}
 	if ((secretlen = base64_decodestring(line, secret, sizeof(secret)))
 	    < 0) {
-		dprintf(LOG_ERR, FNAME, "failed to decode base64 string");
+		debug_printf(LOG_ERR, FNAME, "failed to decode base64 string");
 		goto fail;
 	}
 	if ((ctlkey = malloc(sizeof(*ctlkey))) == NULL) {
-		dprintf(LOG_WARNING, FNAME, "failed to allocate control key");
+		debug_printf(LOG_WARNING, FNAME, "failed to allocate control key");
 		goto fail;
 	}
 	memset(ctlkey, 0, sizeof(*ctlkey));
 	if ((ctlkey->secret = malloc(secretlen)) == NULL) {
-		dprintf(LOG_WARNING, FNAME, "failed to allocate secret key");
+		debug_printf(LOG_WARNING, FNAME, "failed to allocate secret key");
 		goto fail;
 	}
 	ctlkey->secretlen = (size_t)secretlen;
@@ -214,24 +214,24 @@ dhcp6_ctl_acceptcommand(sl, callback)
 
 	fromlen = sizeof(from_ss);
 	if ((s = accept(sl, from, &fromlen)) < 0) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "failed to accept control connection: %s",
 		    strerror(errno));
 		return (-1);
 	}
 
-	dprintf(LOG_DEBUG, FNAME, "accept control connection from %s",
+	debug_printf(LOG_DEBUG, FNAME, "accept control connection from %s",
 	    addr2str(from));
 
 	if (max_commands <= 0) {
-		dprintf(LOG_ERR, FNAME, "command queue is not initialized");
+		debug_printf(LOG_ERR, FNAME, "command queue is not initialized");
 		close(s);
 		return (-1);
 	}
 
 	new = malloc(sizeof(*new));
 	if (new == NULL) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "failed to allocate new command context");
 		goto fail;
 	}
@@ -240,7 +240,7 @@ dhcp6_ctl_acceptcommand(sl, callback)
 	if (commands == max_commands) {
 		ctx = TAILQ_FIRST(&commandqueue_head);
 
-		dprintf(LOG_INFO, FNAME, "command queue is full. "
+		debug_printf(LOG_INFO, FNAME, "command queue is full. "
 		    "drop the oldest one (fd=%d)", ctx->s);
 
 		TAILQ_REMOVE(&commandqueue_head, ctx, link);
@@ -271,7 +271,7 @@ dhcp6_ctl_closecommand(ctx)
 	free(ctx);
 
 	if (commands == 0) {
-		dprintf(LOG_ERR, FNAME, "assumption error: "
+		debug_printf(LOG_ERR, FNAME, "assumption error: "
 		    "command queue is empty?");
 		exit(1);	/* XXX */
 	}
@@ -299,12 +299,12 @@ dhcp6_ctl_readcommand(read_fds)
 
 			cc = read(ctx->s, cp, resid);
 			if (cc < 0) {
-				dprintf(LOG_WARNING, FNAME, "read failed: %s",
+				debug_printf(LOG_WARNING, FNAME, "read failed: %s",
 				    strerror(errno));
 				goto closecommand;
 			}
 			if (cc == 0) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "control channel was reset by peer");
 				goto closecommand;
 			}
@@ -330,7 +330,7 @@ dhcp6_ctl_readcommand(read_fds)
 					break;
 				}
 			} else if (ctx->input_len > sizeof(ctx->inputbuf)) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "too large command (%d bytes)",
 				    ctx->input_len);
 				goto closecommand;
diff --git a/dhcp6c.c b/dhcp6c.c
index b5f5ed7..c959b7c 100644
--- a/dhcp6c.c
+++ b/dhcp6c.c
@@ -218,7 +218,7 @@ main(argc, argv)
 	client6_init();
 	while (argc-- > 0) { 
 		if ((ifp = ifinit(argv[0])) == NULL) {
-			dprintf(LOG_ERR, FNAME, "failed to initialize %s",
+			debug_printf(LOG_ERR, FNAME, "failed to initialize %s",
 			    argv[0]);
 			exit(1);
 		}
@@ -226,7 +226,7 @@ main(argc, argv)
 	}
 
 	if (infreq_mode == 0 && (cfparse(conffile)) != 0) {
-		dprintf(LOG_ERR, FNAME, "failed to parse configuration file");
+		debug_printf(LOG_ERR, FNAME, "failed to parse configuration file");
 		exit(1);
 	}
 
@@ -266,12 +266,12 @@ client6_init()
 
 	/* get our DUID */
 	if (get_duid(DUID_FILE, &client_duid)) {
-		dprintf(LOG_ERR, FNAME, "failed to get a DUID");
+		debug_printf(LOG_ERR, FNAME, "failed to get a DUID");
 		exit(1);
 	}
 
 	if (dhcp6_ctl_authinit(ctlkeyfile, &ctlkey, &ctldigestlen) != 0) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed initialize control message authentication");
 		/* run the server anyway */
 	}
@@ -283,25 +283,25 @@ client6_init()
 	hints.ai_flags = AI_PASSIVE;
 	error = getaddrinfo(NULL, DH6PORT_DOWNSTREAM, &hints, &res);
 	if (error) {
-		dprintf(LOG_ERR, FNAME, "getaddrinfo: %s",
+		debug_printf(LOG_ERR, FNAME, "getaddrinfo: %s",
 		    gai_strerror(error));
 		exit(1);
 	}
 	sock = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
 	if (sock < 0) {
-		dprintf(LOG_ERR, FNAME, "socket");
+		debug_printf(LOG_ERR, FNAME, "socket");
 		exit(1);
 	}
 	if (setsockopt(sock, SOL_SOCKET, SO_REUSEPORT,
 		       &on, sizeof(on)) < 0) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "setsockopt(SO_REUSEPORT): %s", strerror(errno));
 		exit(1);
 	}
 #ifdef IPV6_RECVPKTINFO
 	if (setsockopt(sock, IPPROTO_IPV6, IPV6_RECVPKTINFO, &on,
 		       sizeof(on)) < 0) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 			"setsockopt(IPV6_RECVPKTINFO): %s",
 			strerror(errno));
 		exit(1);
@@ -309,7 +309,7 @@ client6_init()
 #else
 	if (setsockopt(sock, IPPROTO_IPV6, IPV6_PKTINFO, &on,
 		       sizeof(on)) < 0) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "setsockopt(IPV6_PKTINFO): %s",
 		    strerror(errno));
 		exit(1);
@@ -317,7 +317,7 @@ client6_init()
 #endif
 	if (setsockopt(sock, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &on,
 		       sizeof(on)) < 0) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "setsockopt(sock, IPV6_MULTICAST_LOOP): %s",
 		    strerror(errno));
 		exit(1);
@@ -325,7 +325,7 @@ client6_init()
 #ifdef IPV6_V6ONLY
 	if (setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY,
 	    &on, sizeof(on)) < 0) {
-		dprintf(LOG_ERR, FNAME, "setsockopt(IPV6_V6ONLY): %s",
+		debug_printf(LOG_ERR, FNAME, "setsockopt(IPV6_V6ONLY): %s",
 		    strerror(errno));
 		exit(1);
 	}
@@ -337,14 +337,14 @@ client6_init()
 	 * the outgoing port is also bound to the DH6PORT_DOWNSTREAM.
 	 */
 	if (bind(sock, res->ai_addr, res->ai_addrlen) < 0) {
-		dprintf(LOG_ERR, FNAME, "bind: %s", strerror(errno));
+		debug_printf(LOG_ERR, FNAME, "bind: %s", strerror(errno));
 		exit(1);
 	}
 	freeaddrinfo(res);
 
 	/* open a routing socket to watch the routing table */
 	if ((rtsock = socket(PF_ROUTE, SOCK_RAW, 0)) < 0) {
-		dprintf(LOG_ERR, FNAME, "open a routing socket: %s",
+		debug_printf(LOG_ERR, FNAME, "open a routing socket: %s",
 		    strerror(errno));
 		exit(1);
 	}
@@ -355,7 +355,7 @@ client6_init()
 	hints.ai_protocol = IPPROTO_UDP;
 	error = getaddrinfo(DH6ADDR_ALLAGENT, DH6PORT_UPSTREAM, &hints, &res);
 	if (error) {
-		dprintf(LOG_ERR, FNAME, "getaddrinfo: %s",
+		debug_printf(LOG_ERR, FNAME, "getaddrinfo: %s",
 		    gai_strerror(error));
 		exit(1);
 	}
@@ -365,21 +365,21 @@ client6_init()
 
 	/* set up control socket */
 	if (ctlkey == NULL)
-		dprintf(LOG_NOTICE, FNAME, "skip opening control port");
+		debug_printf(LOG_NOTICE, FNAME, "skip opening control port");
 	else if (dhcp6_ctl_init(ctladdr, ctlport,
 	    DHCP6CTL_DEF_COMMANDQUEUELEN, &ctlsock)) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "failed to initialize control channel");
 		exit(1);
 	}
 
 	if (signal(SIGHUP, client6_signal) == SIG_ERR) {
-		dprintf(LOG_WARNING, FNAME, "failed to set signal: %s",
+		debug_printf(LOG_WARNING, FNAME, "failed to set signal: %s",
 		    strerror(errno));
 		exit(1);
 	}
 	if (signal(SIGTERM, client6_signal) == SIG_ERR) {
-		dprintf(LOG_WARNING, FNAME, "failed to set signal: %s",
+		debug_printf(LOG_WARNING, FNAME, "failed to set signal: %s",
 		    strerror(errno));
 		exit(1);
 	}
@@ -393,28 +393,28 @@ client6_start(ifp)
 
 	/* make sure that the interface does not have a timer */
 	if (ifp->timer != NULL) {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "removed existing timer on %s", ifp->ifname);
 		dhcp6_remove_timer(&ifp->timer);
 	}
 
 	/* create an event for the initial delay */
 	if ((ev = dhcp6_create_event(ifp, DHCP6S_INIT)) == NULL) {
-		dprintf(LOG_NOTICE, FNAME, "failed to create an event");
+		debug_printf(LOG_NOTICE, FNAME, "failed to create an event");
 		return (-1);
 	}
 	TAILQ_INSERT_TAIL(&ifp->event_list, ev, link);
 
 	if ((ev->authparam = new_authparam(ifp->authproto,
 	    ifp->authalgorithm, ifp->authrdm)) == NULL) {
-		dprintf(LOG_WARNING, FNAME, "failed to allocate "
+		debug_printf(LOG_WARNING, FNAME, "failed to allocate "
 		    "authentication parameters");
 		dhcp6_remove_event(ev);
 		return (-1);
 	}
 
 	if ((ev->timer = dhcp6_add_timer(client6_timo, ev)) == NULL) {
-		dprintf(LOG_NOTICE, FNAME, "failed to add a timer for %s",
+		debug_printf(LOG_NOTICE, FNAME, "failed to add a timer for %s",
 		    ifp->ifname);
 		dhcp6_remove_event(ev);
 		return (-1);
@@ -432,7 +432,7 @@ client6_startall(isrestart)
 
 	for (ifp = dhcp6_if; ifp; ifp = ifp->next) {
 		if (isrestart &&ifreset(ifp)) {
-			dprintf(LOG_NOTICE, FNAME, "failed to reset %s",
+			debug_printf(LOG_NOTICE, FNAME, "failed to reset %s",
 			    ifp->ifname);
 			continue; /* XXX: try to recover? */
 		}
@@ -489,7 +489,7 @@ check_exit()
 	}
 
 	/* We have no existing event.  Do exit. */
-	dprintf(LOG_INFO, FNAME, "exiting");
+	debug_printf(LOG_INFO, FNAME, "exiting");
 
 	exit(0);
 }
@@ -504,7 +504,7 @@ process_signals()
 		check_exit();
 	}
 	if ((sig_flags & SIGF_HUP)) {
-		dprintf(LOG_INFO, FNAME, "restarting");
+		debug_printf(LOG_INFO, FNAME, "restarting");
 		free_resources(NULL);
 		client6_startall(1);
 	}
@@ -539,7 +539,7 @@ client6_mainloop()
 		switch (ret) {
 		case -1:
 			if (errno != EINTR) {
-				dprintf(LOG_ERR, FNAME, "select: %s",
+				debug_printf(LOG_ERR, FNAME, "select: %s",
 				    strerror(errno));
 				exit(1);
 			}
@@ -633,31 +633,31 @@ client6_do_ctlcommand(buf, len)
 	commandlen = (int)(ntohs(ctlhead->len));
 	version = ntohs(ctlhead->version);
 	if (len != sizeof(struct dhcp6ctl) + commandlen) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "assumption failure: command length mismatch");
 		return (DHCP6CTL_R_FAILURE);
 	}
 
 	/* replay protection and message authentication */
 	if ((now = time(NULL)) < 0) {
-		dprintf(LOG_ERR, FNAME, "failed to get current time: %s",
+		debug_printf(LOG_ERR, FNAME, "failed to get current time: %s",
 		    strerror(errno));
 		return (DHCP6CTL_R_FAILURE);
 	}
 	ts0 = (u_int32_t)now;
 	ts = ntohl(ctlhead->timestamp);
 	if (ts + CTLSKEW < ts0 || (ts - CTLSKEW) > ts0) {
-		dprintf(LOG_INFO, FNAME, "timestamp is out of range");
+		debug_printf(LOG_INFO, FNAME, "timestamp is out of range");
 		return (DHCP6CTL_R_FAILURE);
 	}
 
 	if (ctlkey == NULL) {	/* should not happen!! */
-		dprintf(LOG_ERR, FNAME, "no secret key for control channel");
+		debug_printf(LOG_ERR, FNAME, "no secret key for control channel");
 		return (DHCP6CTL_R_FAILURE);
 	}
 	if (dhcp6_verify_mac(buf, len, DHCP6CTL_AUTHPROTO_UNDEF,
 	    DHCP6CTL_AUTHALG_HMACMD5, sizeof(*ctlhead), ctlkey) != 0) {
-		dprintf(LOG_INFO, FNAME, "authentication failure");
+		debug_printf(LOG_INFO, FNAME, "authentication failure");
 		return (DHCP6CTL_R_FAILURE);
 	}
 
@@ -665,14 +665,14 @@ client6_do_ctlcommand(buf, len)
 	commandlen -= ctldigestlen;
 
 	if (version > DHCP6CTL_VERSION) {
-		dprintf(LOG_INFO, FNAME, "unsupported version: %d", version);
+		debug_printf(LOG_INFO, FNAME, "unsupported version: %d", version);
 		return (DHCP6CTL_R_FAILURE);
 	}
 
 	switch (command) {
 	case DHCP6CTL_COMMAND_RELOAD:
 		if (commandlen != 0) {
-			dprintf(LOG_INFO, FNAME, "invalid command length "
+			debug_printf(LOG_INFO, FNAME, "invalid command length "
 			    "for reload: %d", commandlen);
 			return (DHCP6CTL_R_DONE);
 		}
@@ -691,7 +691,7 @@ client6_do_ctlcommand(buf, len)
 				return (DHCP6CTL_R_FAILURE);
 			break;
 		default:
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "unknown start target: %ul", p32);
 			return (DHCP6CTL_R_FAILURE);
 		}
@@ -718,14 +718,14 @@ client6_do_ctlcommand(buf, len)
 				}
 				break;
 			default:
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "unknown start target: %ul", p32);
 				return (DHCP6CTL_R_FAILURE);
 			}
 		}
 		break;
 	default:
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 		    "unknown control command: %d (len=%d)",
 		    (int)command, commandlen);
 		return (DHCP6CTL_R_FAILURE);
@@ -739,12 +739,12 @@ client6_reload()
 {
 	/* reload the configuration file */
 	if (cfparse(conffile) != 0) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "failed to reload configuration file");
 		return;
 	}
 
-	dprintf(LOG_NOTICE, FNAME, "client reloaded");
+	debug_printf(LOG_NOTICE, FNAME, "client reloaded");
 
 	return;
 }
@@ -757,20 +757,20 @@ client6_ifctl(ifname, command)
 	struct dhcp6_if *ifp;
 
 	if ((ifp = find_ifconfbyname(ifname)) == NULL) {
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 		    "failed to find interface configuration for %s",
 		    ifname);
 		return (-1);
 	}
 
-	dprintf(LOG_DEBUG, FNAME, "%s interface %s",
+	debug_printf(LOG_DEBUG, FNAME, "%s interface %s",
 	    command == DHCP6CTL_COMMAND_START ? "start" : "stop", ifname);
 
 	switch(command) {
 	case DHCP6CTL_COMMAND_START:
 		free_resources(ifp);
 		if (client6_start(ifp)) {
-			dprintf(LOG_NOTICE, FNAME, "failed to restart %s",
+			debug_printf(LOG_NOTICE, FNAME, "failed to restart %s",
 			    ifname);
 			return (-1);
 		}
@@ -778,13 +778,13 @@ client6_ifctl(ifname, command)
 	case DHCP6CTL_COMMAND_STOP:
 		free_resources(ifp);
 		if (ifp->timer != NULL) {
-			dprintf(LOG_DEBUG, FNAME,
+			debug_printf(LOG_DEBUG, FNAME,
 			    "removed existing timer on %s", ifp->ifname);
 			dhcp6_remove_timer(&ifp->timer);
 		}
 		break;
 	default:		/* impossible case, should be a bug */
-		dprintf(LOG_ERR, FNAME, "unknown command: %d", (int)command);
+		debug_printf(LOG_ERR, FNAME, "unknown command: %d", (int)command);
 		break;
 	}
 
@@ -797,7 +797,7 @@ client6_expire_refreshtime(arg)
 {
 	struct dhcp6_if *ifp = arg;
 
-	dprintf(LOG_DEBUG, FNAME,
+	debug_printf(LOG_DEBUG, FNAME,
 	    "information refresh time on %s expired", ifp->ifname);
 
 	dhcp6_remove_timer(&ifp->timer);
@@ -823,7 +823,7 @@ client6_timo(arg)
 	 * [RFC3315 14.]
 	 */
 	if (ev->max_retrans_cnt && ev->timeouts >= ev->max_retrans_cnt) {
-		dprintf(LOG_INFO, FNAME, "no responses were received");
+		debug_printf(LOG_INFO, FNAME, "no responses were received");
 		dhcp6_remove_event(ev);
 
 		if (state == DHCP6S_RELEASE)
@@ -840,7 +840,7 @@ client6_timo(arg)
 		else {
 			ev->state = DHCP6S_SOLICIT;
 			if (construct_confdata(ifp, ev)) {
-				dprintf(LOG_ERR, FNAME, "can't send solicit");
+				debug_printf(LOG_ERR, FNAME, "can't send solicit");
 				exit(1); /* XXX */
 			}
 		}
@@ -856,7 +856,7 @@ client6_timo(arg)
 		if (!TAILQ_EMPTY(&ev->data_list))
 			client6_send(ev);
 		else {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "all information to be updated was canceled");
 			dhcp6_remove_event(ev);
 			return (NULL);
@@ -875,13 +875,13 @@ client6_timo(arg)
 			ev->current_server = select_server(ev);
 			if (ev->current_server == NULL) {
 				/* this should not happen! */
-				dprintf(LOG_NOTICE, FNAME,
+				debug_printf(LOG_NOTICE, FNAME,
 				    "can't find a server");
 				exit(1); /* XXX */
 			}
 			if (duidcpy(&ev->serverid,
 			    &ev->current_server->optinfo.serverID)) {
-				dprintf(LOG_NOTICE, FNAME,
+				debug_printf(LOG_NOTICE, FNAME,
 				    "can't copy server ID");
 				return (NULL); /* XXX: better recovery? */
 			}
@@ -896,7 +896,7 @@ client6_timo(arg)
 
 			if (construct_reqdata(ifp,
 			    &ev->current_server->optinfo, ev)) {
-				dprintf(LOG_NOTICE, FNAME,
+				debug_printf(LOG_NOTICE, FNAME,
 				    "failed to construct request data");
 				break;
 			}
@@ -930,7 +930,7 @@ construct_confdata(ifp, ev)
 
 		evd = NULL;
 		if ((evd = malloc(sizeof(*evd))) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to create a new event data");
 			goto fail;
 		}
@@ -982,7 +982,7 @@ construct_confdata(ifp, ev)
 			TAILQ_INSERT_TAIL(&ev->data_list, evd, link);
 			break;
 		default:
-			dprintf(LOG_ERR, FNAME, "internal error");
+			debug_printf(LOG_ERR, FNAME, "internal error");
 			exit(1);
 		}
 	}
@@ -1078,7 +1078,7 @@ construct_reqdata(ifp, optinfo, ev)
 			TAILQ_INSERT_TAIL(&ev->data_list, evd, link);
 			break;
 		default:
-			dprintf(LOG_ERR, FNAME, "internal error");
+			debug_printf(LOG_ERR, FNAME, "internal error");
 			exit(1);
 		}
 	}
@@ -1102,7 +1102,7 @@ destruct_iadata(evd)
 	struct dhcp6_list *ial;
 
 	if (evd->type != DHCP6_EVDATA_IAPD && evd->type != DHCP6_EVDATA_IANA) {
-		dprintf(LOG_ERR, FNAME, "assumption failure %d", evd->type);
+		debug_printf(LOG_ERR, FNAME, "assumption failure %d", evd->type);
 		exit(1);
 	}
 
@@ -1124,7 +1124,7 @@ select_server(ev)
 	 */
 	for (s = ev->servers; s; s = s->next) {
 		if (s->active) {
-			dprintf(LOG_DEBUG, FNAME, "picked a server (ID: %s)",
+			debug_printf(LOG_DEBUG, FNAME, "picked a server (ID: %s)",
 			    duidstr(&s->optinfo.serverID));
 			return (s);
 		}
@@ -1185,7 +1185,7 @@ client6_send(ev)
 		dh6->dh6_msgtype = DH6_INFORM_REQ;
 		break;
 	default:
-		dprintf(LOG_ERR, FNAME, "unexpected state");
+		debug_printf(LOG_ERR, FNAME, "unexpected state");
 		exit(1);	/* XXX */
 	}
 
@@ -1203,7 +1203,7 @@ client6_send(ev)
 #else
 		ev->xid = random() & DH6_XIDMASK;
 #endif
-		dprintf(LOG_DEBUG, FNAME, "a new XID (%x) is generated",
+		debug_printf(LOG_DEBUG, FNAME, "a new XID (%x) is generated",
 		    ev->xid);
 	}
 	dh6->dh6_xid &= ~ntohl(DH6_XIDMASK);
@@ -1221,7 +1221,7 @@ client6_send(ev)
 	case DHCP6S_RENEW:
 	case DHCP6S_RELEASE:
 		if (duidcpy(&optinfo.serverID, &ev->serverid)) {
-			dprintf(LOG_ERR, FNAME, "failed to copy server ID");
+			debug_printf(LOG_ERR, FNAME, "failed to copy server ID");
 			goto end;
 		}
 		break;
@@ -1229,7 +1229,7 @@ client6_send(ev)
 
 	/* client ID */
 	if (duidcpy(&optinfo.clientID, &client_duid)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy client ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy client ID");
 		goto end;
 	}
 
@@ -1274,7 +1274,7 @@ client6_send(ev)
 	/* option request options */
 	if (ev->state != DHCP6S_RELEASE &&
 	    dhcp6_copy_list(&optinfo.reqopt_list, &ifp->reqopt_list)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy requested options");
+		debug_printf(LOG_ERR, FNAME, "failed to copy requested options");
 		goto end;
 	}
 
@@ -1285,7 +1285,7 @@ client6_send(ev)
 		case DHCP6_EVDATA_IAPD:
 			if (dhcp6_copy_list(&optinfo.iapd_list,
 			    (struct dhcp6_list *)evd->data)) {
-				dprintf(LOG_NOTICE, FNAME,
+				debug_printf(LOG_NOTICE, FNAME,
 				    "failed to add an IAPD");
 				goto end;
 			}
@@ -1293,13 +1293,13 @@ client6_send(ev)
 		case DHCP6_EVDATA_IANA:
 			if (dhcp6_copy_list(&optinfo.iana_list,
 			    (struct dhcp6_list *)evd->data)) {
-				dprintf(LOG_NOTICE, FNAME,
+				debug_printf(LOG_NOTICE, FNAME,
 				    "failed to add an IAPD");
 				goto end;
 			}
 			break;
 		default:
-			dprintf(LOG_ERR, FNAME, "unexpected event data (%d)",
+			debug_printf(LOG_ERR, FNAME, "unexpected event data (%d)",
 			    evd->type);
 			exit(1);
 		}
@@ -1307,7 +1307,7 @@ client6_send(ev)
 
 	/* authentication information */
 	if (set_auth(ev, &optinfo)) {
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 		    "failed to set authentication option");
 		goto end;
 	}
@@ -1316,7 +1316,7 @@ client6_send(ev)
 	if ((optlen = dhcp6_set_options(dh6->dh6_msgtype,
 	    (struct dhcp6opt *)(dh6 + 1),
 	    (struct dhcp6opt *)(buf + sizeof(buf)), &optinfo)) < 0) {
-		dprintf(LOG_INFO, FNAME, "failed to construct options");
+		debug_printf(LOG_INFO, FNAME, "failed to construct options");
 		goto end;
 	}
 	len += optlen;
@@ -1332,7 +1332,7 @@ client6_send(ev)
 			    optinfo.authproto, optinfo.authalgorithm,
 			    optinfo.delayedauth_offset + sizeof(*dh6),
 			    ev->authparam->key)) {
-				dprintf(LOG_WARNING, FNAME,
+				debug_printf(LOG_WARNING, FNAME,
 				    "failed to calculate MAC");
 				goto end;
 			}
@@ -1354,12 +1354,12 @@ client6_send(ev)
 
 	if (sendto(sock, buf, len, 0, (struct sockaddr *)&dst,
 	    sysdep_sa_len((struct sockaddr *)&dst)) == -1) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "transmit failed: %s", strerror(errno));
 		goto end;
 	}
 
-	dprintf(LOG_DEBUG, FNAME, "send %s to %s",
+	debug_printf(LOG_DEBUG, FNAME, "send %s to %s",
 	    dhcp6msgstr(dh6->dh6_msgtype), addr2str((struct sockaddr *)&dst));
 
   end:
@@ -1417,7 +1417,7 @@ client6_recv()
 	mhdr.msg_control = (caddr_t)cmsgbuf;
 	mhdr.msg_controllen = sizeof(cmsgbuf);
 	if ((len = recvmsg(sock, &mhdr, 0)) < 0) {
-		dprintf(LOG_ERR, FNAME, "recvmsg: %s", strerror(errno));
+		debug_printf(LOG_ERR, FNAME, "recvmsg: %s", strerror(errno));
 		return;
 	}
 
@@ -1431,24 +1431,24 @@ client6_recv()
 		}
 	}
 	if (pi == NULL) {
-		dprintf(LOG_NOTICE, FNAME, "failed to get packet info");
+		debug_printf(LOG_NOTICE, FNAME, "failed to get packet info");
 		return;
 	}
 
 	if ((ifp = find_ifconfbyid((unsigned int)pi->ipi6_ifindex)) == NULL) {
-		dprintf(LOG_INFO, FNAME, "unexpected interface (%d)",
+		debug_printf(LOG_INFO, FNAME, "unexpected interface (%d)",
 		    (unsigned int)pi->ipi6_ifindex);
 		return;
 	}
 
 	if (len < sizeof(*dh6)) {
-		dprintf(LOG_INFO, FNAME, "short packet (%d bytes)", len);
+		debug_printf(LOG_INFO, FNAME, "short packet (%d bytes)", len);
 		return;
 	}
 
 	dh6 = (struct dhcp6 *)rbuf;
 
-	dprintf(LOG_DEBUG, FNAME, "receive %s from %s on %s",
+	debug_printf(LOG_DEBUG, FNAME, "receive %s from %s on %s",
 	    dhcp6msgstr(dh6->dh6_msgtype),
 	    addr2str((struct sockaddr *)&from), ifp->ifname);
 
@@ -1457,7 +1457,7 @@ client6_recv()
 	p = (struct dhcp6opt *)(dh6 + 1);
 	ep = (struct dhcp6opt *)((char *)dh6 + len);
 	if (dhcp6_get_options(p, ep, &optinfo) < 0) {
-		dprintf(LOG_INFO, FNAME, "failed to parse options");
+		debug_printf(LOG_INFO, FNAME, "failed to parse options");
 		return;
 	}
 
@@ -1469,7 +1469,7 @@ client6_recv()
 		(void)client6_recvreply(ifp, dh6, len, &optinfo);
 		break;
 	default:
-		dprintf(LOG_INFO, FNAME, "received an unexpected message (%s) "
+		debug_printf(LOG_INFO, FNAME, "received an unexpected message (%s) "
 		    "from %s", dhcp6msgstr(dh6->dh6_msgtype),
 		    addr2str((struct sockaddr *)&from));
 		break;
@@ -1494,32 +1494,32 @@ client6_recvadvert(ifp, dh6, len, optinfo)
 	/* find the corresponding event based on the received xid */
 	ev = find_event_withid(ifp, ntohl(dh6->dh6_xid) & DH6_XIDMASK);
 	if (ev == NULL) {
-		dprintf(LOG_INFO, FNAME, "XID mismatch");
+		debug_printf(LOG_INFO, FNAME, "XID mismatch");
 		return (-1);
 	}
 
 	/* packet validation based on Section 15.3 of RFC3315. */
 	if (optinfo->serverID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no server ID option");
+		debug_printf(LOG_INFO, FNAME, "no server ID option");
 		return (-1);
 	} else {
-		dprintf(LOG_DEBUG, FNAME, "server ID: %s, pref=%d",
+		debug_printf(LOG_DEBUG, FNAME, "server ID: %s, pref=%d",
 		    duidstr(&optinfo->serverID),
 		    optinfo->pref);
 	}
 	if (optinfo->clientID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no client ID option");
+		debug_printf(LOG_INFO, FNAME, "no client ID option");
 		return (-1);
 	}
 	if (duidcmp(&optinfo->clientID, &client_duid)) {
-		dprintf(LOG_INFO, FNAME, "client DUID mismatch");
+		debug_printf(LOG_INFO, FNAME, "client DUID mismatch");
 		return (-1);
 	}
 
 	/* validate authentication */
 	authparam0 = *ev->authparam;
 	if (process_auth(&authparam0, dh6, len, optinfo)) {
-		dprintf(LOG_INFO, FNAME, "failed to process authentication");
+		debug_printf(LOG_INFO, FNAME, "failed to process authentication");
 		return (-1);
 	}
 
@@ -1552,7 +1552,7 @@ client6_recvadvert(ifp, dh6, len, optinfo)
 		}
 		if (dhcp6_find_listval(&optinfo->stcode_list,
 		    DHCP6_LISTVAL_STCODE, &stcode, 0)) {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "advertise contains %s status", stcodestr);
 			return (-1);
 		}
@@ -1567,20 +1567,20 @@ client6_recvadvert(ifp, dh6, len, optinfo)
 		 * We process the message as if we expected the Advertise.
 		 * [RFC3315 Section 17.1.4]
 		 */
-		dprintf(LOG_INFO, FNAME, "unexpected advertise");
+		debug_printf(LOG_INFO, FNAME, "unexpected advertise");
 		/* proceed anyway */
 	}
 
 	/* ignore the server if it is known */
 	if (find_server(ev, &optinfo->serverID)) {
-		dprintf(LOG_INFO, FNAME, "duplicated server (ID: %s)",
+		debug_printf(LOG_INFO, FNAME, "duplicated server (ID: %s)",
 		    duidstr(&optinfo->serverID));
 		return (-1);
 	}
 
 	/* keep the server */
 	if ((newserver = malloc(sizeof(*newserver))) == NULL) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "memory allocation failed for server");
 		return (-1);
 	}
@@ -1595,7 +1595,7 @@ client6_recvadvert(ifp, dh6, len, optinfo)
 	/* allocate new authentication parameter for the soliciting event */
 	if ((authparam = new_authparam(ev->authparam->authproto,
 	    ev->authparam->authalgorithm, ev->authparam->authrdm)) == NULL) {
-		dprintf(LOG_WARNING, FNAME, "memory allocation failed "
+		debug_printf(LOG_WARNING, FNAME, "memory allocation failed "
 		    "for authentication parameters");
 		free(newserver);
 		return (-1);
@@ -1605,7 +1605,7 @@ client6_recvadvert(ifp, dh6, len, optinfo)
 	/* copy options */
 	dhcp6_init_options(&newserver->optinfo);
 	if (dhcp6_copy_options(&newserver->optinfo, optinfo)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy options");
+		debug_printf(LOG_ERR, FNAME, "failed to copy options");
 		if (newserver->authparam != NULL)
 			free(newserver->authparam);
 		free(newserver);
@@ -1633,11 +1633,11 @@ client6_recvadvert(ifp, dh6, len, optinfo)
 		ev->current_server = newserver;
 		if (duidcpy(&ev->serverid,
 		    &ev->current_server->optinfo.serverID)) {
-			dprintf(LOG_NOTICE, FNAME, "can't copy server ID");
+			debug_printf(LOG_NOTICE, FNAME, "can't copy server ID");
 			return (-1); /* XXX: better recovery? */
 		}
 		if (construct_reqdata(ifp, &ev->current_server->optinfo, ev)) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to construct request data");
 			return (-1); /* XXX */
 		}
@@ -1673,7 +1673,7 @@ client6_recvadvert(ifp, dh6, len, optinfo)
 		else
 			timo.tv_sec = timo.tv_usec = 0;
 
-		dprintf(LOG_DEBUG, FNAME, "reset timer for %s to %d.%06d",
+		debug_printf(LOG_DEBUG, FNAME, "reset timer for %s to %d.%06d",
 		    ifp->ifname, (int)timo.tv_sec, (int)timo.tv_usec);
 
 		dhcp6_set_timer(&timo, ev->timer);
@@ -1711,7 +1711,7 @@ client6_recvreply(ifp, dh6, len, optinfo)
 	/* find the corresponding event based on the received xid */
 	ev = find_event_withid(ifp, ntohl(dh6->dh6_xid) & DH6_XIDMASK);
 	if (ev == NULL) {
-		dprintf(LOG_INFO, FNAME, "XID mismatch");
+		debug_printf(LOG_INFO, FNAME, "XID mismatch");
 		return (-1);
 	}
 
@@ -1723,13 +1723,13 @@ client6_recvreply(ifp, dh6, len, optinfo)
 	    state != DHCP6S_RELEASE &&
 	    (state != DHCP6S_SOLICIT ||
 	     !(ifp->send_flags & DHCIFF_RAPID_COMMIT))) {
-		dprintf(LOG_INFO, FNAME, "unexpected reply");
+		debug_printf(LOG_INFO, FNAME, "unexpected reply");
 		return (-1);
 	}
 
 	/* A Reply message must contain a Server ID option */
 	if (optinfo->serverID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no server ID option");
+		debug_printf(LOG_INFO, FNAME, "no server ID option");
 		return (-1);
 	}
 
@@ -1738,17 +1738,17 @@ client6_recvreply(ifp, dh6, len, optinfo)
 	 * client implementation) must match ours.
 	 */
 	if (optinfo->clientID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no client ID option");
+		debug_printf(LOG_INFO, FNAME, "no client ID option");
 		return (-1);
 	}
 	if (duidcmp(&optinfo->clientID, &client_duid)) {
-		dprintf(LOG_INFO, FNAME, "client DUID mismatch");
+		debug_printf(LOG_INFO, FNAME, "client DUID mismatch");
 		return (-1);
 	}
 
 	/* validate authentication */
 	if (process_auth(ev->authparam, dh6, len, optinfo)) {
-		dprintf(LOG_INFO, FNAME, "failed to process authentication");
+		debug_printf(LOG_INFO, FNAME, "failed to process authentication");
 		return (-1);
 	}
 
@@ -1762,7 +1762,7 @@ client6_recvreply(ifp, dh6, len, optinfo)
 	if (state == DHCP6S_SOLICIT &&
 	    (ifp->send_flags & DHCIFF_RAPID_COMMIT) &&
 	    !optinfo->rapidcommit) {
-		dprintf(LOG_INFO, FNAME, "no rapid commit");
+		debug_printf(LOG_INFO, FNAME, "no rapid commit");
 		return (-1);
 	}
 
@@ -1773,7 +1773,7 @@ client6_recvreply(ifp, dh6, len, optinfo)
 	 */
 	for (lv = TAILQ_FIRST(&optinfo->stcode_list); lv;
 	     lv = TAILQ_NEXT(lv, link)) {
-		dprintf(LOG_INFO, FNAME, "status code: %s",
+		debug_printf(LOG_INFO, FNAME, "status code: %s",
 		    dhcp6_stcodestr(lv->val_num16));
 	}
 
@@ -1837,7 +1837,7 @@ client6_recvreply(ifp, dh6, len, optinfo)
 	 * configuration parameters.
 	 */
 	if (ifp->scriptpath != NULL && strlen(ifp->scriptpath) != 0) {
-		dprintf(LOG_DEBUG, FNAME, "executes %s", ifp->scriptpath);
+		debug_printf(LOG_DEBUG, FNAME, "executes %s", ifp->scriptpath);
 		client6_script(ifp->scriptpath, state, optinfo);
 	}
 
@@ -1855,7 +1855,7 @@ client6_recvreply(ifp, dh6, len, optinfo)
 
 		ifp->timer = dhcp6_add_timer(client6_expire_refreshtime, ifp);
 		if (ifp->timer == NULL) {
-			dprintf(LOG_WARNING, FNAME,
+			debug_printf(LOG_WARNING, FNAME,
 			    "failed to add timer for refresh time");
 		} else {
 			struct timeval tv;
@@ -1868,7 +1868,7 @@ client6_recvreply(ifp, dh6, len, optinfo)
 				 * XXX: tv_sec can overflow for an
 				 * unsigned 32bit value.
 				 */
-				dprintf(LOG_WARNING, FNAME,
+				debug_printf(LOG_WARNING, FNAME,
 				    "refresh time is too large: %lu",
 				    (u_int32_t)refreshtime);
 				tv.tv_sec = 0x7fffffff;	/* XXX */
@@ -1881,7 +1881,7 @@ client6_recvreply(ifp, dh6, len, optinfo)
 		 * draft-ietf-dhc-lifetime-02 clarifies that refresh time
 		 * is only used for information-request and reply exchanges.
 		 */
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 		    "unexpected information refresh time option (ignored)");
 	}
 
@@ -1906,7 +1906,7 @@ client6_recvreply(ifp, dh6, len, optinfo)
 		check_exit();
 	}
 
-	dprintf(LOG_DEBUG, FNAME, "got an expected reply, sleeping.");
+	debug_printf(LOG_DEBUG, FNAME, "got an expected reply, sleeping.");
 
 	if (infreq_mode) {
 		exit_ok = 1;
@@ -1949,19 +1949,19 @@ process_auth(authparam, dh6, len, optinfo)
 		break;
 	case DHCP6_AUTHPROTO_DELAYED:
 		if ((optinfo->authflags & DHCP6OPT_AUTHFLAG_NOINFO)) {
-			dprintf(LOG_INFO, FNAME, "server did not include "
+			debug_printf(LOG_INFO, FNAME, "server did not include "
 			    "authentication information");
 			break;
 		}
 
 		if (optinfo->authalgorithm != DHCP6_AUTHALG_HMACMD5) {
-			dprintf(LOG_INFO, FNAME, "unknown authentication "
+			debug_printf(LOG_INFO, FNAME, "unknown authentication "
 			    "algorithm (%d)", optinfo->authalgorithm);
 			break;
 		}
 
 		if (optinfo->authrdm != DHCP6_AUTHRDM_MONOCOUNTER) {
-			dprintf(LOG_INFO, FNAME,"unknown RDM (%d)",
+			debug_printf(LOG_INFO, FNAME,"unknown RDM (%d)",
 			    optinfo->authrdm);
 			break;
 		}
@@ -1971,12 +1971,12 @@ process_auth(authparam, dh6, len, optinfo)
 		 * we accept the message anyway (XXX).
 		 */
 		if ((authparam->flags & AUTHPARAM_FLAGS_NOPREVRD)) {
-			dprintf(LOG_WARNING, FNAME, "previous RD value is "
+			debug_printf(LOG_WARNING, FNAME, "previous RD value is "
 			    "unknown (accept it)");
 		} else {
 			if (dhcp6_auth_replaycheck(optinfo->authrdm,
 			    authparam->prevrd, optinfo->authrd)) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "possible replay attack detected");
 				break;
 			}
@@ -1993,7 +1993,7 @@ process_auth(authparam, dh6, len, optinfo)
 			    optinfo->delayedauth_realmlen != key->realmlen ||
 			    memcmp(optinfo->delayedauth_realmval, key->realm,
 			    key->realmlen) != 0) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "authentication key mismatch");
 				break;
 			}
@@ -2002,12 +2002,12 @@ process_auth(authparam, dh6, len, optinfo)
 			    optinfo->delayedauth_realmlen,
 			    optinfo->delayedauth_keyid);
 			if (key == NULL) {
-				dprintf(LOG_INFO, FNAME, "failed to find key "
+				debug_printf(LOG_INFO, FNAME, "failed to find key "
 				    "provided by the server (ID: %x)",
 				    optinfo->delayedauth_keyid);
 				break;
 			} else {
-				dprintf(LOG_DEBUG, FNAME, "found key for "
+				debug_printf(LOG_DEBUG, FNAME, "found key for "
 				    "authentication: %s", key->name);
 			}
 			authparam->key = key;
@@ -2015,7 +2015,7 @@ process_auth(authparam, dh6, len, optinfo)
 
 		/* check for the key lifetime */
 		if (dhcp6_validate_key(key)) {
-			dprintf(LOG_INFO, FNAME, "key %s has expired",
+			debug_printf(LOG_INFO, FNAME, "key %s has expired",
 			    key->name);
 			break;
 		}
@@ -2024,24 +2024,24 @@ process_auth(authparam, dh6, len, optinfo)
 		if (dhcp6_verify_mac((char *)dh6, len, optinfo->authproto,
 		    optinfo->authalgorithm,
 		    optinfo->delayedauth_offset + sizeof(*dh6), key) == 0) {
-			dprintf(LOG_DEBUG, FNAME, "message authentication "
+			debug_printf(LOG_DEBUG, FNAME, "message authentication "
 			    "validated");
 			authenticated = 1;
 		} else {
-			dprintf(LOG_INFO, FNAME, "invalid message "
+			debug_printf(LOG_INFO, FNAME, "invalid message "
 			    "authentication");
 		}
 
 		break;
 	default:
-		dprintf(LOG_INFO, FNAME, "server sent unsupported "
+		debug_printf(LOG_INFO, FNAME, "server sent unsupported "
 		    "authentication protocol (%d)", optinfo->authproto);
 		break;
 	}
 
 	if (authenticated == 0) {
 		if (authparam->authproto != DHCP6_AUTHPROTO_UNDEF) {
-			dprintf(LOG_INFO, FNAME, "message not authenticated "
+			debug_printf(LOG_INFO, FNAME, "message not authenticated "
 			    "while authentication required");
 
 			/*
@@ -2084,7 +2084,7 @@ set_auth(ev, optinfo)
 			 * exchanges doesn't work.  Specification is also
 			 * unclear on this usage.
 			 */
-			dprintf(LOG_WARNING, FNAME, "delayed authentication "
+			debug_printf(LOG_WARNING, FNAME, "delayed authentication "
 			    "cannot be used for Information-request yet");
 			return (-1);
 		}
@@ -2095,21 +2095,21 @@ set_auth(ev, optinfo)
 		}
 
 		if (authparam->key == NULL) {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "no authentication key for %s",
 			    dhcp6_event_statestr(ev));
 			return (-1);
 		}
 
 		if (dhcp6_validate_key(authparam->key)) {
-			dprintf(LOG_INFO, FNAME, "key %s is invalid",
+			debug_printf(LOG_INFO, FNAME, "key %s is invalid",
 			    authparam->key->name);
 			return (-1);
 		}
 
 		if (get_rdvalue(optinfo->authrdm, &optinfo->authrd,
 		    sizeof(optinfo->authrd))) {
-			dprintf(LOG_ERR, FNAME, "failed to get a replay "
+			debug_printf(LOG_ERR, FNAME, "failed to get a replay "
 			    "detection value");
 			return (-1);
 		}
@@ -2119,7 +2119,7 @@ set_auth(ev, optinfo)
 		optinfo->delayedauth_realmval =
 		    malloc(optinfo->delayedauth_realmlen);
 		if (optinfo->delayedauth_realmval == NULL) {
-			dprintf(LOG_ERR, FNAME, "failed to allocate memory "
+			debug_printf(LOG_ERR, FNAME, "failed to allocate memory "
 			    "for authentication realm");
 			return (-1);
 		}
@@ -2128,7 +2128,7 @@ set_auth(ev, optinfo)
 
 		break;
 	default:
-		dprintf(LOG_ERR, FNAME, "unsupported authentication protocol "
+		debug_printf(LOG_ERR, FNAME, "unsupported authentication protocol "
 		    "%d", authparam->authproto);
 		return (-1);
 	}
@@ -2145,7 +2145,7 @@ info_printf(const char *fmt, ...)
 	va_start(ap, fmt);
 	vsnprintf(logbuf, sizeof(logbuf), fmt, ap);
 
-	dprintf(LOG_DEBUG, FNAME, "%s", logbuf);
+	debug_printf(LOG_DEBUG, FNAME, "%s", logbuf);
 	if (infreq_mode)
 		printf("%s\n", logbuf);
 
diff --git a/dhcp6c_ia.c b/dhcp6c_ia.c
index 6877c20..1dc37d3 100644
--- a/dhcp6c_ia.c
+++ b/dhcp6c_ia.c
@@ -122,7 +122,7 @@ update_ia(iatype, ialist, ifp, serverid, authparam)
 		 * We apply the same rule to IA_PD as well.
 		 */
 		if (iav->val_ia.t2 != 0 && iav->val_ia.t1 > iav->val_ia.t2) {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "invalid IA: T1(%lu) > T2(%lu)",
 			    iav->val_ia.t1, iav->val_ia.t2);
 			continue;
@@ -131,14 +131,14 @@ update_ia(iatype, ialist, ifp, serverid, authparam)
 		/* locate the local IA or make a new one */
 		ia = get_ia(iatype, ifp, iac, iav, serverid);
 		if (ia == NULL) {
-			dprintf(LOG_WARNING, FNAME, "failed to get an IA "
+			debug_printf(LOG_WARNING, FNAME, "failed to get an IA "
 			    "type: %s, ID: %u", iastr(iac->type), iac->iaid);
 			continue;
 		}
 
 		/* update authentication parameters */
 		if (update_authparam(ia, authparam)) {
-			dprintf(LOG_WARNING, FNAME, "failed to update "
+			debug_printf(LOG_WARNING, FNAME, "failed to update "
 			    "authentication param for IA "
 			    "type: %s, ID: %u", iastr(iac->type), iac->iaid);
 			remove_ia(ia);
@@ -155,7 +155,7 @@ update_ia(iatype, ialist, ifp, serverid, authparam)
 				if (update_prefix(ia, &siav->val_prefix6,
 				    &iapdc->iapd_pif_list, ifp, &ia->ctl,
 				    callback)) {
-					dprintf(LOG_NOTICE, FNAME,
+					debug_printf(LOG_NOTICE, FNAME,
 					    "failed to update a prefix %s/%d",
 					    in6addr2str(&siav->val_prefix6.addr, 0),
 					    siav->val_prefix6.plen);
@@ -165,13 +165,13 @@ update_ia(iatype, ialist, ifp, serverid, authparam)
 				ianac = (struct iana_conf *)iac;
 				if (update_address(ia, &siav->val_statefuladdr6,
 				    ifp, &ia->ctl, callback)) {
-					dprintf(LOG_NOTICE, FNAME,
+					debug_printf(LOG_NOTICE, FNAME,
 					    "failed to update an address %s",
 					    in6addr2str(&siav->val_statefuladdr6.addr, 0));
 				}
 				break;
 			case DHCP6_LISTVAL_STCODE:
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "status code for %s-%lu: %s",
 				    iastr(iatype), iav->val_ia.iaid,
 				    dhcp6_stcodestr(siav->val_num16));
@@ -187,7 +187,7 @@ update_ia(iatype, ialist, ifp, serverid, authparam)
 					 * [RFC3315 18.1.8]
 					 * XXX: what about the PD case?
 					 */
-					dprintf(LOG_INFO, FNAME,
+					debug_printf(LOG_INFO, FNAME,
 					    "receive NoBinding against "
 					    "renew/rebind for %s-%lu",
 					    iastr(ia->conf->type),
@@ -197,14 +197,14 @@ update_ia(iatype, ialist, ifp, serverid, authparam)
 				}
 				break;
 			default:
-				dprintf(LOG_ERR, FNAME, "impossible case");
+				debug_printf(LOG_ERR, FNAME, "impossible case");
 				goto nextia;
 			}
 		}
 
 		/* see if this IA is still valid.  if not, remove it. */
 		if (ia->ctl == NULL || !(*ia->ctl->isvalid)(ia->ctl)) {
-			dprintf(LOG_DEBUG, FNAME, "IA %s-%lu is invalidated",
+			debug_printf(LOG_DEBUG, FNAME, "IA %s-%lu is invalidated",
 			    iastr(ia->conf->type), ia->conf->iaid);
 			remove_ia(ia);
 			continue;
@@ -236,7 +236,7 @@ update_ia(iatype, ialist, ifp, serverid, authparam)
 			if (ia->t1 > ia->t2)
 				ia->t1 = ia->t2 * 5 / 8;
 
-			dprintf(LOG_INFO, FNAME, "T1(%lu) and/or T2(%lu) "
+			debug_printf(LOG_INFO, FNAME, "T1(%lu) and/or T2(%lu) "
 			    "is locally determined",  ia->t1, ia->t2);
 		}
 
@@ -246,11 +246,11 @@ update_ia(iatype, ialist, ifp, serverid, authparam)
 		 * without renewal.
 		 */
 		if (ia->t2 < DHCP6_DURATION_MIN) {
-			dprintf(LOG_INFO, FNAME, "T1 (%lu) or T2 (%lu) "
+			debug_printf(LOG_INFO, FNAME, "T1 (%lu) or T2 (%lu) "
 			    "is too small", ia->t1, ia->t2);
 			ia->t2 = DHCP6_DURATION_MIN;
 			ia->t1 = ia->t2 * 5 / 8;
-			dprintf(LOG_INFO, "", "  adjusted to %lu and %lu",
+			debug_printf(LOG_INFO, "", "  adjusted to %lu and %lu",
 			    ia->t1, ia->t2);
 		}
 
@@ -262,7 +262,7 @@ update_ia(iatype, ialist, ifp, serverid, authparam)
 			if (ia->timer == NULL)
 				ia->timer = dhcp6_add_timer(ia_timo, ia);
 			if (ia->timer == NULL) {
-				dprintf(LOG_ERR, FNAME,
+				debug_printf(LOG_ERR, FNAME,
 				    "failed to add IA timer");
 				remove_ia(ia); /* XXX */
 				continue;
@@ -289,7 +289,7 @@ update_authparam(ia, authparam)
 
 	if (ia->authparam == NULL) {
 		if ((ia->authparam = copy_authparam(authparam)) == NULL) {
-			dprintf(LOG_WARNING, FNAME,
+			debug_printf(LOG_WARNING, FNAME,
 			    "failed to copy authparam");
 			return (-1);
 		}
@@ -311,11 +311,11 @@ reestablish_ia(ia)
 	struct dhcp6_event *ev;
 	struct dhcp6_eventdata *evd;
 
-	dprintf(LOG_DEBUG, FNAME, "re-establishing IA: %s-%lu", 
+	debug_printf(LOG_DEBUG, FNAME, "re-establishing IA: %s-%lu", 
 	    iastr(ia->conf->type), ia->conf->iaid);
 
 	if (ia->state != IAS_RENEW && ia->state != IAS_REBIND) {
-		dprintf(LOG_ERR, FNAME, "internal error (invalid IA status)");
+		debug_printf(LOG_ERR, FNAME, "internal error (invalid IA status)");
 		exit(1);	/* XXX */
 	}
 
@@ -333,19 +333,19 @@ reestablish_ia(ia)
 		dhcp6_remove_timer(&ia->timer);
 
 	if ((ev = dhcp6_create_event(ia->ifp, DHCP6S_REQUEST)) == NULL) {
-		dprintf(LOG_NOTICE, FNAME, "failed to create a new event");
+		debug_printf(LOG_NOTICE, FNAME, "failed to create a new event");
 		goto fail;
 	}
 	TAILQ_INSERT_TAIL(&ia->ifp->event_list, ev, link);
 
 	if ((ev->timer = dhcp6_add_timer(client6_timo, ev)) == NULL) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to create a new event timer");
 		goto fail;
 	}
 
 	if ((evd = malloc(sizeof(*evd))) == NULL) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to create a new event data");
 		goto fail;
 	}
@@ -354,7 +354,7 @@ reestablish_ia(ia)
 	TAILQ_INSERT_TAIL(&ev->data_list, evd, link);
 
 	if (duidcpy(&ev->serverid, &ia->serverid)) {
-		dprintf(LOG_NOTICE, FNAME, "failed to copy server ID");
+		debug_printf(LOG_NOTICE, FNAME, "failed to copy server ID");
 		goto fail;
 	}
 
@@ -365,7 +365,7 @@ reestablish_ia(ia)
 	if (ia->ctl && ia->ctl->reestablish_data) {
 		if ((*ia->ctl->reestablish_data)(ia->ctl, &iaparam,
 		    &ia->evdata, evd)) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to make reestablish data");
 			goto fail;
 		}
@@ -373,7 +373,7 @@ reestablish_ia(ia)
 
 	if (ia->authparam != NULL) {
 		if ((ev->authparam = copy_authparam(ia->authparam)) == NULL) {
-			dprintf(LOG_WARNING, FNAME,
+			debug_printf(LOG_WARNING, FNAME,
 			    "failed to copy authparam");
 			goto fail;
 		}
@@ -402,7 +402,7 @@ callback(ia)
 {
 	/* see if this IA is still valid.  if not, remove it. */
 	if (ia->ctl == NULL || !(*ia->ctl->isvalid)(ia->ctl)) {
-		dprintf(LOG_DEBUG, FNAME, "IA %s-%lu is invalidated",
+		debug_printf(LOG_DEBUG, FNAME, "IA %s-%lu is invalidated",
 		    iastr(ia->conf->type), ia->conf->iaid);
 		remove_ia(ia);
 	}
@@ -441,30 +441,30 @@ release_ia(ia)
 	struct dhcp6_event *ev;
 	struct dhcp6_eventdata *evd;
 
-	dprintf(LOG_DEBUG, FNAME, "release an IA: %s-%lu",
+	debug_printf(LOG_DEBUG, FNAME, "release an IA: %s-%lu",
 	    iastr(ia->conf->type), ia->conf->iaid);
 
 	if ((ev = dhcp6_create_event(ia->ifp, DHCP6S_RELEASE))
 	    == NULL) {
-		dprintf(LOG_NOTICE, FNAME, "failed to create a new event");
+		debug_printf(LOG_NOTICE, FNAME, "failed to create a new event");
 		goto fail;
 	}
 	TAILQ_INSERT_TAIL(&ia->ifp->event_list, ev, link);
 
 
 	if ((ev->timer = dhcp6_add_timer(client6_timo, ev)) == NULL) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to create a new event timer");
 		goto fail;
 	}
 
 	if (duidcpy(&ev->serverid, &ia->serverid)) {
-		dprintf(LOG_NOTICE, FNAME, "failed to copy server ID");
+		debug_printf(LOG_NOTICE, FNAME, "failed to copy server ID");
 		goto fail;
 	}
 
 	if ((evd = malloc(sizeof(*evd))) == NULL) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to create a new event data");
 		goto fail;
 	}
@@ -476,7 +476,7 @@ release_ia(ia)
 
 	if (ia->ctl && ia->ctl->release_data) {
 		if ((*ia->ctl->release_data)(ia->ctl, &iaparam, NULL, evd)) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to make release data");
 			goto fail;
 		}
@@ -489,7 +489,7 @@ release_ia(ia)
 
 	if (ia->authparam != NULL) {
 		if ((ev->authparam = copy_authparam(ia->authparam)) == NULL) {
-			dprintf(LOG_WARNING, FNAME,
+			debug_printf(LOG_WARNING, FNAME,
 			    "failed to copy authparam");
 			goto fail;
 		}
@@ -513,7 +513,7 @@ remove_ia(ia)
 	struct ia_conf *iac = ia->conf;
 	struct dhcp6_if *ifp = ia->ifp;
 
-	dprintf(LOG_DEBUG, FNAME, "remove an IA: %s-%lu",
+	debug_printf(LOG_DEBUG, FNAME, "remove an IA: %s-%lu",
 	    iastr(ia->conf->type), ia->conf->iaid);
 
 	TAILQ_REMOVE(&iac->iadata, ia, link);
@@ -553,7 +553,7 @@ ia_timo(arg)
 	struct timeval timo;
 	int dhcpstate;
 
-	dprintf(LOG_DEBUG, FNAME, "IA timeout for %s-%lu, state=%s",
+	debug_printf(LOG_DEBUG, FNAME, "IA timeout for %s-%lu, state=%s",
 	    iastr(ia->conf->type), ia->conf->iaid, statestr(ia->state));
 
 	/* cancel the current event for the prefix. */
@@ -586,25 +586,25 @@ ia_timo(arg)
 		dhcp6_remove_timer(&ia->timer);
 		break;
 	default:
-		dprintf(LOG_ERR, FNAME, "invalid IA state (%d)",
+		debug_printf(LOG_ERR, FNAME, "invalid IA state (%d)",
 		    (int)ia->state);
 		return (NULL);	/* XXX */
 	}
 
 	if ((ev = dhcp6_create_event(ia->ifp, dhcpstate)) == NULL) {
-		dprintf(LOG_NOTICE, FNAME, "failed to create a new event");
+		debug_printf(LOG_NOTICE, FNAME, "failed to create a new event");
 		goto fail;
 	}
 	TAILQ_INSERT_TAIL(&ia->ifp->event_list, ev, link);
 
 	if ((ev->timer = dhcp6_add_timer(client6_timo, ev)) == NULL) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to create a new event timer");
 		goto fail;
 	}
 
 	if ((evd = malloc(sizeof(*evd))) == NULL) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to create a new event data");
 		goto fail;
 	}
@@ -614,7 +614,7 @@ ia_timo(arg)
 
 	if (ia->state == IAS_RENEW) {
 		if (duidcpy(&ev->serverid, &ia->serverid)) {
-			dprintf(LOG_NOTICE, FNAME, "failed to copy server ID");
+			debug_printf(LOG_NOTICE, FNAME, "failed to copy server ID");
 			goto fail;
 		}
 	}
@@ -627,7 +627,7 @@ ia_timo(arg)
 		if (ia->ctl && ia->ctl->renew_data) {
 			if ((*ia->ctl->renew_data)(ia->ctl, &iaparam,
 			    &ia->evdata, evd)) {
-				dprintf(LOG_NOTICE, FNAME,
+				debug_printf(LOG_NOTICE, FNAME,
 				    "failed to make renew data");
 				goto fail;
 			}
@@ -637,7 +637,7 @@ ia_timo(arg)
 		if (ia->ctl && ia->ctl->rebind_data) {
 			if ((*ia->ctl->rebind_data)(ia->ctl, &iaparam,
 			    &ia->evdata, evd)) {
-				dprintf(LOG_NOTICE, FNAME,
+				debug_printf(LOG_NOTICE, FNAME,
 				    "failed to make rebind data");
 				goto fail;
 			}
@@ -653,7 +653,7 @@ ia_timo(arg)
 
 	if (ia->authparam != NULL) {
 		if ((ev->authparam = copy_authparam(ia->authparam)) == NULL) {
-			dprintf(LOG_WARNING, FNAME,
+			debug_printf(LOG_WARNING, FNAME,
 			    "failed to copy authparam");
 			goto fail;
 		}
@@ -693,13 +693,13 @@ get_ia(type, ifp, iac, iaparam, serverid)
 	int create = 0;
 
 	if (duidcpy(&newserver, serverid)) {
-		dprintf(LOG_NOTICE, FNAME, "failed to copy server ID");
+		debug_printf(LOG_NOTICE, FNAME, "failed to copy server ID");
 		return (NULL);
 	}
 
 	if ((ia = find_ia(iac, type, iaparam->val_ia.iaid)) == NULL) {
 		if ((ia = malloc(sizeof(*ia))) == NULL) {
-			dprintf(LOG_NOTICE, FNAME, "memory allocation failed");
+			debug_printf(LOG_NOTICE, FNAME, "memory allocation failed");
 			duidfree(&newserver); /* XXX */
 			return (NULL);
 		}
@@ -718,7 +718,7 @@ get_ia(type, ifp, iac, iaparam, serverid)
 	ia->ifp = ifp;
 	ia->serverid = newserver;
 
-	dprintf(LOG_DEBUG, FNAME, "%s an IA: %s-%lu",
+	debug_printf(LOG_DEBUG, FNAME, "%s an IA: %s-%lu",
 	    create ? "make" : "update", iastr(type), ia->conf->iaid);
 
 	return (ia);
diff --git a/dhcp6c_script.c b/dhcp6c_script.c
index 05ccf8c..583ac7d 100644
--- a/dhcp6c_script.c
+++ b/dhcp6c_script.c
@@ -156,7 +156,7 @@ client6_script(scriptpath, state, optinfo)
 
 	/* allocate an environments array */
 	if ((envp = malloc(sizeof (char *) * envc)) == NULL) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to allocate environment buffer");
 		return -1;
 	}
@@ -168,7 +168,7 @@ client6_script(scriptpath, state, optinfo)
 	i = 0;
 	/* reason */
 	if ((envp[i++] = strdup(reason)) == NULL) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to allocate reason strings");
 		ret = -1;
 		goto clean;
@@ -178,7 +178,7 @@ client6_script(scriptpath, state, optinfo)
 		elen = sizeof (dnsserver_str) +
 		    (INET6_ADDRSTRLEN + 1) * dnsservers + 1;
 		if ((s = envp[i++] = malloc(elen)) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to allocate strings for DNS servers");
 			ret = -1;
 			goto clean;
@@ -198,7 +198,7 @@ client6_script(scriptpath, state, optinfo)
 		elen = sizeof (ntpserver_str) +
 		    (INET6_ADDRSTRLEN + 1) * ntpservers + 1;
 		if ((s = envp[i++] = malloc(elen)) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to allocate strings for NTP servers");
 			ret = -1;
 			goto clean;
@@ -218,7 +218,7 @@ client6_script(scriptpath, state, optinfo)
 	if (dnsnamelen) {
 		elen = sizeof (dnsname_str) + dnsnamelen + 1;
 		if ((s = envp[i++] = malloc(elen)) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to allocate strings for DNS name");
 			ret = -1;
 			goto clean;
@@ -236,7 +236,7 @@ client6_script(scriptpath, state, optinfo)
 		elen = sizeof (sipserver_str) +
 		    (INET6_ADDRSTRLEN + 1) * sipservers + 1;
 		if ((s = envp[i++] = malloc(elen)) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to allocate strings for SIP servers");
 			ret = -1;
 			goto clean;
@@ -255,7 +255,7 @@ client6_script(scriptpath, state, optinfo)
 	if (sipnamelen) {
 		elen = sizeof (sipname_str) + sipnamelen + 1;
 		if ((s = envp[i++] = malloc(elen)) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to allocate strings for SIP domain name");
 			ret = -1;
 			goto clean;
@@ -273,7 +273,7 @@ client6_script(scriptpath, state, optinfo)
 		elen = sizeof (nisserver_str) +
 		    (INET6_ADDRSTRLEN + 1) * nisservers + 1;
 		if ((s = envp[i++] = malloc(elen)) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to allocate strings for NIS servers");
 			ret = -1;
 			goto clean;
@@ -292,7 +292,7 @@ client6_script(scriptpath, state, optinfo)
 	if (nisnamelen) {
 		elen = sizeof (nisname_str) + nisnamelen + 1;
 		if ((s = envp[i++] = malloc(elen)) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to allocate strings for NIS domain name");
 			ret = -1;
 			goto clean;
@@ -310,7 +310,7 @@ client6_script(scriptpath, state, optinfo)
 		elen = sizeof (nispserver_str) +
 		    (INET6_ADDRSTRLEN + 1) * nispservers + 1;
 		if ((s = envp[i++] = malloc(elen)) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to allocate strings for NIS+ servers");
 			ret = -1;
 			goto clean;
@@ -329,7 +329,7 @@ client6_script(scriptpath, state, optinfo)
 	if (nispnamelen) {
 		elen = sizeof (nispname_str) + nispnamelen + 1;
 		if ((s = envp[i++] = malloc(elen)) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to allocate strings for NIS+ domain name");
 			ret = -1;
 			goto clean;
@@ -347,7 +347,7 @@ client6_script(scriptpath, state, optinfo)
 		elen = sizeof (bcmcsserver_str) +
 		    (INET6_ADDRSTRLEN + 1) * bcmcsservers + 1;
 		if ((s = envp[i++] = malloc(elen)) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to allocate strings for BCMC servers");
 			ret = -1;
 			goto clean;
@@ -366,7 +366,7 @@ client6_script(scriptpath, state, optinfo)
 	if (bcmcsnamelen) {
 		elen = sizeof (bcmcsname_str) + bcmcsnamelen + 1;
 		if ((s = envp[i++] = malloc(elen)) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to allocate strings for BCMC domain name");
 			ret = -1;
 			goto clean;
@@ -383,7 +383,7 @@ client6_script(scriptpath, state, optinfo)
 	/* launch the script */
 	pid = fork();
 	if (pid < 0) {
-		dprintf(LOG_ERR, FNAME, "failed to fork: %s", strerror(errno));
+		debug_printf(LOG_ERR, FNAME, "failed to fork: %s", strerror(errno));
 		ret = -1;
 		goto clean;
 	} else if (pid) {
@@ -394,9 +394,9 @@ client6_script(scriptpath, state, optinfo)
 		} while (wpid != pid && wpid > 0);
 
 		if (wpid < 0)
-			dprintf(LOG_ERR, FNAME, "wait: %s", strerror(errno));
+			debug_printf(LOG_ERR, FNAME, "wait: %s", strerror(errno));
 		else {
-			dprintf(LOG_DEBUG, FNAME,
+			debug_printf(LOG_DEBUG, FNAME,
 			    "script \"%s\" terminated", scriptpath);
 		}
 	} else {
@@ -407,7 +407,7 @@ client6_script(scriptpath, state, optinfo)
 		argv[1] = NULL;
 
 		if (safefile(scriptpath)) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "script \"%s\" cannot be executed safely",
 			    scriptpath);
 			exit(1);
@@ -423,7 +423,7 @@ client6_script(scriptpath, state, optinfo)
 
 		execve(scriptpath, argv, envp);
 
-		dprintf(LOG_ERR, FNAME, "child: exec failed: %s",
+		debug_printf(LOG_ERR, FNAME, "child: exec failed: %s",
 		    strerror(errno));
 		exit(0);
 	}
diff --git a/dhcp6relay.c b/dhcp6relay.c
index eb0bce9..99b1227 100644
--- a/dhcp6relay.c
+++ b/dhcp6relay.c
@@ -228,7 +228,7 @@ main(argc, argv)
 
 	relay6_init(argc, argv);
 
-	dprintf(LOG_INFO, FNAME, "dhcp6relay started");
+	debug_printf(LOG_INFO, FNAME, "dhcp6relay started");
 	relay6_loop();
 
 	exit(0);
@@ -246,7 +246,7 @@ make_prefix(pstr0)
 
 	/* make a local copy for safety */
 	if (strlcpy(pstr, pstr0, sizeof (pstr)) >= sizeof (pstr)) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "prefix string too long (maybe bogus): %s", pstr0);
 		return (NULL);
 	}
@@ -256,27 +256,27 @@ make_prefix(pstr0)
 		plen = 128; /* assumes it as a host prefix */
 	else {
 		if (p[1] == '\0') {
-			dprintf(LOG_WARNING, FNAME,
+			debug_printf(LOG_WARNING, FNAME,
 			    "no prefix length (ignored): %s", p + 1);
 			return (NULL);
 		}
 		plen = (int)strtoul(p + 1, &ep, 10);
 		if (*ep != '\0') {
-			dprintf(LOG_WARNING, FNAME,
+			debug_printf(LOG_WARNING, FNAME,
 			    "illegal prefix length (ignored): %s", p + 1);
 			return (NULL);
 		}
 		*p = '\0';
 	}
 	if (inet_pton(AF_INET6, pstr, &paddr) != 1) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "inet_pton failed for %s", pstr);
 		return (NULL);
 	}
 
 	/* allocate a new entry */
 	if ((pent = (struct prefix_list *)malloc(sizeof (*pent))) == NULL) {
-		dprintf(LOG_WARNING, FNAME, "memory allocation failed");
+		debug_printf(LOG_WARNING, FNAME, "memory allocation failed");
 		return (NULL);	/* or abort? */
 	}
 
@@ -318,14 +318,14 @@ relay6_init(int ifnum, char *iflist[])
 	hints.ai_flags = AI_PASSIVE;
 	error = getaddrinfo(serveraddr, DH6PORT_UPSTREAM, &hints, &res);
 	if (error) {
-		dprintf(LOG_ERR, FNAME, "getaddrinfo: %s",
+		debug_printf(LOG_ERR, FNAME, "getaddrinfo: %s",
 		    gai_strerror(error));
 		goto failexit;
 	}
 	if (res->ai_family != PF_INET6 ||
 	    res->ai_addrlen < sizeof (sa6_server)) {
 		/* this should be impossible, but check for safety */
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "getaddrinfo returned a bogus address: %s",
 		    strerror(errno));
 		goto failexit;
@@ -341,7 +341,7 @@ relay6_init(int ifnum, char *iflist[])
 	rmh.msg_iovlen = 1;
 	rmsgctllen = CMSG_SPACE(sizeof (struct in6_pktinfo));
 	if ((rmsgctlbuf = (char *)malloc(rmsgctllen)) == NULL) {
-		dprintf(LOG_ERR, FNAME, "memory allocation failed");
+		debug_printf(LOG_ERR, FNAME, "memory allocation failed");
 		goto failexit;
 	}
 
@@ -355,13 +355,13 @@ relay6_init(int ifnum, char *iflist[])
 	hints.ai_flags = AI_PASSIVE;
 	error = getaddrinfo(NULL, DH6PORT_UPSTREAM, &hints, &res);
 	if (error) {
-		dprintf(LOG_ERR, FNAME, "getaddrinfo: %s",
+		debug_printf(LOG_ERR, FNAME, "getaddrinfo: %s",
 		    gai_strerror(error));
 		goto failexit;
 	}
 	csock = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
 	if (csock < 0) {
-		dprintf(LOG_ERR, FNAME, "socket(csock): %s", strerror(errno));
+		debug_printf(LOG_ERR, FNAME, "socket(csock): %s", strerror(errno));
 		goto failexit;
 	}
 	if (csock > maxfd)
@@ -369,20 +369,20 @@ relay6_init(int ifnum, char *iflist[])
 	on = 1;
 	if (setsockopt(csock, SOL_SOCKET, SO_REUSEPORT,
 	    &on, sizeof(on)) < 0) {
-		dprintf(LOG_ERR, FNAME, "setsockopt(csock, SO_REUSEPORT): %s",
+		debug_printf(LOG_ERR, FNAME, "setsockopt(csock, SO_REUSEPORT): %s",
 		    strerror(errno));
 		goto failexit;
 	}
 #ifdef IPV6_V6ONLY
 	if (setsockopt(csock, IPPROTO_IPV6, IPV6_V6ONLY,
 	    &on, sizeof (on)) < 0) {
-		dprintf(LOG_ERR, FNAME, "setsockopt(csock, IPV6_V6ONLY): %s",
+		debug_printf(LOG_ERR, FNAME, "setsockopt(csock, IPV6_V6ONLY): %s",
 		    strerror(errno));
 		goto failexit;
 	}
 #endif
 	if (bind(csock, res->ai_addr, res->ai_addrlen) < 0) {
-		dprintf(LOG_ERR, FNAME, "bind(csock): %s", strerror(errno));
+		debug_printf(LOG_ERR, FNAME, "bind(csock): %s", strerror(errno));
 		goto failexit;
 	}
 	freeaddrinfo(res);
@@ -390,14 +390,14 @@ relay6_init(int ifnum, char *iflist[])
 #ifdef IPV6_RECVPKTINFO
 	if (setsockopt(csock, IPPROTO_IPV6, IPV6_RECVPKTINFO,
 	    &on, sizeof (on)) < 0) {
-		dprintf(LOG_ERR, FNAME, "setsockopt(IPV6_RECVPKTINFO): %s",
+		debug_printf(LOG_ERR, FNAME, "setsockopt(IPV6_RECVPKTINFO): %s",
 		    strerror(errno));
 		goto failexit;
 	}
 #else
 	if (setsockopt(csock, IPPROTO_IPV6, IPV6_PKTINFO,
 	    &on, sizeof (on)) < 0) {
-		dprintf(LOG_ERR, FNAME, "setsockopt(IPV6_PKTINFO): %s",
+		debug_printf(LOG_ERR, FNAME, "setsockopt(IPV6_PKTINFO): %s",
 		    strerror(errno));
 		goto failexit;
 	}
@@ -406,7 +406,7 @@ relay6_init(int ifnum, char *iflist[])
 	hints.ai_flags = 0;
 	error = getaddrinfo(DH6ADDR_ALLAGENT, 0, &hints, &res2);
 	if (error) {
-		dprintf(LOG_ERR, FNAME, "getaddrinfo: %s",
+		debug_printf(LOG_ERR, FNAME, "getaddrinfo: %s",
 		    gai_strerror(error));
 		goto failexit;
 	}
@@ -422,21 +422,21 @@ relay6_init(int ifnum, char *iflist[])
 
 		ifd = (struct ifid_list *)malloc(sizeof (*ifd));
 		if (ifd == NULL) {
-			dprintf(LOG_WARNING, FNAME,
+			debug_printf(LOG_WARNING, FNAME,
 			    "memory allocation failed");
 			goto failexit;
 		}
 		memset(ifd, 0, sizeof (*ifd));
 		ifd->ifid = if_nametoindex(ifp);
 		if (ifd->ifid == 0) {
-			dprintf(LOG_ERR, FNAME, "invalid interface %s", ifp);
+			debug_printf(LOG_ERR, FNAME, "invalid interface %s", ifp);
 			goto failexit;
 		}
 		mreq6.ipv6mr_interface = ifd->ifid;
 
 		if (setsockopt(csock, IPPROTO_IPV6, IPV6_JOIN_GROUP,
 		    &mreq6, sizeof (mreq6))) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "setsockopt(csock, IPV6_JOIN_GROUP): %s",
 			     strerror(errno));
 			goto failexit;
@@ -451,7 +451,7 @@ relay6_init(int ifnum, char *iflist[])
 	 */
 	relayifid = if_nametoindex(relaydevice);
 	if (relayifid == 0)
-		dprintf(LOG_ERR, FNAME, "invalid interface %s", relaydevice);
+		debug_printf(LOG_ERR, FNAME, "invalid interface %s", relaydevice);
 	/*
 	 * We are not really sure if we need to listen on the downstream
 	 * port to receive packets from servers.  We'll need to clarify the
@@ -460,14 +460,14 @@ relay6_init(int ifnum, char *iflist[])
 	hints.ai_flags = AI_PASSIVE;
 	error = getaddrinfo(boundaddr, DH6PORT_DOWNSTREAM, &hints, &res);
 	if (error) {
-		dprintf(LOG_ERR, FNAME, "getaddrinfo: %s",
+		debug_printf(LOG_ERR, FNAME, "getaddrinfo: %s",
 		    gai_strerror(error));
 		goto failexit;
 	}
 	memcpy(&sa6_client, res->ai_addr, sizeof (sa6_client));
 	ssock = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
 	if (ssock < 0) {
-		dprintf(LOG_ERR, FNAME, "socket(outsock): %s",
+		debug_printf(LOG_ERR, FNAME, "socket(outsock): %s",
 		    strerror(error));
 		goto failexit;
 	}
@@ -480,7 +480,7 @@ relay6_init(int ifnum, char *iflist[])
 	 */
 	if (setsockopt(ssock, SOL_SOCKET, SO_REUSEPORT,
 	    &on, sizeof (on)) < 0) {
-		dprintf(LOG_ERR, FNAME, "setsockopt(ssock, SO_REUSEPORT): %s",
+		debug_printf(LOG_ERR, FNAME, "setsockopt(ssock, SO_REUSEPORT): %s",
 		    strerror(errno));
 		goto failexit;
 	}
@@ -488,13 +488,13 @@ relay6_init(int ifnum, char *iflist[])
 #ifdef IPV6_V6ONLY
 	if (setsockopt(ssock, IPPROTO_IPV6, IPV6_V6ONLY,
 	    &on, sizeof (on)) < 0) {
-		dprintf(LOG_ERR, FNAME, "setsockopt(ssock, IPV6_V6ONLY): %s",
+		debug_printf(LOG_ERR, FNAME, "setsockopt(ssock, IPV6_V6ONLY): %s",
 		    strerror(errno));
 		goto failexit;
 	}
 #endif
 	if (bind(ssock, res->ai_addr, res->ai_addrlen) < 0) {
-		dprintf(LOG_ERR, FNAME, "bind(ssock): %s", strerror(errno));
+		debug_printf(LOG_ERR, FNAME, "bind(ssock): %s", strerror(errno));
 		goto failexit;
 	}
 	freeaddrinfo(res);
@@ -503,21 +503,21 @@ relay6_init(int ifnum, char *iflist[])
 #ifdef IPV6_RECVPKTINFO
 	if (setsockopt(ssock, IPPROTO_IPV6, IPV6_RECVPKTINFO,
 	    &on, sizeof (on)) < 0) {
-		dprintf(LOG_ERR, FNAME, "setsockopt(IPV6_RECVPKTINFO): %s",
+		debug_printf(LOG_ERR, FNAME, "setsockopt(IPV6_RECVPKTINFO): %s",
 		    strerror(errno));
 		goto failexit;
 	}
 #else
 	if (setsockopt(ssock, IPPROTO_IPV6, IPV6_PKTINFO,
 	    &on, sizeof (on)) < 0) {
-		dprintf(LOG_ERR, FNAME, "setsockopt(IPV6_PKTINFO): %s",
+		debug_printf(LOG_ERR, FNAME, "setsockopt(IPV6_PKTINFO): %s",
 		    strerror(errno));
 		goto failexit;
 	}
 #endif
 
 	if (signal(SIGTERM, relay6_signal) == SIG_ERR) {
-		dprintf(LOG_WARNING, FNAME, "failed to set signal: %s",
+		debug_printf(LOG_WARNING, FNAME, "failed to set signal: %s",
 		    strerror(errno));
 		exit(1);
 	}
@@ -605,15 +605,15 @@ relay6_recv(s, fromclient)
 	rmh.msg_namelen = sizeof (from);
 
 	if ((len = recvmsg(s, &rmh, 0)) < 0) {
-		dprintf(LOG_WARNING, FNAME, "recvmsg: %s", strerror(errno));
+		debug_printf(LOG_WARNING, FNAME, "recvmsg: %s", strerror(errno));
 		return;
 	}
 
-	dprintf(LOG_DEBUG, FNAME, "from %s, size %d",
+	debug_printf(LOG_DEBUG, FNAME, "from %s, size %d",
 	    addr2str((struct sockaddr *)&from), len);
 
 	if (((struct sockaddr *)&from)->sa_family != AF_INET6) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "non-IPv6 packet is received (AF %d) ",
 		    ((struct sockaddr *)&from)->sa_family);
 		return;
@@ -632,7 +632,7 @@ relay6_recv(s, fromclient)
 		}
 	}
 	if (pi == NULL) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "failed to get the arrival interface");
 		return;
 	}
@@ -649,7 +649,7 @@ relay6_recv(s, fromclient)
 	if (ifd == NULL && pi->ipi6_ifindex != relayifid)
 		return;
 	if (if_indextoname(pi->ipi6_ifindex, ifname) == NULL) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "if_indextoname(id = %d): %s",
 		    pi->ipi6_ifindex, strerror(errno));
 		return;
@@ -657,12 +657,12 @@ relay6_recv(s, fromclient)
 
 	/* packet validation */
 	if (len < sizeof (*dh6)) {
-		dprintf(LOG_INFO, FNAME, "short packet (%d bytes)", len);
+		debug_printf(LOG_INFO, FNAME, "short packet (%d bytes)", len);
 		return;
 	}
 
 	dh6 = (struct dhcp6 *)rdatabuf;
-	dprintf(LOG_DEBUG, FNAME, "received %s from %s",
+	debug_printf(LOG_DEBUG, FNAME, "received %s from %s",
 	    dhcp6msgstr(dh6->dh6_msgtype), addr2str((struct sockaddr *)&from));
 
 	/*
@@ -694,7 +694,7 @@ relay6_recv(s, fromclient)
 			    (struct sockaddr *)&from);
 			break;
 		default:
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "unexpected message (%s) on the client side "
 			    "from %s", dhcp6msgstr(dh6->dh6_msgtype),
 			    addr2str((struct sockaddr *)&from));
@@ -702,7 +702,7 @@ relay6_recv(s, fromclient)
 		}
 	} else {
 		if (dh6->dh6_msgtype != DH6_RELAY_REPLY) {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "unexpected message (%s) on the server side"
 			    "from %s", dhcp6msgstr(dh6->dh6_msgtype),
 			    addr2str((struct sockaddr *)&from));
@@ -787,7 +787,7 @@ relay_to_server(dh6, len, from, ifname, ifid)
 
 	/* Relay message */
 	if ((optinfo.relaymsg_msg = malloc(len)) == NULL) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "failed to allocate memory to copy the original packet: "
 		    "%s", strerror(errno));
 		goto out;
@@ -797,7 +797,7 @@ relay_to_server(dh6, len, from, ifname, ifid)
 
 	/* Interface-id.  We always use this option. */
 	if ((optinfo.ifidopt_id = malloc(sizeof (ifid))) == NULL) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "failed to allocate memory for IFID: %s", strerror(errno));
 		goto out;
 	}
@@ -823,7 +823,7 @@ relay_to_server(dh6, len, from, ifname, ifid)
 			break;
 	}
 	if (p == NULL) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to find a global address on %s", ifname);
 
 		/*
@@ -848,7 +848,7 @@ relay_to_server(dh6, len, from, ifname, ifid)
 		 * [RFC3315 Section 20.1.2]
 		 */
 		if (dh6relay0->dh6relay_hcnt >= DHCP6_RELAY_HOP_COUNT_LIMIT) {
-			dprintf(LOG_INFO, FNAME, "too many relay forwardings");
+			debug_printf(LOG_INFO, FNAME, "too many relay forwardings");
 			goto out;
 		}
 
@@ -871,7 +871,7 @@ relay_to_server(dh6, len, from, ifname, ifid)
 	    (struct dhcp6opt *)(dh6relay + 1),
 	    (struct dhcp6opt *)(relaybuf + sizeof (relaybuf)),
 	    &optinfo)) < 0) {
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 		    "failed to construct relay options");
 		goto out;
 	}
@@ -892,22 +892,22 @@ relay_to_server(dh6, len, from, ifname, ifid)
 		pktinfo.ipi6_ifindex = relayifid;
 		if (make_msgcontrol(&mh, ctlbuf, sizeof (ctlbuf),
 		    &pktinfo, mhops)) {
-			dprintf(LOG_WARNING, FNAME,
+			debug_printf(LOG_WARNING, FNAME,
 			    "failed to make message control data");
 			goto out;
 		}
 	}
 
 	if ((cc = sendmsg(ssock, &mh, 0)) < 0) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "sendmsg %s failed: %s",
 		    addr2str((struct sockaddr *)&sa6_server), strerror(errno));
 	} else if (cc != relaylen) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "failed to send a complete packet to %s",
 		    addr2str((struct sockaddr *)&sa6_server));
 	} else {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "relay a message to a server %s",
 		    addr2str((struct sockaddr *)&sa6_server));
 	}
@@ -934,7 +934,7 @@ relay_to_client(dh6relay, len, from)
 	static struct iovec iov[2];
 	char ctlbuf[CMSG_SPACE(sizeof (struct in6_pktinfo))];
 
-	dprintf(LOG_DEBUG, FNAME,
+	debug_printf(LOG_DEBUG, FNAME,
 	    "dhcp6 relay reply: hop=%d, linkaddr=%s, peeraddr=%s",
 	    dh6relay->dh6relay_hcnt,
 	    in6addr2str(&dh6relay->dh6relay_linkaddr, 0),
@@ -946,20 +946,20 @@ relay_to_client(dh6relay, len, from)
 	dhcp6_init_options(&optinfo);
 	if (dhcp6_get_options((struct dhcp6opt *)(dh6relay + 1),
 	    (struct dhcp6opt *)((char *)dh6relay + len), &optinfo) < 0) {
-		dprintf(LOG_INFO, FNAME, "failed to parse options");
+		debug_printf(LOG_INFO, FNAME, "failed to parse options");
 		return;
 	}
 
 	/* A relay reply message must include a relay message option */
 	if (optinfo.relaymsg_msg == NULL) {
-		dprintf(LOG_INFO, FNAME, "relay reply message from %s "
+		debug_printf(LOG_INFO, FNAME, "relay reply message from %s "
 		    "without a relay message", addr2str(from));
 		goto out;
 	}
 
 	/* minimum validation for the inner message */
 	if (optinfo.relaymsg_len < sizeof (struct dhcp6)) {
-		dprintf(LOG_INFO, FNAME, "short relay message from %s",
+		debug_printf(LOG_INFO, FNAME, "short relay message from %s",
 		    addr2str(from));
 		goto out;
 	}
@@ -971,7 +971,7 @@ relay_to_client(dh6relay, len, from)
 	ifid = 0;
 	if (optinfo.ifidopt_id) {
 		if (optinfo.ifidopt_len != sizeof (ifid)) {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "unexpected length (%d) for Interface ID from %s",
 			    optinfo.ifidopt_len, addr2str(from));
 			goto out;
@@ -981,13 +981,13 @@ relay_to_client(dh6relay, len, from)
 
 			/* validation for ID */
 			if ((if_indextoname(ifid, ifnamebuf)) == NULL) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "invalid interface ID: %x", ifid);
 				goto out;
 			}
 		}
 	} else {
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 		    "Interface ID is not included from %s", addr2str(from));
 		/*
 		 * the responding server should be buggy, but we deal with it.
@@ -1005,7 +1005,7 @@ relay_to_client(dh6relay, len, from)
 	}
 
 	if (ifid == 0) {
-		dprintf(LOG_INFO, FNAME, "failed to determine relay link");
+		debug_printf(LOG_INFO, FNAME, "failed to determine relay link");
 		goto out;
 	}
 
@@ -1036,22 +1036,22 @@ relay_to_client(dh6relay, len, from)
 	memset(&pktinfo, 0, sizeof (pktinfo));
 	pktinfo.ipi6_ifindex = ifid;
 	if (make_msgcontrol(&mh, ctlbuf, sizeof (ctlbuf), &pktinfo, 0)) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "failed to make message control data");
 		goto out;
 	}
 
 	/* send packet */
 	if ((cc = sendmsg(csock, &mh, 0)) < 0) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "sendmsg to %s failed: %s",
 		    addr2str((struct sockaddr *)&peer), strerror(errno));
 	} else if (cc != optinfo.relaymsg_len) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "failed to send a complete packet to %s",
 		    addr2str((struct sockaddr *)&peer));
 	} else {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "relay a message to a client %s",
 		    addr2str((struct sockaddr *)&peer));
 	}
diff --git a/dhcp6relay_script.c b/dhcp6relay_script.c
index 82f5eab..7444b54 100644
--- a/dhcp6relay_script.c
+++ b/dhcp6relay_script.c
@@ -87,7 +87,7 @@ relay6_script(scriptpath, client, dh6, len)
 	/* only replies are interesting */
 	if (dh6->dh6_msgtype != DH6_REPLY) {
 		if (dh6->dh6_msgtype != DH6_ADVERTISE) {
-			dprintf(LOG_INFO, FNAME, "forward msg#%d to client?",
+			debug_printf(LOG_INFO, FNAME, "forward msg#%d to client?",
 			    dh6->dh6_msgtype);
 			return -1;
 		}
@@ -99,7 +99,7 @@ relay6_script(scriptpath, client, dh6, len)
 	dhcp6_init_options(&optinfo);
 	if (dhcp6_get_options((struct dhcp6opt *)(dh6 + 1), optend,
 	    &optinfo) < 0) {
-		dprintf(LOG_INFO, FNAME, "failed to parse options");
+		debug_printf(LOG_INFO, FNAME, "failed to parse options");
 		return -1;
 	}
 
@@ -118,7 +118,7 @@ relay6_script(scriptpath, client, dh6, len)
 
 	/* allocate an environments array */
 	if ((envp = malloc(sizeof (char *) * envc)) == NULL) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to allocate environment buffer");
 		dhcp6_clear_options(&optinfo);
 		return -1;
@@ -132,14 +132,14 @@ relay6_script(scriptpath, client, dh6, len)
 	/* address */
 	t = addr2str((struct sockaddr *) client);
 	if (t == NULL) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to get address of client");
 		ret = -1;
 		goto clean;
 	}
 	elen = sizeof (client_str) + 1 + strlen(t) + 1;
 	if ((s = envp[i++] = malloc(elen)) == NULL) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to allocate string for client");
 		ret = -1;
 		goto clean;
@@ -167,7 +167,7 @@ relay6_script(scriptpath, client, dh6, len)
 	/* launch the script */
 	pid = fork();
 	if (pid < 0) {
-		dprintf(LOG_ERR, FNAME, "failed to fork: %s", strerror(errno));
+		debug_printf(LOG_ERR, FNAME, "failed to fork: %s", strerror(errno));
 		ret = -1;
 		goto clean;
 	} else if (pid) {
@@ -178,9 +178,9 @@ relay6_script(scriptpath, client, dh6, len)
 		} while (wpid != pid && wpid > 0);
 
 		if (wpid < 0)
-			dprintf(LOG_ERR, FNAME, "wait: %s", strerror(errno));
+			debug_printf(LOG_ERR, FNAME, "wait: %s", strerror(errno));
 		else {
-			dprintf(LOG_DEBUG, FNAME,
+			debug_printf(LOG_DEBUG, FNAME,
 			    "script \"%s\" terminated", scriptpath);
 		}
 	} else {
@@ -191,7 +191,7 @@ relay6_script(scriptpath, client, dh6, len)
 		argv[1] = NULL;
 
 		if (safefile(scriptpath)) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "script \"%s\" cannot be executed safely",
 			    scriptpath);
 			exit(1);
@@ -208,7 +208,7 @@ relay6_script(scriptpath, client, dh6, len)
 
 		execve(scriptpath, argv, envp);
 
-		dprintf(LOG_ERR, FNAME, "child: exec failed: %s",
+		debug_printf(LOG_ERR, FNAME, "child: exec failed: %s",
 		    strerror(errno));
 		exit(0);
 	}
@@ -254,12 +254,12 @@ iapd2str(num, iav)
 			break;
 
 		default:
-			dprintf(LOG_ERR, FNAME, "impossible subopt");
+			debug_printf(LOG_ERR, FNAME, "impossible subopt");
 		}
 	}
 
 	if ((r = strdup(s)) == NULL)
-		dprintf(LOG_ERR, FNAME, "failed to allocate iapd_%d", num);
+		debug_printf(LOG_ERR, FNAME, "failed to allocate iapd_%d", num);
 	return r;
 }
 
@@ -294,11 +294,11 @@ iana2str(num, iav)
 			break;
 
 		default:
-			dprintf(LOG_ERR, FNAME, "impossible subopt");
+			debug_printf(LOG_ERR, FNAME, "impossible subopt");
 		}
 	}
 
 	if ((r = strdup(s)) == NULL)
-		dprintf(LOG_ERR, FNAME, "failed to allocate iana_%d", num);
+		debug_printf(LOG_ERR, FNAME, "failed to allocate iana_%d", num);
 	return r;
 }
diff --git a/dhcp6s.c b/dhcp6s.c
index 494e571..ff8b17d 100644
--- a/dhcp6s.c
+++ b/dhcp6s.c
@@ -311,7 +311,7 @@ main(argc, argv)
 		exit(1);
 
 	if ((cfparse(conffile)) != 0) {
-		dprintf(LOG_ERR, FNAME, "failed to parse configuration file");
+		debug_printf(LOG_ERR, FNAME, "failed to parse configuration file");
 		exit(1);
 	}
 
@@ -335,7 +335,7 @@ main(argc, argv)
 	/* prohibit a mixture of old and new style of DNS server config */
 	if (!TAILQ_EMPTY(&arg_dnslist)) {
 		if (!TAILQ_EMPTY(&dnslist)) {
-			dprintf(LOG_INFO, FNAME, "do not specify DNS servers "
+			debug_printf(LOG_INFO, FNAME, "do not specify DNS servers "
 			    "both by command line and by configuration file.");
 			exit(1);
 		}
@@ -374,24 +374,24 @@ server6_init()
 
 	TAILQ_INIT(&dhcp6_binding_head);
 	if (lease_init() != 0) {
-		dprintf(LOG_ERR, FNAME, "failed to initialize the lease table");
+		debug_printf(LOG_ERR, FNAME, "failed to initialize the lease table");
 		exit(1);
 	}
 
 	ifidx = if_nametoindex(device);
 	if (ifidx == 0) {
-		dprintf(LOG_ERR, FNAME, "invalid interface %s", device);
+		debug_printf(LOG_ERR, FNAME, "invalid interface %s", device);
 		exit(1);
 	}
 
 	/* get our DUID */
 	if (get_duid(DUID_FILE, &server_duid)) {
-		dprintf(LOG_ERR, FNAME, "failed to get a DUID");
+		debug_printf(LOG_ERR, FNAME, "failed to get a DUID");
 		exit(1);
 	}
 
 	if (dhcp6_ctl_authinit(ctlkeyfile, &ctlkey, &ctldigestlen) != 0) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to initialize control message authentication");
 		/* run the server anyway */
 	}
@@ -403,7 +403,7 @@ server6_init()
 	rmh.msg_iovlen = 1;
 	rmsgctllen = CMSG_SPACE(sizeof(struct in6_pktinfo));
 	if ((rmsgctlbuf = (char *)malloc(rmsgctllen)) == NULL) {
-		dprintf(LOG_ERR, FNAME, "memory allocation failed");
+		debug_printf(LOG_ERR, FNAME, "memory allocation failed");
 		exit(1);
 	}
 
@@ -415,32 +415,32 @@ server6_init()
 	hints.ai_flags = AI_PASSIVE;
 	error = getaddrinfo(NULL, DH6PORT_UPSTREAM, &hints, &res);
 	if (error) {
-		dprintf(LOG_ERR, FNAME, "getaddrinfo: %s",
+		debug_printf(LOG_ERR, FNAME, "getaddrinfo: %s",
 		    gai_strerror(error));
 		exit(1);
 	}
 	insock = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
 	if (insock < 0) {
-		dprintf(LOG_ERR, FNAME, "socket(insock): %s",
+		debug_printf(LOG_ERR, FNAME, "socket(insock): %s",
 		    strerror(errno));
 		exit(1);
 	}
 	if (setsockopt(insock, SOL_SOCKET, SO_REUSEPORT, &on,
 		       sizeof(on)) < 0) {
-		dprintf(LOG_ERR, FNAME, "setsockopt(insock, SO_REUSEPORT): %s",
+		debug_printf(LOG_ERR, FNAME, "setsockopt(insock, SO_REUSEPORT): %s",
 		    strerror(errno));
 		exit(1);
 	}
 	if (setsockopt(insock, SOL_SOCKET, SO_REUSEADDR, &on,
 		       sizeof(on)) < 0) {
-		dprintf(LOG_ERR, FNAME, "setsockopt(insock, SO_REUSEADDR): %s",
+		debug_printf(LOG_ERR, FNAME, "setsockopt(insock, SO_REUSEADDR): %s",
 		    strerror(errno));
 		exit(1);
 	}
 #ifdef IPV6_RECVPKTINFO
 	if (setsockopt(insock, IPPROTO_IPV6, IPV6_RECVPKTINFO, &on,
 		       sizeof(on)) < 0) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "setsockopt(inbound, IPV6_RECVPKTINFO): %s",
 		    strerror(errno));
 		exit(1);
@@ -448,7 +448,7 @@ server6_init()
 #else
 	if (setsockopt(insock, IPPROTO_IPV6, IPV6_PKTINFO, &on,
 		       sizeof(on)) < 0) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "setsockopt(inbound, IPV6_PKTINFO): %s",
 		    strerror(errno));
 		exit(1);
@@ -457,13 +457,13 @@ server6_init()
 #ifdef IPV6_V6ONLY
 	if (setsockopt(insock, IPPROTO_IPV6, IPV6_V6ONLY,
 	    &on, sizeof(on)) < 0) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "setsockopt(inbound, IPV6_V6ONLY): %s", strerror(errno));
 		exit(1);
 	}
 #endif
 	if (bind(insock, res->ai_addr, res->ai_addrlen) < 0) {
-		dprintf(LOG_ERR, FNAME, "bind(insock): %s", strerror(errno));
+		debug_printf(LOG_ERR, FNAME, "bind(insock): %s", strerror(errno));
 		exit(1);
 	}
 	freeaddrinfo(res);
@@ -471,7 +471,7 @@ server6_init()
 	hints.ai_flags = 0;
 	error = getaddrinfo(DH6ADDR_ALLAGENT, DH6PORT_UPSTREAM, &hints, &res2);
 	if (error) {
-		dprintf(LOG_ERR, FNAME, "getaddrinfo: %s",
+		debug_printf(LOG_ERR, FNAME, "getaddrinfo: %s",
 		    gai_strerror(error));
 		exit(1);
 	}
@@ -482,7 +482,7 @@ server6_init()
 	    sizeof(mreq6.ipv6mr_multiaddr));
 	if (setsockopt(insock, IPPROTO_IPV6, IPV6_JOIN_GROUP,
 	    &mreq6, sizeof(mreq6))) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "setsockopt(insock, IPV6_JOIN_GROUP): %s",
 		    strerror(errno));
 		exit(1);
@@ -493,7 +493,7 @@ server6_init()
 	error = getaddrinfo(DH6ADDR_ALLSERVER, DH6PORT_UPSTREAM,
 			    &hints, &res2);
 	if (error) {
-		dprintf(LOG_ERR, FNAME, "getaddrinfo: %s",
+		debug_printf(LOG_ERR, FNAME, "getaddrinfo: %s",
 		    gai_strerror(error));
 		exit(1);
 	}
@@ -504,7 +504,7 @@ server6_init()
 	    sizeof(mreq6.ipv6mr_multiaddr));
 	if (setsockopt(insock, IPPROTO_IPV6, IPV6_JOIN_GROUP,
 	    &mreq6, sizeof(mreq6))) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "setsockopt(insock, IPV6_JOIN_GROUP): %s",
 		    strerror(errno));
 		exit(1);
@@ -514,20 +514,20 @@ server6_init()
 	hints.ai_flags = 0;
 	error = getaddrinfo(NULL, DH6PORT_DOWNSTREAM, &hints, &res);
 	if (error) {
-		dprintf(LOG_ERR, FNAME, "getaddrinfo: %s",
+		debug_printf(LOG_ERR, FNAME, "getaddrinfo: %s",
 		    gai_strerror(error));
 		exit(1);
 	}
 	outsock = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
 	if (outsock < 0) {
-		dprintf(LOG_ERR, FNAME, "socket(outsock): %s",
+		debug_printf(LOG_ERR, FNAME, "socket(outsock): %s",
 		    strerror(errno));
 		exit(1);
 	}
 	/* set outgoing interface of multicast packets for DHCP reconfig */
 	if (setsockopt(outsock, IPPROTO_IPV6, IPV6_MULTICAST_IF,
 	    &ifidx, sizeof(ifidx)) < 0) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "setsockopt(outsock, IPV6_MULTICAST_IF): %s",
 		    strerror(errno));
 		exit(1);
@@ -535,7 +535,7 @@ server6_init()
 #if !defined(__linux__) && !defined(__sun__)
 	/* make the socket write-only */
 	if (shutdown(outsock, 0)) {
-		dprintf(LOG_ERR, FNAME, "shutdown(outbound, 0): %s",
+		debug_printf(LOG_ERR, FNAME, "shutdown(outbound, 0): %s",
 		    strerror(errno));
 		exit(1);
 	}
@@ -548,7 +548,7 @@ server6_init()
 	hints.ai_protocol = IPPROTO_UDP;
 	error = getaddrinfo("::", DH6PORT_DOWNSTREAM, &hints, &res);
 	if (error) {
-		dprintf(LOG_ERR, FNAME, "getaddrinfo: %s",
+		debug_printf(LOG_ERR, FNAME, "getaddrinfo: %s",
 		    gai_strerror(error));
 		exit(1);
 	}
@@ -563,7 +563,7 @@ server6_init()
 	hints.ai_protocol = IPPROTO_UDP;
 	error = getaddrinfo("::", DH6PORT_UPSTREAM, &hints, &res);
 	if (error) {
-		dprintf(LOG_ERR, FNAME, "getaddrinfo: %s",
+		debug_printf(LOG_ERR, FNAME, "getaddrinfo: %s",
 		    gai_strerror(error));
 		exit(1);
 	}
@@ -574,16 +574,16 @@ server6_init()
 
 	/* set up control socket */
 	if (ctlkey == NULL)
-		dprintf(LOG_NOTICE, FNAME, "skip opening control port");
+		debug_printf(LOG_NOTICE, FNAME, "skip opening control port");
 	else if (dhcp6_ctl_init(ctladdr, ctlport,
 	    DHCP6CTL_DEF_COMMANDQUEUELEN, &ctlsock)) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "failed to initialize control channel");
 		exit(1);
 	}
 
 	if (signal(SIGTERM, server6_signal) == SIG_ERR) {
-		dprintf(LOG_WARNING, FNAME, "failed to set signal: %s",
+		debug_printf(LOG_WARNING, FNAME, "failed to set signal: %s",
 		    strerror(errno));
 		exit(1);
 	}
@@ -627,7 +627,7 @@ server6_mainloop()
 		switch (ret) {
 		case -1:
 			if (errno != EINTR) {
-				dprintf(LOG_ERR, FNAME, "select: %s",
+				debug_printf(LOG_ERR, FNAME, "select: %s",
 				    strerror(errno));
 				exit(1);
 			}
@@ -714,31 +714,31 @@ server6_do_ctlcommand(buf, len)
 	commandlen = (int)(ntohs(ctlhead->len));
 	version = ntohs(ctlhead->version);
 	if (len != sizeof(struct dhcp6ctl) + commandlen) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "assumption failure: command length mismatch");
 		return (DHCP6CTL_R_FAILURE);
 	}
 
 	/* replay protection and message authentication */
 	if ((now = time(NULL)) < 0) {
-		dprintf(LOG_ERR, FNAME, "failed to get current time: %s",
+		debug_printf(LOG_ERR, FNAME, "failed to get current time: %s",
 		    strerror(errno));
 		return (DHCP6CTL_R_FAILURE);
 	}
 	ts0 = (u_int32_t)now;
 	ts = ntohl(ctlhead->timestamp);
 	if (ts + CTLSKEW < ts0 || (ts - CTLSKEW) > ts0) {
-		dprintf(LOG_INFO, FNAME, "timestamp is out of range");
+		debug_printf(LOG_INFO, FNAME, "timestamp is out of range");
 		return (DHCP6CTL_R_FAILURE);
 	}
 
 	if (ctlkey == NULL) {	/* should not happen!! */
-		dprintf(LOG_ERR, FNAME, "no secret key for control channel");
+		debug_printf(LOG_ERR, FNAME, "no secret key for control channel");
 		return (DHCP6CTL_R_FAILURE);
 	}
 	if (dhcp6_verify_mac(buf, len, DHCP6CTL_AUTHPROTO_UNDEF,
 	    DHCP6CTL_AUTHALG_HMACMD5, sizeof(*ctlhead), ctlkey) != 0) {
-		dprintf(LOG_INFO, FNAME, "authentication failure");
+		debug_printf(LOG_INFO, FNAME, "authentication failure");
 		return (DHCP6CTL_R_FAILURE);
 	}
 
@@ -746,14 +746,14 @@ server6_do_ctlcommand(buf, len)
 	commandlen -= ctldigestlen;
 
 	if (version > DHCP6CTL_VERSION) {
-		dprintf(LOG_INFO, FNAME, "unsupported version: %d", version);
+		debug_printf(LOG_INFO, FNAME, "unsupported version: %d", version);
 		return (DHCP6CTL_R_FAILURE);
 	}
 
 	switch (command) {
 	case DHCP6CTL_COMMAND_RELOAD:
 		if (commandlen != 0) {
-			dprintf(LOG_INFO, FNAME, "invalid command length "
+			debug_printf(LOG_INFO, FNAME, "invalid command length "
 			    "for reload: %d", commandlen);
 			return (DHCP6CTL_R_DONE);
 		}
@@ -761,7 +761,7 @@ server6_do_ctlcommand(buf, len)
 		break;
 	case DHCP6CTL_COMMAND_STOP:
 		if (commandlen != 0) {
-			dprintf(LOG_INFO, FNAME, "invalid command length "
+			debug_printf(LOG_INFO, FNAME, "invalid command length "
 			    "for stop: %d", commandlen);
 			return (DHCP6CTL_R_DONE);
 		}
@@ -771,7 +771,7 @@ server6_do_ctlcommand(buf, len)
 		if (get_val32(&bp, &commandlen, &p32))
 			return (DHCP6CTL_R_FAILURE);
 		if (p32 != DHCP6CTL_BINDING) {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "unknown remove target: %ul", p32);
 			return (DHCP6CTL_R_FAILURE);
 		}
@@ -779,7 +779,7 @@ server6_do_ctlcommand(buf, len)
 		if (get_val32(&bp, &commandlen, &p32))
 			return (DHCP6CTL_R_FAILURE);
 		if (p32 != DHCP6CTL_BINDING_IA) {
-			dprintf(LOG_INFO, FNAME, "unknown binding type: %ul",
+			debug_printf(LOG_INFO, FNAME, "unknown binding type: %ul",
 			    p32);
 			return (DHCP6CTL_R_FAILURE);
 		}
@@ -788,7 +788,7 @@ server6_do_ctlcommand(buf, len)
 			return (DHCP6CTL_R_FAILURE);
 		if (ntohl(iaspec.type) != DHCP6CTL_IA_PD &&
 		    ntohl(iaspec.type) != DHCP6CTL_IA_NA) {
-			dprintf(LOG_INFO, FNAME, "unknown IA type: %ul",
+			debug_printf(LOG_INFO, FNAME, "unknown IA type: %ul",
 			    ntohl(iaspec.type));
 			return (DHCP6CTL_R_FAILURE);
 		}
@@ -796,7 +796,7 @@ server6_do_ctlcommand(buf, len)
 		duidlen = ntohl(iaspec.duidlen);
 
 		if (duidlen > commandlen) {
-			dprintf(LOG_INFO, FNAME, "DUID length mismatch");
+			debug_printf(LOG_INFO, FNAME, "DUID length mismatch");
 			return (DHCP6CTL_R_FAILURE);
 		}
 
@@ -809,7 +809,7 @@ server6_do_ctlcommand(buf, len)
 			binding = find_binding(&duid, DHCP6_BINDING_IA,
 			    DHCP6_LISTVAL_IANA, iaid);
 			if (binding == NULL) {
-				dprintf(LOG_INFO, FNAME, "no such binding");
+				debug_printf(LOG_INFO, FNAME, "no such binding");
 				return (DHCP6CTL_R_FAILURE);
 			}
 		}
@@ -817,7 +817,7 @@ server6_do_ctlcommand(buf, len)
 		    
 		break;
 	default:
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 		    "unknown control command: %d (len=%d)",
 		    (int)command, commandlen);
 		return (DHCP6CTL_R_FAILURE);
@@ -831,12 +831,12 @@ server6_reload()
 {
 	/* reload the configuration file */
 	if (cfparse(conffile) != 0) {
-		dprintf(LOG_WARNING, FNAME,
+		debug_printf(LOG_WARNING, FNAME,
 		    "failed to reload configuration file");
 		return;
 	}
 
-	dprintf(LOG_NOTICE, FNAME, "server reloaded");
+	debug_printf(LOG_NOTICE, FNAME, "server reloaded");
 
 	return;
 }
@@ -846,7 +846,7 @@ server6_stop()
 {
 	/* Right now, we simply stop running */
 
-	dprintf(LOG_NOTICE, FNAME, "exiting");
+	debug_printf(LOG_NOTICE, FNAME, "exiting");
 
 	exit (0);
 }
@@ -885,7 +885,7 @@ server6_recv(s)
 	mhdr.msg_controllen = sizeof(cmsgbuf);
 
 	if ((len = recvmsg(insock, &mhdr, 0)) < 0) {
-		dprintf(LOG_ERR, FNAME, "recvmsg: %s", strerror(errno));
+		debug_printf(LOG_ERR, FNAME, "recvmsg: %s", strerror(errno));
 		return;
 	}
 	fromlen = mhdr.msg_namelen;
@@ -899,7 +899,7 @@ server6_recv(s)
 		}
 	}
 	if (pi == NULL) {
-		dprintf(LOG_NOTICE, FNAME, "failed to get packet info");
+		debug_printf(LOG_NOTICE, FNAME, "failed to get packet info");
 		return;
 	}
 	/*
@@ -910,7 +910,7 @@ server6_recv(s)
 	if (pi->ipi6_ifindex != ifidx)
 		return;
 	if ((ifp = find_ifconfbyid((unsigned int)pi->ipi6_ifindex)) == NULL) {
-		dprintf(LOG_INFO, FNAME, "unexpected interface (%d)",
+		debug_printf(LOG_INFO, FNAME, "unexpected interface (%d)",
 		    (unsigned int)pi->ipi6_ifindex);
 		return;
 	}
@@ -918,11 +918,11 @@ server6_recv(s)
 	dh6 = (struct dhcp6 *)rdatabuf;
 
 	if (len < sizeof(*dh6)) {
-		dprintf(LOG_INFO, FNAME, "short packet (%d bytes)", len);
+		debug_printf(LOG_INFO, FNAME, "short packet (%d bytes)", len);
 		return;
 	}
 
-	dprintf(LOG_DEBUG, FNAME, "received %s from %s",
+	debug_printf(LOG_DEBUG, FNAME, "received %s from %s",
 	    dhcp6msgstr(dh6->dh6_msgtype),
 	    addr2str((struct sockaddr *)&from));
 
@@ -937,7 +937,7 @@ server6_recv(s)
 	    dh6->dh6_msgtype == DH6_CONFIRM ||
 	    dh6->dh6_msgtype == DH6_REBIND ||
 	    dh6->dh6_msgtype == DH6_INFORM_REQ)) {
-		dprintf(LOG_INFO, FNAME, "invalid unicast message");
+		debug_printf(LOG_INFO, FNAME, "invalid unicast message");
 		return;
 	}
 
@@ -947,7 +947,7 @@ server6_recv(s)
 	 * reject them here.
 	 */
 	if (dh6->dh6_msgtype == DH6_RELAY_REPLY) {
-		dprintf(LOG_INFO, FNAME, "relay reply message from %s",
+		debug_printf(LOG_INFO, FNAME, "relay reply message from %s",
 		    addr2str((struct sockaddr *)&from));
 		return;
 		
@@ -969,7 +969,7 @@ server6_recv(s)
 	dhcp6_init_options(&optinfo);
 	if (dhcp6_get_options((struct dhcp6opt *)(dh6 + 1),
 	    optend, &optinfo) < 0) {
-		dprintf(LOG_INFO, FNAME, "failed to parse options");
+		debug_printf(LOG_INFO, FNAME, "failed to parse options");
 		goto end;
 	}
 
@@ -1007,7 +1007,7 @@ server6_recv(s)
 		    (struct sockaddr *)&from, fromlen, &relayinfohead);
 		break;
 	default:
-		dprintf(LOG_INFO, FNAME, "unknown or unsupported msgtype (%s)",
+		debug_printf(LOG_INFO, FNAME, "unknown or unsupported msgtype (%s)",
 		    dhcp6msgstr(dh6->dh6_msgtype));
 		break;
 	}
@@ -1052,11 +1052,11 @@ process_relayforw(dh6p, optendp, relayinfohead, from)
   again:
 	len = (void *)optend - (void *)dh6relay;
 	if (len < sizeof (*dh6relay)) {
-		dprintf(LOG_INFO, FNAME, "short relay message from %s",
+		debug_printf(LOG_INFO, FNAME, "short relay message from %s",
 		    addr2str(from));
 		return (-1);
 	}
-	dprintf(LOG_DEBUG, FNAME,
+	debug_printf(LOG_DEBUG, FNAME,
 	    "dhcp6 relay: hop=%d, linkaddr=%s, peeraddr=%s",
 	    dh6relay->dh6relay_hcnt,
 	    in6addr2str(&dh6relay->dh6relay_linkaddr, 0),
@@ -1068,13 +1068,13 @@ process_relayforw(dh6p, optendp, relayinfohead, from)
 	dhcp6_init_options(&optinfo);
 	if (dhcp6_get_options((struct dhcp6opt *)(dh6relay + 1),
 	    optend, &optinfo) < 0) {
-		dprintf(LOG_INFO, FNAME, "failed to parse options");
+		debug_printf(LOG_INFO, FNAME, "failed to parse options");
 		return (-1);
 	}
 
 	/* A relay forward message must include a relay message option */
 	if (optinfo.relaymsg_msg == NULL) {
-		dprintf(LOG_INFO, FNAME, "relay forward from %s "
+		debug_printf(LOG_INFO, FNAME, "relay forward from %s "
 		    "without a relay message", addr2str(from));
 		return (-1);
 	}
@@ -1082,13 +1082,13 @@ process_relayforw(dh6p, optendp, relayinfohead, from)
 	/* relay message must contain a DHCPv6 message. */
 	len = optinfo.relaymsg_len;
 	if (len < sizeof (struct dhcp6)) {
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 		    "short packet (%d bytes) in relay message", len);
 		return (-1);
 	}
 
 	if ((relayinfo = malloc(sizeof (*relayinfo))) == NULL) {
-		dprintf(LOG_ERR, FNAME, "failed to allocate relay info");
+		debug_printf(LOG_ERR, FNAME, "failed to allocate relay info");
 		return (-1);
 	}
 	memset(relayinfo, 0, sizeof (*relayinfo));
@@ -1139,71 +1139,71 @@ set_statelessinfo(type, optinfo)
 {
 	/* SIP domain name */
 	if (dhcp6_copy_list(&optinfo->sipname_list, &sipnamelist)) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "failed to copy SIP domain list");
 		return (-1);
 	}
 
 	/* SIP server */
 	if (dhcp6_copy_list(&optinfo->sip_list, &siplist)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy SIP servers");
+		debug_printf(LOG_ERR, FNAME, "failed to copy SIP servers");
 		return (-1);
 	}
 
 	/* DNS server */
 	if (dhcp6_copy_list(&optinfo->dns_list, &dnslist)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy DNS servers");
+		debug_printf(LOG_ERR, FNAME, "failed to copy DNS servers");
 		return (-1);
 	}
 
 	/* DNS search list */
 	if (dhcp6_copy_list(&optinfo->dnsname_list, &dnsnamelist)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy DNS search list");
+		debug_printf(LOG_ERR, FNAME, "failed to copy DNS search list");
 		return (-1);
 	}
 
 	/* NTP server */
 	if (dhcp6_copy_list(&optinfo->ntp_list, &ntplist)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy NTP servers");
+		debug_printf(LOG_ERR, FNAME, "failed to copy NTP servers");
 		return (-1);
 	}
 
 	/* NIS domain name */
 	if (dhcp6_copy_list(&optinfo->nisname_list, &nisnamelist)) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "failed to copy NIS domain list");
 		return (-1);
 	}
 
 	/* NIS server */
 	if (dhcp6_copy_list(&optinfo->nis_list, &nislist)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy NIS servers");
+		debug_printf(LOG_ERR, FNAME, "failed to copy NIS servers");
 		return (-1);
 	}
 
 	/* NIS+ domain name */
 	if (dhcp6_copy_list(&optinfo->nispname_list, &nispnamelist)) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "failed to copy NIS+ domain list");
 		return (-1);
 	}
 
 	/* NIS+ server */
 	if (dhcp6_copy_list(&optinfo->nisp_list, &nisplist)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy NIS+ servers");
+		debug_printf(LOG_ERR, FNAME, "failed to copy NIS+ servers");
 		return (-1);
 	}
 
 	/* BCMCS domain name */
 	if (dhcp6_copy_list(&optinfo->bcmcsname_list, &bcmcsnamelist)) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "failed to copy BCMCS domain list");
 		return (-1);
 	}
 
 	/* BCMCS server */
 	if (dhcp6_copy_list(&optinfo->bcmcs_list, &bcmcslist)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy BCMCS servers");
+		debug_printf(LOG_ERR, FNAME, "failed to copy BCMCS servers");
 		return (-1);
 	}
 
@@ -1239,10 +1239,10 @@ react_solicit(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)
 	 * [RFC3315 Section 15.2]
 	 */
 	if (optinfo->clientID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no client ID option");
+		debug_printf(LOG_INFO, FNAME, "no client ID option");
 		return (-1);
 	} else {
-		dprintf(LOG_DEBUG, FNAME, "client ID %s",
+		debug_printf(LOG_DEBUG, FNAME, "client ID %s",
 		    duidstr(&optinfo->clientID));
 	}
 
@@ -1252,13 +1252,13 @@ react_solicit(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)
 	 * [RFC3315 Section 15.2]
 	 */
 	if (optinfo->serverID.duid_len) {
-		dprintf(LOG_INFO, FNAME, "server ID option found");
+		debug_printf(LOG_INFO, FNAME, "server ID option found");
 		return (-1);
 	}
 
 	/* get per-host configuration for the client, if any. */
 	if ((client_conf = find_hostconf(&optinfo->clientID))) {
-		dprintf(LOG_DEBUG, FNAME, "found a host configuration for %s",
+		debug_printf(LOG_DEBUG, FNAME, "found a host configuration for %s",
 		    client_conf->name);
 	}
 
@@ -1269,7 +1269,7 @@ react_solicit(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* process authentication */
 	if (process_auth(dh6, len, client_conf, optinfo, &roptinfo)) {
-		dprintf(LOG_INFO, FNAME, "failed to process authentication "
+		debug_printf(LOG_INFO, FNAME, "failed to process authentication "
 		    "information for %s",
 		    clientstr(client_conf, &optinfo->clientID));
 		goto fail;
@@ -1277,13 +1277,13 @@ react_solicit(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* server identifier option */
 	if (duidcpy(&roptinfo.serverID, &server_duid)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy server ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy server ID");
 		goto fail;
 	}
 
 	/* copy client information back */
 	if (duidcpy(&roptinfo.clientID, &optinfo->clientID)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy client ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy client ID");
 		goto fail;
 	}
 
@@ -1293,7 +1293,7 @@ react_solicit(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* add other configuration information */
 	if (set_statelessinfo(DH6_SOLICIT, &roptinfo)) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "failed to set other stateless information");
 		goto fail;
 	}
@@ -1320,7 +1320,7 @@ react_solicit(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)
 		/* make a local copy of the configured prefixes */
 		if (client_conf &&
 		    dhcp6_copy_list(&conflist, &client_conf->prefix_list)) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to make local data");
 			goto fail;
 		}
@@ -1366,7 +1366,7 @@ react_solicit(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)
 		if (client_conf == NULL && ifp->pool.name) {
 			if ((client_conf = create_dynamic_hostconf(&optinfo->clientID,
 				&ifp->pool)) == NULL)
-				dprintf(LOG_NOTICE, FNAME,
+				debug_printf(LOG_NOTICE, FNAME,
 			    	"failed to make host configuration");
 		}
 		TAILQ_INIT(&conflist);
@@ -1374,7 +1374,7 @@ react_solicit(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)
 		/* make a local copy of the configured addresses */
 		if (client_conf &&
 		    dhcp6_copy_list(&conflist, &client_conf->addr_list)) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to make local data");
 			goto fail;
 		}
@@ -1444,17 +1444,17 @@ react_request(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* the message must include a Server Identifier option */
 	if (optinfo->serverID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no server ID option");
+		debug_printf(LOG_INFO, FNAME, "no server ID option");
 		return (-1);
 	}
 	/* the contents of the Server Identifier option must match ours */
 	if (duidcmp(&optinfo->serverID, &server_duid)) {
-		dprintf(LOG_INFO, FNAME, "server ID mismatch");
+		debug_printf(LOG_INFO, FNAME, "server ID mismatch");
 		return (-1);
 	}
 	/* the message must include a Client Identifier option */
 	if (optinfo->clientID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no client ID option");
+		debug_printf(LOG_INFO, FNAME, "no client ID option");
 		return (-1);
 	}
 
@@ -1465,24 +1465,24 @@ react_request(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* server identifier option */
 	if (duidcpy(&roptinfo.serverID, &server_duid)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy server ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy server ID");
 		goto fail;
 	}
 	/* copy client information back */
 	if (duidcpy(&roptinfo.clientID, &optinfo->clientID)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy client ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy client ID");
 		goto fail;
 	}
 
 	/* get per-host configuration for the client, if any. */
 	if ((client_conf = find_hostconf(&optinfo->clientID))) {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "found a host configuration named %s", client_conf->name);
 	}
 
 	/* process authentication */
 	if (process_auth(dh6, len, client_conf, optinfo, &roptinfo)) {
-		dprintf(LOG_INFO, FNAME, "failed to process authentication "
+		debug_printf(LOG_INFO, FNAME, "failed to process authentication "
 		    "information for %s",
 		    clientstr(client_conf, &optinfo->clientID));
 		goto fail;
@@ -1504,11 +1504,11 @@ react_request(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 	    TAILQ_EMPTY(relayinfohead)) {
 		u_int16_t stcode = DH6OPT_STCODE_USEMULTICAST;
 
-		dprintf(LOG_INFO, FNAME, "unexpected unicast message from %s",
+		debug_printf(LOG_INFO, FNAME, "unexpected unicast message from %s",
 		    addr2str(from));
 		if (dhcp6_add_listval(&roptinfo.stcode_list,
 		    DHCP6_LISTVAL_STCODE, &stcode, NULL) == NULL) {
-			dprintf(LOG_ERR, FNAME, "failed to add a status code");
+			debug_printf(LOG_ERR, FNAME, "failed to add a status code");
 			goto fail;
 		}
 		server6_send(DH6_REPLY, ifp, dh6, optinfo, from,
@@ -1538,7 +1538,7 @@ react_request(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 		/* make a local copy of the configured prefixes */
 		if (client_conf &&
 		    dhcp6_copy_list(&conflist, &client_conf->prefix_list)) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to make local data");
 			goto fail;
 		}
@@ -1563,7 +1563,7 @@ react_request(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 				    iapd->val_ia.iaid,
 				    DH6OPT_STCODE_NOPREFIXAVAIL,
 				    &roptinfo.iapd_list)) {
-					dprintf(LOG_NOTICE, FNAME,
+					debug_printf(LOG_NOTICE, FNAME,
 					    "failed to make an option list");
 					dhcp6_clear_list(&conflist);
 					goto fail;
@@ -1581,7 +1581,7 @@ react_request(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 		if (client_conf == NULL && ifp->pool.name) {
 			if ((client_conf = create_dynamic_hostconf(&optinfo->clientID,
 				&ifp->pool)) == NULL)
-				dprintf(LOG_NOTICE, FNAME,
+				debug_printf(LOG_NOTICE, FNAME,
 			    	"failed to make host configuration");
 		}
 		TAILQ_INIT(&conflist);
@@ -1589,7 +1589,7 @@ react_request(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 		/* make a local copy of the configured prefixes */
 		if (client_conf &&
 		    dhcp6_copy_list(&conflist, &client_conf->addr_list)) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to make local data");
 			goto fail;
 		}
@@ -1607,7 +1607,7 @@ react_request(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 				    iana->val_ia.iaid,
 				    DH6OPT_STCODE_NOADDRSAVAIL,
 				    &roptinfo.iana_list)) {
-					dprintf(LOG_NOTICE, FNAME,
+					debug_printf(LOG_NOTICE, FNAME,
 					    "failed to make an option list");
 					dhcp6_clear_list(&conflist);
 					goto fail;
@@ -1640,7 +1640,7 @@ react_request(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 	 * information to be assigned to the client.
 	 */
 	if (set_statelessinfo(DH6_REQUEST, &roptinfo)) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "failed to set other stateless information");
 		goto fail;
 	}
@@ -1677,17 +1677,17 @@ react_renew(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* the message must include a Server Identifier option */
 	if (optinfo->serverID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no server ID option");
+		debug_printf(LOG_INFO, FNAME, "no server ID option");
 		return (-1);
 	}
 	/* the contents of the Server Identifier option must match ours */
 	if (duidcmp(&optinfo->serverID, &server_duid)) {
-		dprintf(LOG_INFO, FNAME, "server ID mismatch");
+		debug_printf(LOG_INFO, FNAME, "server ID mismatch");
 		return (-1);
 	}
 	/* the message must include a Client Identifier option */
 	if (optinfo->clientID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no client ID option");
+		debug_printf(LOG_INFO, FNAME, "no client ID option");
 		return (-1);
 	}
 
@@ -1698,24 +1698,24 @@ react_renew(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* server identifier option */
 	if (duidcpy(&roptinfo.serverID, &server_duid)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy server ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy server ID");
 		goto fail;
 	}
 	/* copy client information back */
 	if (duidcpy(&roptinfo.clientID, &optinfo->clientID)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy client ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy client ID");
 		goto fail;
 	}
 
 	/* get per-host configuration for the client, if any. */
 	if ((client_conf = find_hostconf(&optinfo->clientID))) {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "found a host configuration named %s", client_conf->name);
 	}
 
 	/* process authentication */
 	if (process_auth(dh6, len, client_conf, optinfo, &roptinfo)) {
-		dprintf(LOG_INFO, FNAME, "failed to process authentication "
+		debug_printf(LOG_INFO, FNAME, "failed to process authentication "
 		    "information for %s",
 		    clientstr(client_conf, &optinfo->clientID));
 		goto fail;
@@ -1735,11 +1735,11 @@ react_renew(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 	    TAILQ_EMPTY(relayinfohead)) {
 		u_int16_t stcode = DH6OPT_STCODE_USEMULTICAST;
 
-		dprintf(LOG_INFO, FNAME, "unexpected unicast message from %s",
+		debug_printf(LOG_INFO, FNAME, "unexpected unicast message from %s",
 		    addr2str(from));
 		if (dhcp6_add_listval(&roptinfo.stcode_list,
 		    DHCP6_LISTVAL_STCODE, &stcode, NULL) == NULL) {
-			dprintf(LOG_ERR, FNAME, "failed to add a status code");
+			debug_printf(LOG_ERR, FNAME, "failed to add a status code");
 			goto fail;
 		}
 		server6_send(DH6_REPLY, ifp, dh6, optinfo, from,
@@ -1764,7 +1764,7 @@ react_renew(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* add other configuration information */
 	if (set_statelessinfo(DH6_RENEW, &roptinfo)) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "failed to set other stateless information");
 		goto fail;
 	}
@@ -1799,13 +1799,13 @@ react_rebind(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* the message must include a Client Identifier option */
 	if (optinfo->clientID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no client ID option");
+		debug_printf(LOG_INFO, FNAME, "no client ID option");
 		return (-1);
 	}
 
 	/* the message must not include a server Identifier option */
 	if (optinfo->serverID.duid_len) {
-		dprintf(LOG_INFO, FNAME, "server ID option is included in "
+		debug_printf(LOG_INFO, FNAME, "server ID option is included in "
 		    "a rebind message");
 		return (-1);
 	}
@@ -1817,24 +1817,24 @@ react_rebind(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* server identifier option */
 	if (duidcpy(&roptinfo.serverID, &server_duid)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy server ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy server ID");
 		goto fail;
 	}
 	/* copy client information back */
 	if (duidcpy(&roptinfo.clientID, &optinfo->clientID)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy client ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy client ID");
 		goto fail;
 	}
 
 	/* get per-host configuration for the client, if any. */
 	if ((client_conf = find_hostconf(&optinfo->clientID))) {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "found a host configuration named %s", client_conf->name);
 	}
 
 	/* process authentication */
 	if (process_auth(dh6, len, client_conf, optinfo, &roptinfo)) {
-		dprintf(LOG_INFO, FNAME, "failed to process authentication "
+		debug_printf(LOG_INFO, FNAME, "failed to process authentication "
 		    "information for %s",
 		    clientstr(client_conf, &optinfo->clientID));
 		goto fail;
@@ -1866,13 +1866,13 @@ react_rebind(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)
 	 */
 	if (TAILQ_EMPTY(&roptinfo.iapd_list) &&
 	    TAILQ_EMPTY(&roptinfo.iana_list)) {
-		dprintf(LOG_INFO, FNAME, "no useful information for a rebind");
+		debug_printf(LOG_INFO, FNAME, "no useful information for a rebind");
 		goto fail;	/* discard the rebind */
 	}
 
 	/* add other configuration information */
 	if (set_statelessinfo(DH6_REBIND, &roptinfo)) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "failed to set other stateless information");
 		goto fail;
 	}
@@ -1908,17 +1908,17 @@ react_release(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* the message must include a Server Identifier option */
 	if (optinfo->serverID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no server ID option");
+		debug_printf(LOG_INFO, FNAME, "no server ID option");
 		return (-1);
 	}
 	/* the contents of the Server Identifier option must match ours */
 	if (duidcmp(&optinfo->serverID, &server_duid)) {
-		dprintf(LOG_INFO, FNAME, "server ID mismatch");
+		debug_printf(LOG_INFO, FNAME, "server ID mismatch");
 		return (-1);
 	}
 	/* the message must include a Client Identifier option */
 	if (optinfo->clientID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no client ID option");
+		debug_printf(LOG_INFO, FNAME, "no client ID option");
 		return (-1);
 	}
 
@@ -1929,24 +1929,24 @@ react_release(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* server identifier option */
 	if (duidcpy(&roptinfo.serverID, &server_duid)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy server ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy server ID");
 		goto fail;
 	}
 	/* copy client information back */
 	if (duidcpy(&roptinfo.clientID, &optinfo->clientID)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy client ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy client ID");
 		goto fail;
 	}
 
 	/* get per-host configuration for the client, if any. */
 	if ((client_conf = find_hostconf(&optinfo->clientID))) {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "found a host configuration named %s", client_conf->name);
 	}
 
 	/* process authentication */
 	if (process_auth(dh6, len, client_conf, optinfo, &roptinfo)) {
-		dprintf(LOG_INFO, FNAME, "failed to process authentication "
+		debug_printf(LOG_INFO, FNAME, "failed to process authentication "
 		    "information for %s",
 		    clientstr(client_conf, &optinfo->clientID));
 		goto fail;
@@ -1966,11 +1966,11 @@ react_release(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 	    TAILQ_EMPTY(relayinfohead)) {
 		u_int16_t stcode = DH6OPT_STCODE_USEMULTICAST;
 
-		dprintf(LOG_INFO, FNAME, "unexpected unicast message from %s",
+		debug_printf(LOG_INFO, FNAME, "unexpected unicast message from %s",
 		    addr2str(from));
 		if (dhcp6_add_listval(&roptinfo.stcode_list,
 		    DHCP6_LISTVAL_STCODE, &stcode, NULL) == NULL) {
-			dprintf(LOG_ERR, FNAME, "failed to add a status code");
+			debug_printf(LOG_ERR, FNAME, "failed to add a status code");
 			goto fail;
 		}
 		server6_send(DH6_REPLY, ifp, dh6, optinfo, from,
@@ -2001,7 +2001,7 @@ react_release(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 	stcode = DH6OPT_STCODE_SUCCESS;
 	if (dhcp6_add_listval(&roptinfo.stcode_list,
 	    DHCP6_LISTVAL_STCODE, &stcode, NULL) == NULL) {
-		dprintf(LOG_NOTICE, FNAME, "failed to add a status code");
+		debug_printf(LOG_NOTICE, FNAME, "failed to add a status code");
 		goto fail;
 	}
 
@@ -2037,17 +2037,17 @@ react_decline(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* the message must include a Server Identifier option */
 	if (optinfo->serverID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no server ID option");
+		debug_printf(LOG_INFO, FNAME, "no server ID option");
 		return (-1);
 	}
 	/* the contents of the Server Identifier option must match ours */
 	if (duidcmp(&optinfo->serverID, &server_duid)) {
-		dprintf(LOG_INFO, FNAME, "server ID mismatch");
+		debug_printf(LOG_INFO, FNAME, "server ID mismatch");
 		return (-1);
 	}
 	/* the message must include a Client Identifier option */
 	if (optinfo->clientID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no client ID option");
+		debug_printf(LOG_INFO, FNAME, "no client ID option");
 		return (-1);
 	}
 
@@ -2058,24 +2058,24 @@ react_decline(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* server identifier option */
 	if (duidcpy(&roptinfo.serverID, &server_duid)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy server ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy server ID");
 		goto fail;
 	}
 	/* copy client information back */
 	if (duidcpy(&roptinfo.clientID, &optinfo->clientID)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy client ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy client ID");
 		goto fail;
 	}
 
 	/* get per-host configuration for the client, if any. */
 	if ((client_conf = find_hostconf(&optinfo->clientID))) {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "found a host configuration named %s", client_conf->name);
 	}
 
 	/* process authentication */
 	if (process_auth(dh6, len, client_conf, optinfo, &roptinfo)) {
-		dprintf(LOG_INFO, FNAME, "failed to process authentication "
+		debug_printf(LOG_INFO, FNAME, "failed to process authentication "
 		    "information for %s",
 		    clientstr(client_conf, &optinfo->clientID));
 		goto fail;
@@ -2095,11 +2095,11 @@ react_decline(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 	    TAILQ_EMPTY(relayinfohead)) {
 		stcode = DH6OPT_STCODE_USEMULTICAST;
 
-		dprintf(LOG_INFO, FNAME, "unexpected unicast message from %s",
+		debug_printf(LOG_INFO, FNAME, "unexpected unicast message from %s",
 		    addr2str(from));
 		if (dhcp6_add_listval(&roptinfo.stcode_list,
 		    DHCP6_LISTVAL_STCODE, &stcode, NULL) == NULL) {
-			dprintf(LOG_ERR, FNAME, "failed to add a status code");
+			debug_printf(LOG_ERR, FNAME, "failed to add a status code");
 			goto fail;
 		}
 		server6_send(DH6_REPLY, ifp, dh6, optinfo, from,
@@ -2126,7 +2126,7 @@ react_decline(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 	stcode = DH6OPT_STCODE_SUCCESS;
 	if (dhcp6_add_listval(&roptinfo.stcode_list,
 	    DHCP6_LISTVAL_STCODE, &stcode, NULL) == NULL) {
-		dprintf(LOG_NOTICE, FNAME, "failed to add a status code");
+		debug_printf(LOG_NOTICE, FNAME, "failed to add a status code");
 		goto fail;
 	}
 
@@ -2164,12 +2164,12 @@ react_confirm(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* the message may not include a Server Identifier option */
 	if (optinfo->serverID.duid_len) {
-		dprintf(LOG_INFO, FNAME, "server ID option found");
+		debug_printf(LOG_INFO, FNAME, "server ID option found");
 		return (-1);
 	}
 	/* the message must include a Client Identifier option */
 	if (optinfo->clientID.duid_len == 0) {
-		dprintf(LOG_INFO, FNAME, "no client ID option");
+		debug_printf(LOG_INFO, FNAME, "no client ID option");
 		return (-1);
 	}
 
@@ -2177,24 +2177,24 @@ react_confirm(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* server identifier option */
 	if (duidcpy(&roptinfo.serverID, &server_duid)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy server ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy server ID");
 		goto fail;
 	}
 	/* copy client information back */
 	if (duidcpy(&roptinfo.clientID, &optinfo->clientID)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy client ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy client ID");
 		goto fail;
 	}
 
 	/* get per-host configuration for the client, if any. */
 	if ((client_conf = find_hostconf(&optinfo->clientID))) {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "found a host configuration named %s", client_conf->name);
 	}
 
 	/* process authentication */
 	if (process_auth(dh6, len, client_conf, optinfo, &roptinfo)) {
-		dprintf(LOG_INFO, FNAME, "failed to process authentication "
+		debug_printf(LOG_INFO, FNAME, "failed to process authentication "
 		    "information for %s",
 		    clientstr(client_conf, &optinfo->clientID));
 		goto fail;
@@ -2203,7 +2203,7 @@ react_confirm(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 	if (client_conf == NULL && ifp->pool.name) {
 		if ((client_conf = create_dynamic_hostconf(&optinfo->clientID,
 			&ifp->pool)) == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 		    	"failed to make host configuration");
 			goto fail;
 		}
@@ -2211,7 +2211,7 @@ react_confirm(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 	TAILQ_INIT(&conflist);
 	/* make a local copy of the configured addresses */
 	if (dhcp6_copy_list(&conflist, &client_conf->addr_list)) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to make local data");
 		goto fail;
 	}
@@ -2221,13 +2221,13 @@ react_confirm(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 	 * [RFC3315 18.2]. (IA-PD is just ignored [RFC3633 12.1])
 	 */
 	if (TAILQ_EMPTY(&optinfo->iana_list)) {
-		dprintf(LOG_INFO, FNAME, "no IA-NA option found");
+		debug_printf(LOG_INFO, FNAME, "no IA-NA option found");
 		goto fail;
 	}
 	for (iana = TAILQ_FIRST(&optinfo->iana_list); iana;
 	    iana = TAILQ_NEXT(iana, link)) {
 		if (TAILQ_EMPTY(&iana->sublist)) {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "no IA-ADDR option found in IA-NA %d",
 			    iana->val_ia.iaid);
 			goto fail;
@@ -2250,7 +2250,7 @@ react_confirm(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 				struct relayinfo *relayinfo;
 
 				if (relayinfohead == NULL) {
-					dprintf(LOG_INFO, FNAME,
+					debug_printf(LOG_INFO, FNAME,
 					    "no link-addr found");
 					goto fail;
 				}
@@ -2264,7 +2264,7 @@ react_confirm(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 			}
 
 			if (memcmp(linkaddr, confaddr, 8) != 0) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "%s does not seem to belong to %s's link",
 				    in6addr2str(confaddr, 0),
 				    in6addr2str(linkaddr, 0));
@@ -2283,7 +2283,7 @@ react_confirm(ifp, pi, dh6, len, optinfo, from, fromlen, relayinfohead)
 	    iana = TAILQ_NEXT(iana, link)) {
 		if (make_ia(iana, &conflist, &roptinfo.iana_list,
 		    client_conf, 1) == 0) {
-			dprintf(LOG_DEBUG, FNAME,
+			debug_printf(LOG_DEBUG, FNAME,
 			    "IA-NA configuration not found");
 			goto fail;
 		}
@@ -2326,12 +2326,12 @@ react_informreq(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)
 	 * [RFC3315 Section 15]
 	 */
 	if (!TAILQ_EMPTY(&optinfo->iapd_list)) {
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 		    "information request contains an IA_PD option");
 		return (-1);
 	}
 	if (!TAILQ_EMPTY(&optinfo->iana_list)) {
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 		    "information request contains an IA_NA option");
 		return (-1);
 	}
@@ -2339,7 +2339,7 @@ react_informreq(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)
 	/* if a server identifier is included, it must match ours. */
 	if (optinfo->serverID.duid_len &&
 	    duidcmp(&optinfo->serverID, &server_duid)) {
-		dprintf(LOG_INFO, FNAME, "server DUID mismatch");
+		debug_printf(LOG_INFO, FNAME, "server DUID mismatch");
 		return (-1);
 	}
 
@@ -2350,20 +2350,20 @@ react_informreq(ifp, dh6, len, optinfo, from, fromlen, relayinfohead)
 
 	/* server identifier option */
 	if (duidcpy(&roptinfo.serverID, &server_duid)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy server ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy server ID");
 		goto fail;
 	}
 
 	/* copy client information back (if provided) */
 	if (optinfo->clientID.duid_id &&
 	    duidcpy(&roptinfo.clientID, &optinfo->clientID)) {
-		dprintf(LOG_ERR, FNAME, "failed to copy client ID");
+		debug_printf(LOG_ERR, FNAME, "failed to copy client ID");
 		goto fail;
 	}
 
 	/* set stateless information */
 	if (set_statelessinfo(DH6_INFORM_REQ, &roptinfo)) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "failed to set other stateless information");
 		goto fail;
 	}
@@ -2391,7 +2391,7 @@ update_ia(msgtype, iap, retlist, optinfo)
 
 	/* get per-host configuration for the client, if any. */
 	if ((client_conf = find_hostconf(&optinfo->clientID))) {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "found a host configuration named %s", client_conf->name);
 	}
 
@@ -2404,7 +2404,7 @@ update_ia(msgtype, iap, retlist, optinfo)
 		 * Sections 18.2.3 and 18.2.4 of RFC3315, and the two sets
 		 * of behavior are identical.
 		 */
-		dprintf(LOG_INFO, FNAME, "no binding found for %s",
+		debug_printf(LOG_INFO, FNAME, "no binding found for %s",
 		    duidstr(&optinfo->clientID));
 
 		switch (msgtype) {
@@ -2418,7 +2418,7 @@ update_ia(msgtype, iap, retlist, optinfo)
 			 */
 			if (make_ia_stcode(iap->type, iap->val_ia.iaid,
 			    DH6OPT_STCODE_NOBINDING, retlist)) {
-				dprintf(LOG_NOTICE, FNAME,
+				debug_printf(LOG_NOTICE, FNAME,
 				    "failed to make an option list");
 				return (-1);
 			}
@@ -2440,7 +2440,7 @@ update_ia(msgtype, iap, retlist, optinfo)
 			 */
 			return (-1);
 		default:	/* XXX: should be a bug */
-			dprintf(LOG_ERR, FNAME, "impossible message type %s",
+			debug_printf(LOG_ERR, FNAME, "impossible message type %s",
 			    dhcp6msgstr(msgtype));
 			return (-1);
 		}
@@ -2468,7 +2468,7 @@ update_ia(msgtype, iap, retlist, optinfo)
 				blv = dhcp6_find_listval(&binding->val_list,
 				    DHCP6_LISTVAL_PREFIX6, &prefix, 0);
 				if (blv == NULL) {
-					dprintf(LOG_DEBUG, FNAME,
+					debug_printf(LOG_DEBUG, FNAME,
 					    "%s/%d is not found in %s",
 					    in6addr2str(&prefix.addr, 0),
 					    prefix.plen, bindingstr(binding));
@@ -2484,7 +2484,7 @@ update_ia(msgtype, iap, retlist, optinfo)
 				if (dhcp6_add_listval(&ialist,
 				    DHCP6_LISTVAL_PREFIX6, &prefix, NULL)
 				    == NULL) {
-					dprintf(LOG_NOTICE, FNAME,
+					debug_printf(LOG_NOTICE, FNAME,
 					    "failed  to copy binding info");
 					dhcp6_clear_list(&ialist);
 					return (-1);
@@ -2498,7 +2498,7 @@ update_ia(msgtype, iap, retlist, optinfo)
 				blv = dhcp6_find_listval(&binding->val_list,
 				    DHCP6_LISTVAL_STATEFULADDR6, &saddr, 0);
 				if (blv == NULL) {
-					dprintf(LOG_DEBUG, FNAME,
+					debug_printf(LOG_DEBUG, FNAME,
 					    "%s is not found in %s",
 					    in6addr2str(&saddr.addr, 0),
 					    bindingstr(binding));
@@ -2514,14 +2514,14 @@ update_ia(msgtype, iap, retlist, optinfo)
 				if (dhcp6_add_listval(&ialist,
 				    DHCP6_LISTVAL_STATEFULADDR6, &saddr, NULL)
 				    == NULL) {
-					dprintf(LOG_NOTICE, FNAME,
+					debug_printf(LOG_NOTICE, FNAME,
 					    "failed  to copy binding info");
 					dhcp6_clear_list(&ialist);
 					return (-1);
 				}
 				break;
 			default:
-				dprintf(LOG_ERR, FNAME, "unsupported IA type");
+				debug_printf(LOG_ERR, FNAME, "unsupported IA type");
 				return (-1); /* XXX */
 			}
 		}
@@ -2560,7 +2560,7 @@ release_binding_ia(iap, retlist, optinfo)
 		 */
 		if (make_ia_stcode(iap->type, iap->val_ia.iaid,
 		    DH6OPT_STCODE_NOBINDING, retlist)) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to make an option list");
 			return (-1);
 		}
@@ -2582,7 +2582,7 @@ release_binding_ia(iap, retlist, optinfo)
 			if ((lvia = find_binding_ia(lv, binding)) != NULL) {
 				switch (binding->iatype) {
 					case DHCP6_LISTVAL_IAPD:
-						dprintf(LOG_DEBUG, FNAME,
+						debug_printf(LOG_DEBUG, FNAME,
 						    "bound prefix %s/%d "
 						    "has been released",
 						    in6addr2str(&lvia->val_prefix6.addr,
@@ -2591,7 +2591,7 @@ release_binding_ia(iap, retlist, optinfo)
 						break;
 					case DHCP6_LISTVAL_IANA:
 						release_address(&lvia->val_prefix6.addr);
-						dprintf(LOG_DEBUG, FNAME,
+						debug_printf(LOG_DEBUG, FNAME,
 						    "bound address %s "
 						    "has been released",
 						    in6addr2str(&lvia->val_prefix6.addr,
@@ -2635,7 +2635,7 @@ decline_binding_ia(iap, retlist, optinfo)
 		 */
 		if (make_ia_stcode(iap->type, iap->val_ia.iaid,
 		    DH6OPT_STCODE_NOBINDING, retlist)) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to make an option list");
 			return (-1);
 		}
@@ -2657,13 +2657,13 @@ decline_binding_ia(iap, retlist, optinfo)
 		}
 
 		if ((lvia = find_binding_ia(lv, binding)) == NULL) {
-			dprintf(LOG_DEBUG, FNAME, "no binding found "
+			debug_printf(LOG_DEBUG, FNAME, "no binding found "
 			    "for address %s",
 			    in6addr2str(&lv->val_statefuladdr6.addr, 0));
 			continue;
 		}
 
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "bound address %s has been marked as declined",
 		    in6addr2str(&lvia->val_statefuladdr6.addr, 0));
 		decline_address(&lvia->val_statefuladdr6.addr);
@@ -2688,7 +2688,7 @@ server6_signal(sig)
 	int sig;
 {
 
-	dprintf(LOG_INFO, FNAME, "received a signal (%d)", sig);
+	debug_printf(LOG_INFO, FNAME, "received a signal (%d)", sig);
 
 	switch (sig) {
 	case SIGTERM:
@@ -2717,7 +2717,7 @@ server6_send(type, ifp, origmsg, optinfo, from, fromlen,
 	struct relayinfo *relayinfo;
 
 	if (sizeof(struct dhcp6) > sizeof(replybuf)) {
-		dprintf(LOG_ERR, FNAME, "buffer size assumption failed");
+		debug_printf(LOG_ERR, FNAME, "buffer size assumption failed");
 		return (-1);
 	}
 
@@ -2730,7 +2730,7 @@ server6_send(type, ifp, origmsg, optinfo, from, fromlen,
 	/* set options in the reply message */
 	if ((optlen = dhcp6_set_options(type, (struct dhcp6opt *)(dh6 + 1),
 	    (struct dhcp6opt *)(replybuf + sizeof(replybuf)), roptinfo)) < 0) {
-		dprintf(LOG_INFO, FNAME, "failed to construct reply options");
+		debug_printf(LOG_INFO, FNAME, "failed to construct reply options");
 		return (-1);
 	}
 	len += optlen;
@@ -2740,7 +2740,7 @@ server6_send(type, ifp, origmsg, optinfo, from, fromlen,
 	case DHCP6_AUTHPROTO_DELAYED:
 		if (client_conf == NULL || client_conf->delayedkey == NULL) {
 			/* This case should have been caught earlier */
-			dprintf(LOG_ERR, FNAME, "authentication required "
+			debug_printf(LOG_ERR, FNAME, "authentication required "
 			    "but not key provided");
 			break;
 		}
@@ -2748,7 +2748,7 @@ server6_send(type, ifp, origmsg, optinfo, from, fromlen,
 		    roptinfo->authalgorithm,
 		    roptinfo->delayedauth_offset + sizeof(*dh6),
 		    client_conf->delayedkey)) {
-			dprintf(LOG_WARNING, FNAME, "failed to calculate MAC");
+			debug_printf(LOG_WARNING, FNAME, "failed to calculate MAC");
 			return (-1);
 		}
 		break;
@@ -2792,7 +2792,7 @@ server6_send(type, ifp, origmsg, optinfo, from, fromlen,
 		    (struct dhcp6opt *)(dh6relay + 1),
 		    (struct dhcp6opt *)(replybuf + sizeof(replybuf)),
 		    &relayopt)) < 0) {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "failed to construct relay message");
 			dhcp6_clear_options(&relayopt);
 			return (-1);
@@ -2808,12 +2808,12 @@ server6_send(type, ifp, origmsg, optinfo, from, fromlen,
 	dst.sin6_scope_id = ((struct sockaddr_in6 *)from)->sin6_scope_id;
 	if (transmit_sa(outsock, (struct sockaddr *)&dst,
 	    replybuf, len) != 0) {
-		dprintf(LOG_ERR, FNAME, "transmit %s to %s failed",
+		debug_printf(LOG_ERR, FNAME, "transmit %s to %s failed",
 		    dhcp6msgstr(type), addr2str((struct sockaddr *)&dst));
 		return (-1);
 	}
 
-	dprintf(LOG_DEBUG, FNAME, "transmit %s to %s",
+	debug_printf(LOG_DEBUG, FNAME, "transmit %s to %s",
 	    dhcp6msgstr(type), addr2str((struct sockaddr *)&dst));
 
 	return (0);
@@ -2835,13 +2835,13 @@ make_ia_stcode(iatype, iaid, stcode, retlist)
 	TAILQ_INIT(&stcode_list);
 	if (dhcp6_add_listval(&stcode_list, DHCP6_LISTVAL_STCODE,
 	    &stcode, NULL) == NULL) {
-		dprintf(LOG_NOTICE, FNAME, "failed to make an option list");
+		debug_printf(LOG_NOTICE, FNAME, "failed to make an option list");
 		return (-1);
 	}
 
 	if (dhcp6_add_listval(retlist, iatype,
 	    &ia_empty, &stcode_list) == NULL) {
-		dprintf(LOG_NOTICE, FNAME, "failed to make an option list");
+		debug_printf(LOG_NOTICE, FNAME, "failed to make an option list");
 		dhcp6_clear_list(&stcode_list);
 		return (-1);
 	}
@@ -2872,7 +2872,7 @@ make_ia(spec, conflist, retlist, client_conf, do_binding)
 		struct dhcp6_list *blist = &binding->val_list;
 		struct dhcp6_listval *bia, *v;
 
-		dprintf(LOG_DEBUG, FNAME, "we have a binding already: %s",
+		debug_printf(LOG_DEBUG, FNAME, "we have a binding already: %s",
 		    bindingstr(binding));
 
 		update_binding(binding);
@@ -2883,7 +2883,7 @@ make_ia(spec, conflist, retlist, client_conf, do_binding)
 		calc_ia_timo(&ia, blist, client_conf);
 		if (dhcp6_add_listval(retlist, spec->type, &ia, blist)
 		    == NULL) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to copy binding info");
 			return (0);
 		}
@@ -2959,7 +2959,7 @@ make_ia(spec, conflist, retlist, client_conf, do_binding)
 		if (do_binding) {
 			if (add_binding(&client_conf->duid, DHCP6_BINDING_IA,
 			    spec->type, spec->val_ia.iaid, &ialist) == NULL) {
-				dprintf(LOG_NOTICE, FNAME,
+				debug_printf(LOG_NOTICE, FNAME,
 				    "failed to make a binding");
 				found = 0;
 			}
@@ -3000,7 +3000,7 @@ make_match_ia(spec, conflist, retlist)
 				match = 0;
 			break;
 		default:
-			dprintf(LOG_ERR, FNAME, "unsupported IA type");
+			debug_printf(LOG_ERR, FNAME, "unsupported IA type");
 			return (0); /* XXX */
 		}
 	}
@@ -3032,10 +3032,10 @@ make_iana_from_pool(poolspec, spec, retlist)
 	struct pool_conf *pool;
 	int found = 0;
 
-	dprintf(LOG_DEBUG, FNAME, "called");
+	debug_printf(LOG_DEBUG, FNAME, "called");
 
 	if ((pool = find_pool(poolspec->name)) == NULL) {
-		dprintf(LOG_ERR, FNAME, "pool '%s' not found", poolspec->name);
+		debug_printf(LOG_ERR, FNAME, "pool '%s' not found", poolspec->name);
 		return (0);
 	}
 
@@ -3060,7 +3060,7 @@ make_iana_from_pool(poolspec, spec, retlist)
 		}
 	}
 
-	dprintf(LOG_DEBUG, FNAME, "returns (found=%d)", found);
+	debug_printf(LOG_DEBUG, FNAME, "returns (found=%d)", found);
 
 	return (found);
 }
@@ -3078,7 +3078,7 @@ calc_ia_timo(ia, ialist, client_conf)
 	iatype = TAILQ_FIRST(ialist)->type;
 	for (iav = TAILQ_FIRST(ialist); iav; iav = TAILQ_NEXT(iav, link)) {
 		if (iav->type != iatype) {
-			dprintf(LOG_ERR, FNAME,
+			debug_printf(LOG_ERR, FNAME,
 			    "assumption failure: IA list is not consistent");
 			exit (1); /* XXX */
 		}
@@ -3144,7 +3144,7 @@ update_binding_duration(binding)
 				lifetime = iav->val_statefuladdr6.vltime;
 				break;
 			default:
-				dprintf(LOG_ERR, FNAME, "unsupported IA type");
+				debug_printf(LOG_ERR, FNAME, "unsupported IA type");
 				return;	/* XXX */
 			}
 
@@ -3162,7 +3162,7 @@ update_binding_duration(binding)
 		break;
 	default:
 		/* should be internal error. */
-		dprintf(LOG_ERR, FNAME, "unknown binding type (%d)",
+		debug_printf(LOG_ERR, FNAME, "unknown binding type (%d)",
 		    binding->type);
 		return;
 	}
@@ -3182,13 +3182,13 @@ add_binding(clientid, btype, iatype, iaid, val0)
 	u_int32_t duration = DHCP6_DURATION_INFINITE;
 
 	if ((binding = malloc(sizeof(*binding))) == NULL) {
-		dprintf(LOG_NOTICE, FNAME, "failed to allocate memory");
+		debug_printf(LOG_NOTICE, FNAME, "failed to allocate memory");
 		return (NULL);
 	}
 	memset(binding, 0, sizeof(*binding));
 	binding->type = btype;
 	if (duidcpy(&binding->clientid, clientid)) {
-		dprintf(LOG_NOTICE, FNAME, "failed to copy DUID");
+		debug_printf(LOG_NOTICE, FNAME, "failed to copy DUID");
 		goto fail;
 	}
 	binding->iatype = iatype;
@@ -3200,7 +3200,7 @@ add_binding(clientid, btype, iatype, iaid, val0)
 		TAILQ_INIT(&binding->val_list);
 		if (dhcp6_copy_list(&binding->val_list,
 		    (struct dhcp6_list *)val0)) {
-			dprintf(LOG_NOTICE, FNAME,
+			debug_printf(LOG_NOTICE, FNAME,
 			    "failed to copy binding data");
 			goto fail;
 		}
@@ -3213,13 +3213,13 @@ add_binding(clientid, btype, iatype, iaid, val0)
 				lv_next = TAILQ_NEXT(lv, link);
 
 				if (lv->type != DHCP6_LISTVAL_STATEFULADDR6) {
-					dprintf(LOG_ERR, FNAME,
+					debug_printf(LOG_ERR, FNAME,
 						"unexpected binding value type(%d)", lv->type);
 					continue;
 				}
 
 				if (!lease_address(&lv->val_statefuladdr6.addr)) {
-					dprintf(LOG_NOTICE, FNAME,
+					debug_printf(LOG_NOTICE, FNAME,
 						"cannot lease address %s",
 						in6addr2str(&lv->val_statefuladdr6.addr, 0));
 					TAILQ_REMOVE(ia_list, lv, link);
@@ -3227,13 +3227,13 @@ add_binding(clientid, btype, iatype, iaid, val0)
 				}
 			}
 			if (TAILQ_EMPTY(ia_list)) {
-				dprintf(LOG_NOTICE, FNAME, "cannot lease any address");
+				debug_printf(LOG_NOTICE, FNAME, "cannot lease any address");
 				goto fail;
 			}
 		}
 		break;
 	default:
-		dprintf(LOG_ERR, FNAME, "unexpected binding type(%d)", btype);
+		debug_printf(LOG_ERR, FNAME, "unexpected binding type(%d)", btype);
 		goto fail;
 	}
 
@@ -3245,7 +3245,7 @@ add_binding(clientid, btype, iatype, iaid, val0)
 
 		binding->timer = dhcp6_add_timer(binding_timo, binding);
 		if (binding->timer == NULL) {
-			dprintf(LOG_NOTICE, FNAME, "failed to add timer");
+			debug_printf(LOG_NOTICE, FNAME, "failed to add timer");
 			goto fail;
 		}
 		timo.tv_sec = (long)duration;
@@ -3255,7 +3255,7 @@ add_binding(clientid, btype, iatype, iaid, val0)
 
 	TAILQ_INSERT_TAIL(&dhcp6_binding_head, binding, link);
 
-	dprintf(LOG_DEBUG, FNAME, "add a new binding %s", bindingstr(binding));
+	debug_printf(LOG_DEBUG, FNAME, "add a new binding %s", bindingstr(binding));
 
 	return (binding);
 
@@ -3295,7 +3295,7 @@ update_binding(binding)
 {
 	struct timeval timo;
 
-	dprintf(LOG_DEBUG, FNAME, "update binding %s for %s",
+	debug_printf(LOG_DEBUG, FNAME, "update binding %s for %s",
 	    bindingstr(binding), duidstr(&binding->clientid));
 
 	/* update timestamp and calculate new duration */
@@ -3316,7 +3316,7 @@ static void
 remove_binding(binding)
 	struct dhcp6_binding *binding;
 {
-	dprintf(LOG_DEBUG, FNAME, "remove a binding %s",
+	debug_printf(LOG_DEBUG, FNAME, "remove a binding %s",
 	    bindingstr(binding));
 
 	if (binding->timer)
@@ -3343,7 +3343,7 @@ free_binding(binding)
 
 			for (lv = TAILQ_FIRST(ia_list); lv; lv = TAILQ_NEXT(lv, link)) {
 				if (lv->type != DHCP6_LISTVAL_STATEFULADDR6) {
-					dprintf(LOG_ERR, FNAME,
+					debug_printf(LOG_ERR, FNAME,
 						"unexpected binding value type(%d)", lv->type);
 					continue;
 				}
@@ -3353,7 +3353,7 @@ free_binding(binding)
 		dhcp6_clear_list(&binding->val_list);
 		break;
 	default:
-		dprintf(LOG_ERR, FNAME, "unknown binding type %d",
+		debug_printf(LOG_ERR, FNAME, "unknown binding type %d",
 		    binding->type);
 		break;
 	}
@@ -3386,7 +3386,7 @@ binding_timo(arg)
 				lifetime = iav->val_prefix6.vltime;
 				break;
 			default:
-				dprintf(LOG_ERR, FNAME, "internal error: "
+				debug_printf(LOG_ERR, FNAME, "internal error: "
 				    "unknown binding type (%d)",
 				    binding->iatype);
 				return (NULL); /* XXX */
@@ -3394,7 +3394,7 @@ binding_timo(arg)
 
 			if (lifetime != DHCP6_DURATION_INFINITE &&
 			    lifetime <= past) {
-				dprintf(LOG_DEBUG, FNAME, "bound prefix %s/%d"
+				debug_printf(LOG_DEBUG, FNAME, "bound prefix %s/%d"
 				    " in %s has expired",
 				    in6addr2str(&iav->val_prefix6.addr, 0),
 				    iav->val_prefix6.plen,
@@ -3414,7 +3414,7 @@ binding_timo(arg)
 
 		break;
 	default:
-		dprintf(LOG_ERR, FNAME, "unknown binding type %d",
+		debug_printf(LOG_ERR, FNAME, "unknown binding type %d",
 		    binding->type);
 		return (NULL);	/* XXX */
 	}
@@ -3444,7 +3444,7 @@ find_binding_ia(key, binding)
 	case DHCP6_BINDING_IA:
 		return (dhcp6_find_listval(ia_list, key->type, &key->uv, 0));
 	default:
-		dprintf(LOG_ERR, FNAME, "unknown binding type %d",
+		debug_printf(LOG_ERR, FNAME, "unknown binding type %d",
 		    binding->type);
 		return (NULL);	/* XXX */
 	}
@@ -3474,7 +3474,7 @@ bindingstr(binding)
 		    (u_long)binding->duration);
 		break;
 	default:
-		dprintf(LOG_ERR, FNAME, "unexpected binding type(%d)",
+		debug_printf(LOG_ERR, FNAME, "unexpected binding type(%d)",
 		    binding->type);
 		return ("???");
 	}
@@ -3508,7 +3508,7 @@ process_auth(dh6, len, client_conf, optinfo, roptinfo)
 		return (0);
 	case DHCP6_AUTHPROTO_DELAYED:
 		if (optinfo->authalgorithm != DHCP6_AUTHALG_HMACMD5) {
-			dprintf(LOG_INFO, FNAME, "unknown authentication "
+			debug_printf(LOG_INFO, FNAME, "unknown authentication "
 			    "algorithm (%d) required by %s",
 			    optinfo->authalgorithm,
 			    clientstr(client_conf, &optinfo->clientID));
@@ -3516,7 +3516,7 @@ process_auth(dh6, len, client_conf, optinfo, roptinfo)
 		}
 
 		if (optinfo->authrdm != DHCP6_AUTHRDM_MONOCOUNTER) {
-			dprintf(LOG_INFO, FNAME,
+			debug_printf(LOG_INFO, FNAME,
 			    "unknown RDM (%d) required by %s",
 			    optinfo->authrdm,
 			    clientstr(client_conf, &optinfo->clientID));
@@ -3525,13 +3525,13 @@ process_auth(dh6, len, client_conf, optinfo, roptinfo)
 
 		/* see if we have a key for the client */
 		if (client_conf == NULL || client_conf->delayedkey == NULL) {
-			dprintf(LOG_INFO, FNAME, "client %s wanted "
+			debug_printf(LOG_INFO, FNAME, "client %s wanted "
 			    "authentication, but no key found",
 			    clientstr(client_conf, &optinfo->clientID));
 			break;
 		}
 		key = client_conf->delayedkey;
-		dprintf(LOG_DEBUG, FNAME, "found key %s for client %s",
+		debug_printf(LOG_DEBUG, FNAME, "found key %s for client %s",
 		    key->name, clientstr(client_conf, &optinfo->clientID));
 
 		if (msgtype == DH6_SOLICIT) {
@@ -3540,7 +3540,7 @@ process_auth(dh6, len, client_conf, optinfo, roptinfo)
 				 * A solicit message should not contain
 				 * authentication information.
 				 */
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "authentication information "
 				    "provided in solicit from %s",
 				    clientstr(client_conf,
@@ -3550,7 +3550,7 @@ process_auth(dh6, len, client_conf, optinfo, roptinfo)
 		} else {
 			/* replay protection */
 			if (!client_conf->saw_previous_rd) {
-				dprintf(LOG_WARNING, FNAME,
+				debug_printf(LOG_WARNING, FNAME,
 				    "previous RD value for %s is unknown "
 				    "(accept it)", clientstr(client_conf,
 				    &optinfo->clientID));
@@ -3558,7 +3558,7 @@ process_auth(dh6, len, client_conf, optinfo, roptinfo)
 				if (dhcp6_auth_replaycheck(optinfo->authrdm,
 				    client_conf->previous_rd,
 				    optinfo->authrd)) {
-					dprintf(LOG_INFO, FNAME,
+					debug_printf(LOG_INFO, FNAME,
 					    "possible replay attack detected "
 					    "for client %s",
 					    clientstr(client_conf,
@@ -3568,7 +3568,7 @@ process_auth(dh6, len, client_conf, optinfo, roptinfo)
 			}
 
 			if ((optinfo->authflags & DHCP6OPT_AUTHFLAG_NOINFO)) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "client %s did not provide authentication "
 				    "information in %s",
 				    clientstr(client_conf, &optinfo->clientID),
@@ -3588,7 +3588,7 @@ process_auth(dh6, len, client_conf, optinfo, roptinfo)
 			    optinfo->delayedauth_realmlen != key->realmlen ||
 			    memcmp(optinfo->delayedauth_realmval, key->realm,
 			    key->realmlen) != 0) {
-				dprintf(LOG_INFO, FNAME, "authentication key "
+				debug_printf(LOG_INFO, FNAME, "authentication key "
 				    "mismatch with client %s",
 				    clientstr(client_conf,
 				    &optinfo->clientID));
@@ -3597,7 +3597,7 @@ process_auth(dh6, len, client_conf, optinfo, roptinfo)
 
 			/* check for the key lifetime */
 			if (dhcp6_validate_key(key)) {
-				dprintf(LOG_INFO, FNAME, "key %s has expired",
+				debug_printf(LOG_INFO, FNAME, "key %s has expired",
 				    key->name);
 				break;
 			}
@@ -3607,12 +3607,12 @@ process_auth(dh6, len, client_conf, optinfo, roptinfo)
 			    optinfo->authproto, optinfo->authalgorithm,
 			    optinfo->delayedauth_offset + sizeof(*dh6), key)
 			    == 0) {
-				dprintf(LOG_DEBUG, FNAME,
+				debug_printf(LOG_DEBUG, FNAME,
 				    "message authentication validated for "
 				    "client %s", clientstr(client_conf,
 				    &optinfo->clientID));
 			} else {
-				dprintf(LOG_INFO, FNAME, "invalid message "
+				debug_printf(LOG_INFO, FNAME, "invalid message "
 				    "authentication");
 				break;
 			}
@@ -3624,7 +3624,7 @@ process_auth(dh6, len, client_conf, optinfo, roptinfo)
 
 		if (get_rdvalue(roptinfo->authrdm, &roptinfo->authrd,
 		    sizeof(roptinfo->authrd))) {
-			dprintf(LOG_ERR, FNAME, "failed to get a replay "
+			debug_printf(LOG_ERR, FNAME, "failed to get a replay "
 			    "detection value for %s",
 			    clientstr(client_conf, &optinfo->clientID));
 			break;	/* XXX: try to recover? */
@@ -3635,7 +3635,7 @@ process_auth(dh6, len, client_conf, optinfo, roptinfo)
 		roptinfo->delayedauth_realmval =
 		    malloc(roptinfo->delayedauth_realmlen);
 		if (roptinfo->delayedauth_realmval == NULL) {
-			dprintf(LOG_ERR, FNAME, "failed to allocate memory "
+			debug_printf(LOG_ERR, FNAME, "failed to allocate memory "
 			    "for authentication realm for %s",
 			    clientstr(client_conf, &optinfo->clientID));
 			break;
@@ -3647,7 +3647,7 @@ process_auth(dh6, len, client_conf, optinfo, roptinfo)
 
 		break;
 	default:
-		dprintf(LOG_INFO, FNAME, "client %s wanted authentication "
+		debug_printf(LOG_INFO, FNAME, "client %s wanted authentication "
 		    "with unsupported protocol (%d)",
 		    clientstr(client_conf, &optinfo->clientID),
 		    optinfo->authproto);
diff --git a/if.c b/if.c
index 61a7fd6..c690671 100644
--- a/if.c
+++ b/if.c
@@ -60,12 +60,12 @@ ifinit(ifname)
 	struct dhcp6_if *ifp;
 
 	if ((ifp = find_ifconfbyname(ifname)) != NULL) {
-		dprintf(LOG_NOTICE, FNAME, "duplicated interface: %s", ifname);
+		debug_printf(LOG_NOTICE, FNAME, "duplicated interface: %s", ifname);
 		return (NULL);
 	}
 
 	if ((ifp = malloc(sizeof(*ifp))) == NULL) {
-		dprintf(LOG_ERR, FNAME, "malloc failed");
+		debug_printf(LOG_ERR, FNAME, "malloc failed");
 		goto fail;
 	}
 	memset(ifp, 0, sizeof(*ifp));
@@ -73,7 +73,7 @@ ifinit(ifname)
 	TAILQ_INIT(&ifp->event_list);
 
 	if ((ifp->ifname = strdup(ifname)) == NULL) {
-		dprintf(LOG_ERR, FNAME, "failed to copy ifname");
+		debug_printf(LOG_ERR, FNAME, "failed to copy ifname");
 		goto fail;
 	}
 
@@ -92,7 +92,7 @@ ifinit(ifname)
 		struct sockaddr_in6 *sin6;
 
 		if (getifaddrs(&ifap) < 0) {
-			dprintf(LOG_ERR, FNAME, "getifaddrs failed: %s",
+			debug_printf(LOG_ERR, FNAME, "getifaddrs failed: %s",
 			    strerror(errno));
 			goto fail;
 		}
@@ -134,14 +134,14 @@ ifreset(ifp)
 	u_int32_t linkid;
 
 	if ((ifid = if_nametoindex(ifp->ifname)) == 0) {
-		dprintf(LOG_ERR, FNAME, "invalid interface(%s): %s",
+		debug_printf(LOG_ERR, FNAME, "invalid interface(%s): %s",
 			ifp->ifname, strerror(errno));
 		return (-1);
 	}
 
 #ifdef HAVE_SCOPELIB
 	if (inet_zoneid(AF_INET6, 2, ifname, &linkid)) {
-		dprintf(LOG_ERR, FNAME, "failed to get link ID for %s",
+		debug_printf(LOG_ERR, FNAME, "failed to get link ID for %s",
 		    ifname);
 		return (-1);
 	}
diff --git a/lease.c b/lease.c
index d46ddfd..5cb7325 100644
--- a/lease.c
+++ b/lease.c
@@ -93,7 +93,7 @@ static struct hash_entry * hash_table_find __P((struct hash_table *, void *));
 int
 lease_init(void)
 {
-	dprintf(LOG_DEBUG, FNAME, "called");
+	debug_printf(LOG_DEBUG, FNAME, "called");
 
 	if (hash_table_init(&dhcp6_lease_table, DHCP6_LEASE_TABLE_SIZE,
 		in6_addr_hash, in6_addr_match) != 0) {
@@ -116,10 +116,10 @@ lease_address(addr)
 	if (!addr)
 		return (FALSE);
 
-	dprintf(LOG_DEBUG, FNAME, "addr=%s", in6addr2str(addr, 0));
+	debug_printf(LOG_DEBUG, FNAME, "addr=%s", in6addr2str(addr, 0));
 
 	if (hash_table_find(&dhcp6_lease_table, addr)) {
-		dprintf(LOG_WARNING, FNAME, "already leased: %s",
+		debug_printf(LOG_WARNING, FNAME, "already leased: %s",
 			in6addr2str(addr, 0));
 		return (FALSE);
 	}
@@ -138,10 +138,10 @@ release_address(addr)
 	if (!addr)
 		return;
 
-	dprintf(LOG_DEBUG, FNAME, "addr=%s", in6addr2str(addr, 0));
+	debug_printf(LOG_DEBUG, FNAME, "addr=%s", in6addr2str(addr, 0));
 
 	if (hash_table_remove(&dhcp6_lease_table, addr) != 0) {
-		dprintf(LOG_WARNING, FNAME, "not found: %s", in6addr2str(addr, 0));
+		debug_printf(LOG_WARNING, FNAME, "not found: %s", in6addr2str(addr, 0));
 	}
 }
 
@@ -154,11 +154,11 @@ decline_address(addr)
 	if (!addr)
 		return;
 
-	dprintf(LOG_DEBUG, FNAME, "addr=%s", in6addr2str(addr, 0));
+	debug_printf(LOG_DEBUG, FNAME, "addr=%s", in6addr2str(addr, 0));
 
 	entry = hash_table_find(&dhcp6_lease_table, addr);
 	if (entry == NULL) {
-		dprintf(LOG_WARNING, FNAME, "not found: %s",
+		debug_printf(LOG_WARNING, FNAME, "not found: %s",
 			in6addr2str(addr, 0));
 		return;
 	}
diff --git a/prefixconf.c b/prefixconf.c
index ace6ade..9450a3f 100644
--- a/prefixconf.c
+++ b/prefixconf.c
@@ -141,7 +141,7 @@ update_prefix(ia, pinfo, pifc, dhcpifp, ctlp, callback)
 	if (pinfo->vltime != DHCP6_DURATION_INFINITE &&
 	    (pinfo->pltime == DHCP6_DURATION_INFINITE ||
 	    pinfo->pltime > pinfo->vltime)) {
-		dprintf(LOG_INFO, FNAME, "invalid prefix %s/%d: "
+		debug_printf(LOG_INFO, FNAME, "invalid prefix %s/%d: "
 		    "pltime (%lu) is larger than vltime (%lu)",
 		    in6addr2str(&pinfo->addr, 0), pinfo->plen,
 		    pinfo->pltime, pinfo->vltime);
@@ -150,7 +150,7 @@ update_prefix(ia, pinfo, pifc, dhcpifp, ctlp, callback)
 
 	if (iac_pd == NULL) {
 		if ((iac_pd = malloc(sizeof(*iac_pd))) == NULL) {
-			dprintf(LOG_NOTICE, FNAME, "memory allocation failed");
+			debug_printf(LOG_NOTICE, FNAME, "memory allocation failed");
 			return (-1);
 		}
 		memset(iac_pd, 0, sizeof(*iac_pd));
@@ -172,7 +172,7 @@ update_prefix(ia, pinfo, pifc, dhcpifp, ctlp, callback)
 	/* search for the given prefix, and make a new one if it fails */
 	if ((sp = find_siteprefix(&iac_pd->siteprefix_head, pinfo, 1)) == NULL) {
 		if ((sp = malloc(sizeof(*sp))) == NULL) {
-			dprintf(LOG_NOTICE, FNAME, "memory allocation failed");
+			debug_printf(LOG_NOTICE, FNAME, "memory allocation failed");
 			return (-1);
 		}
 		memset(sp, 0, sizeof(*sp));
@@ -192,7 +192,7 @@ update_prefix(ia, pinfo, pifc, dhcpifp, ctlp, callback)
 	/* update the prefix according to pinfo */
 	sp->prefix.pltime = pinfo->pltime;
 	sp->prefix.vltime = pinfo->vltime;
-	dprintf(LOG_DEBUG, FNAME, "%s a prefix %s/%d pltime=%lu, vltime=%lu",
+	debug_printf(LOG_DEBUG, FNAME, "%s a prefix %s/%d pltime=%lu, vltime=%lu",
 	    spcreate ? "create" : "update",
 	    in6addr2str(&pinfo->addr, 0), pinfo->plen,
 	    pinfo->pltime, pinfo->vltime);
@@ -209,7 +209,7 @@ update_prefix(ia, pinfo, pifc, dhcpifp, ctlp, callback)
 			 * [RFC3633 Section 12.1]
 			 */
 			if (strcmp(pif->ifname, dhcpifp->ifname) == 0) {
-				dprintf(LOG_INFO, FNAME,
+				debug_printf(LOG_INFO, FNAME,
 				    "skip %s as a prefix interface",
 				    dhcpifp->ifname);
 				continue;
@@ -235,7 +235,7 @@ update_prefix(ia, pinfo, pifc, dhcpifp, ctlp, callback)
 		if (sp->timer == NULL) {
 			sp->timer = dhcp6_add_timer(siteprefix_timo, sp);
 			if (sp->timer == NULL) {
-				dprintf(LOG_NOTICE, FNAME,
+				debug_printf(LOG_NOTICE, FNAME,
 				    "failed to add prefix timer");
 				remove_siteprefix(sp); /* XXX */
 				return (-1);
@@ -276,7 +276,7 @@ remove_siteprefix(sp)
 {
 	struct dhcp6_ifprefix *ip;
 
-	dprintf(LOG_DEBUG, FNAME, "remove a site prefix %s/%d",
+	debug_printf(LOG_DEBUG, FNAME, "remove a site prefix %s/%d",
 	    in6addr2str(&sp->prefix.addr, 0), sp->prefix.plen);
 
 	if (sp->timer)
@@ -390,7 +390,7 @@ renew_data_free(evd)
 	struct dhcp6_list *ial;
 
 	if (evd->type != DHCP6_EVDATA_IAPD) {
-		dprintf(LOG_ERR, FNAME, "assumption failure");
+		debug_printf(LOG_ERR, FNAME, "assumption failure");
 		exit(1);
 	}
 
@@ -409,7 +409,7 @@ siteprefix_timo(arg)
 	struct ia *ia;
 	void (*callback)__P((struct ia *));
 
-	dprintf(LOG_DEBUG, FNAME, "prefix timeout for %s/%d",
+	debug_printf(LOG_DEBUG, FNAME, "prefix timeout for %s/%d",
 	    in6addr2str(&sp->prefix.addr, 0), sp->prefix.plen);
 
 	ia = sp->ctl->iacpd_ia;
@@ -438,7 +438,7 @@ add_ifprefix(siteprefix, prefix, pconf)
 	int b, i;
 
 	if ((ifpfx = malloc(sizeof(*ifpfx))) == NULL) {
-		dprintf(LOG_NOTICE, FNAME,
+		debug_printf(LOG_NOTICE, FNAME,
 		    "failed to allocate memory for ifprefix");
 		return (-1);
 	}
@@ -456,13 +456,13 @@ add_ifprefix(siteprefix, prefix, pconf)
 	 * XXX: our current implementation assumes ifid len is a multiple of 8
 	 */
 	if ((pconf->ifid_len % 8) != 0) {
-		dprintf(LOG_ERR, FNAME,
+		debug_printf(LOG_ERR, FNAME,
 		    "assumption failure on the length of interface ID");
 		goto bad;
 	}
 	if (ifpfx->plen + pconf->ifid_len < 0 ||
 	    ifpfx->plen + pconf->ifid_len > 128) {
-		dprintf(LOG_INFO, FNAME,
+		debug_printf(LOG_INFO, FNAME,
 			"invalid prefix length %d + %d + %d",
 			prefix->plen, pconf->sla_len, pconf->ifid_len);
 		goto bad;
diff --git a/timer.c b/timer.c
index c74aa1f..c1666b4 100644
--- a/timer.c
+++ b/timer.c
@@ -71,14 +71,14 @@ dhcp6_add_timer(timeout, timeodata)
 	struct dhcp6_timer *newtimer;
 
 	if ((newtimer = malloc(sizeof(*newtimer))) == NULL) {
-		dprintf(LOG_ERR, FNAME, "can't allocate memory");
+		debug_printf(LOG_ERR, FNAME, "can't allocate memory");
 		return (NULL);
 	}
 
 	memset(newtimer, 0, sizeof(*newtimer));
 
 	if (timeout == NULL) {
-		dprintf(LOG_ERR, FNAME, "timeout function unspecified");
+		debug_printf(LOG_ERR, FNAME, "timeout function unspecified");
 		exit(1);
 	}
 	newtimer->expire = timeout;
@@ -165,7 +165,7 @@ dhcp6_timer_rest(timer)
 
 	gettimeofday(&now, NULL);
 	if (TIMEVAL_LEQ(timer->tm, now)) {
-		dprintf(LOG_DEBUG, FNAME,
+		debug_printf(LOG_DEBUG, FNAME,
 		    "a timer must be expired, but not yet");
 		returnval.tv_sec = returnval.tv_usec = 0;
 	} else