summaryrefslogtreecommitdiffstats
path: root/lib/dns/rdata
diff options
context:
space:
mode:
authorerwin <erwin@FreeBSD.org>2013-08-14 11:10:02 +0000
committererwin <erwin@FreeBSD.org>2013-08-14 11:10:02 +0000
commitf32b4abce98c97ee6e51b7aa8f8fde6e4cab7f28 (patch)
tree2158e1c09a984412fbfaaf073f515cd4e8f1ea60 /lib/dns/rdata
parentc110f0c4dc517517abacd7bc7c5d0d41325a4057 (diff)
downloadFreeBSD-src-f32b4abce98c97ee6e51b7aa8f8fde6e4cab7f28.zip
FreeBSD-src-f32b4abce98c97ee6e51b7aa8f8fde6e4cab7f28.tar.gz
Vendor import of Bind 9.9.3-P2
Approved by: delphij (mentor, implicit) Sponsored by: DK Hostmaster A/S
Diffstat (limited to 'lib/dns/rdata')
-rw-r--r--lib/dns/rdata/any_255/tsig_250.c14
-rw-r--r--lib/dns/rdata/generic/cert_37.c9
-rw-r--r--lib/dns/rdata/generic/dlv_32769.c8
-rw-r--r--lib/dns/rdata/generic/dnskey_48.c44
-rw-r--r--lib/dns/rdata/generic/ds_43.c8
-rw-r--r--lib/dns/rdata/generic/ipseckey_45.c7
-rw-r--r--lib/dns/rdata/generic/key_25.c15
-rw-r--r--lib/dns/rdata/generic/keydata_65533.c30
-rw-r--r--lib/dns/rdata/generic/naptr_35.c (renamed from lib/dns/rdata/in_1/naptr_35.c)54
-rw-r--r--lib/dns/rdata/generic/naptr_35.h (renamed from lib/dns/rdata/in_1/naptr_35.h)12
-rw-r--r--lib/dns/rdata/generic/nsec3_50.c45
-rw-r--r--lib/dns/rdata/generic/nsec3_50.h47
-rw-r--r--lib/dns/rdata/generic/opt_41.c10
-rw-r--r--lib/dns/rdata/generic/rrsig_46.c17
-rw-r--r--lib/dns/rdata/generic/sig_24.c9
-rw-r--r--lib/dns/rdata/generic/soa_6.c4
-rw-r--r--lib/dns/rdata/generic/sshfp_44.c8
-rw-r--r--lib/dns/rdata/generic/tkey_249.c16
-rw-r--r--lib/dns/rdata/generic/uri_256.c4
-rw-r--r--lib/dns/rdata/generic/uri_256.h4
-rw-r--r--lib/dns/rdata/in_1/dhcid_49.c9
21 files changed, 241 insertions, 133 deletions
diff --git a/lib/dns/rdata/any_255/tsig_250.c b/lib/dns/rdata/any_255/tsig_250.c
index 0046ed0..3f91f91 100644
--- a/lib/dns/rdata/any_255/tsig_250.c
+++ b/lib/dns/rdata/any_255/tsig_250.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -202,8 +202,11 @@ totext_any_tsig(ARGS_TOTEXT) {
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" (", target));
RETERR(str_totext(tctx->linebreak, target));
- RETERR(isc_base64_totext(&sigr, tctx->width - 2,
- tctx->linebreak, target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_base64_totext(&sigr, 60, "", target));
+ else
+ RETERR(isc_base64_totext(&sigr, tctx->width - 2,
+ tctx->linebreak, target));
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" ) ", target));
else
@@ -236,7 +239,10 @@ totext_any_tsig(ARGS_TOTEXT) {
/*
* Other.
*/
- return (isc_base64_totext(&sr, 60, " ", target));
+ if (tctx->width == 0) /* No splitting */
+ return (isc_base64_totext(&sr, 60, "", target));
+ else
+ return (isc_base64_totext(&sr, 60, " ", target));
}
static inline isc_result_t
diff --git a/lib/dns/rdata/generic/cert_37.c b/lib/dns/rdata/generic/cert_37.c
index 2a447a6..a03290a 100644
--- a/lib/dns/rdata/generic/cert_37.c
+++ b/lib/dns/rdata/generic/cert_37.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -109,8 +109,11 @@ totext_cert(ARGS_TOTEXT) {
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" (", target));
RETERR(str_totext(tctx->linebreak, target));
- RETERR(isc_base64_totext(&sr, tctx->width - 2,
- tctx->linebreak, target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_base64_totext(&sr, 60, "", target));
+ else
+ RETERR(isc_base64_totext(&sr, tctx->width - 2,
+ tctx->linebreak, target));
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" )", target));
return (ISC_R_SUCCESS);
diff --git a/lib/dns/rdata/generic/dlv_32769.c b/lib/dns/rdata/generic/dlv_32769.c
index 97f37f7..5751ad8 100644
--- a/lib/dns/rdata/generic/dlv_32769.c
+++ b/lib/dns/rdata/generic/dlv_32769.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2006, 2007, 2009, 2010, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2006, 2007, 2009-2013 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -137,7 +137,11 @@ totext_dlv(ARGS_TOTEXT) {
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" (", target));
RETERR(str_totext(tctx->linebreak, target));
- RETERR(isc_hex_totext(&sr, tctx->width - 2, tctx->linebreak, target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_hex_totext(&sr, 0, "", target));
+ else
+ RETERR(isc_hex_totext(&sr, tctx->width - 2,
+ tctx->linebreak, target));
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" )", target));
return (ISC_R_SUCCESS);
diff --git a/lib/dns/rdata/generic/dnskey_48.c b/lib/dns/rdata/generic/dnskey_48.c
index b7eeb34..688e7ac 100644
--- a/lib/dns/rdata/generic/dnskey_48.c
+++ b/lib/dns/rdata/generic/dnskey_48.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -76,7 +76,8 @@ totext_dnskey(ARGS_TOTEXT) {
char buf[sizeof("64000")];
unsigned int flags;
unsigned char algorithm;
- char namebuf[DNS_NAME_FORMATSIZE];
+ char algbuf[DNS_NAME_FORMATSIZE];
+ const char *keyinfo;
REQUIRE(rdata->type == 48);
REQUIRE(rdata->length != 0);
@@ -89,6 +90,13 @@ totext_dnskey(ARGS_TOTEXT) {
sprintf(buf, "%u", flags);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
+ if ((flags & DNS_KEYFLAG_KSK) != 0) {
+ if (flags & DNS_KEYFLAG_REVOKE)
+ keyinfo = "revoked KSK";
+ else
+ keyinfo = "KSK";
+ } else
+ keyinfo = "ZSK";
/* protocol */
sprintf(buf, "%u", sr.base[0]);
@@ -106,23 +114,28 @@ totext_dnskey(ARGS_TOTEXT) {
if ((flags & 0xc000) == 0xc000)
return (ISC_R_SUCCESS);
- if ((tctx->flags & DNS_STYLEFLAG_COMMENT) != 0 &&
+ if ((tctx->flags & DNS_STYLEFLAG_RRCOMMENT) != 0 &&
algorithm == DNS_KEYALG_PRIVATEDNS) {
dns_name_t name;
dns_name_init(&name, NULL);
dns_name_fromregion(&name, &sr);
- dns_name_format(&name, namebuf, sizeof(namebuf));
- } else
- namebuf[0] = 0;
+ dns_name_format(&name, algbuf, sizeof(algbuf));
+ } else {
+ dns_secalg_format((dns_secalg_t) algorithm, algbuf,
+ sizeof(algbuf));
+ }
/* key */
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" (", target));
RETERR(str_totext(tctx->linebreak, target));
- RETERR(isc_base64_totext(&sr, tctx->width - 2,
- tctx->linebreak, target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_base64_totext(&sr, 0, "", target));
+ else
+ RETERR(isc_base64_totext(&sr, tctx->width - 2,
+ tctx->linebreak, target));
- if ((tctx->flags & DNS_STYLEFLAG_COMMENT) != 0)
+ if ((tctx->flags & DNS_STYLEFLAG_RRCOMMENT) != 0)
RETERR(str_totext(tctx->linebreak, target));
else if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" ", target));
@@ -130,18 +143,17 @@ totext_dnskey(ARGS_TOTEXT) {
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(")", target));
- if ((tctx->flags & DNS_STYLEFLAG_COMMENT) != 0) {
+ if ((tctx->flags & DNS_STYLEFLAG_RRCOMMENT) != 0) {
isc_region_t tmpr;
- RETERR(str_totext(" ; key id = ", target));
+ RETERR(str_totext(" ; ", target));
+ RETERR(str_totext(keyinfo, target));
+ RETERR(str_totext("; alg = ", target));
+ RETERR(str_totext(algbuf, target));
+ RETERR(str_totext("; key id = ", target));
dns_rdata_toregion(rdata, &tmpr);
sprintf(buf, "%u", dst_region_computeid(&tmpr, algorithm));
RETERR(str_totext(buf, target));
- if (algorithm == DNS_KEYALG_PRIVATEDNS) {
- RETERR(str_totext(tctx->linebreak, target));
- RETERR(str_totext("; alg = ", target));
- RETERR(str_totext(namebuf, target));
- }
}
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/ds_43.c b/lib/dns/rdata/generic/ds_43.c
index 20bac85..dd47c8d 100644
--- a/lib/dns/rdata/generic/ds_43.c
+++ b/lib/dns/rdata/generic/ds_43.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2010, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009-2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -137,7 +137,11 @@ totext_ds(ARGS_TOTEXT) {
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" (", target));
RETERR(str_totext(tctx->linebreak, target));
- RETERR(isc_hex_totext(&sr, tctx->width - 2, tctx->linebreak, target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_hex_totext(&sr, 0, "", target));
+ else
+ RETERR(isc_hex_totext(&sr, tctx->width - 2,
+ tctx->linebreak, target));
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" )", target));
return (ISC_R_SUCCESS);
diff --git a/lib/dns/rdata/generic/ipseckey_45.c b/lib/dns/rdata/generic/ipseckey_45.c
index 7e65e65..1d2508c 100644
--- a/lib/dns/rdata/generic/ipseckey_45.c
+++ b/lib/dns/rdata/generic/ipseckey_45.c
@@ -190,8 +190,11 @@ totext_ipseckey(ARGS_TOTEXT) {
*/
if (region.length > 0U) {
RETERR(str_totext(tctx->linebreak, target));
- RETERR(isc_base64_totext(&region, tctx->width - 2,
- tctx->linebreak, target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_base64_totext(&region, 60, "", target));
+ else
+ RETERR(isc_base64_totext(&region, tctx->width - 2,
+ tctx->linebreak, target));
}
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
diff --git a/lib/dns/rdata/generic/key_25.c b/lib/dns/rdata/generic/key_25.c
index 26ca9a9..1d0ba83 100644
--- a/lib/dns/rdata/generic/key_25.c
+++ b/lib/dns/rdata/generic/key_25.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -106,7 +106,7 @@ totext_key(ARGS_TOTEXT) {
if ((flags & 0xc000) == 0xc000)
return (ISC_R_SUCCESS);
- if ((tctx->flags & DNS_STYLEFLAG_COMMENT) != 0 &&
+ if ((tctx->flags & DNS_STYLEFLAG_RRCOMMENT) != 0 &&
algorithm == DNS_KEYALG_PRIVATEDNS) {
dns_name_t name;
dns_name_init(&name, NULL);
@@ -119,10 +119,13 @@ totext_key(ARGS_TOTEXT) {
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" (", target));
RETERR(str_totext(tctx->linebreak, target));
- RETERR(isc_base64_totext(&sr, tctx->width - 2,
- tctx->linebreak, target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_base64_totext(&sr, 60, "", target));
+ else
+ RETERR(isc_base64_totext(&sr, tctx->width - 2,
+ tctx->linebreak, target));
- if ((tctx->flags & DNS_STYLEFLAG_COMMENT) != 0)
+ if ((tctx->flags & DNS_STYLEFLAG_RRCOMMENT) != 0)
RETERR(str_totext(tctx->linebreak, target));
else if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" ", target));
@@ -130,7 +133,7 @@ totext_key(ARGS_TOTEXT) {
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(")", target));
- if ((tctx->flags & DNS_STYLEFLAG_COMMENT) != 0) {
+ if ((tctx->flags & DNS_STYLEFLAG_RRCOMMENT) != 0) {
isc_region_t tmpr;
RETERR(str_totext(" ; key id = ", target));
diff --git a/lib/dns/rdata/generic/keydata_65533.c b/lib/dns/rdata/generic/keydata_65533.c
index 317e1a8..a2d83f4 100644
--- a/lib/dns/rdata/generic/keydata_65533.c
+++ b/lib/dns/rdata/generic/keydata_65533.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -89,6 +89,8 @@ totext_keydata(ARGS_TOTEXT) {
unsigned int flags;
unsigned char algorithm;
unsigned long when;
+ char algbuf[DNS_NAME_FORMATSIZE];
+ const char *keyinfo;
REQUIRE(rdata->type == 65533);
REQUIRE(rdata->length != 0);
@@ -119,6 +121,13 @@ totext_keydata(ARGS_TOTEXT) {
sprintf(buf, "%u", flags);
RETERR(str_totext(buf, target));
RETERR(str_totext(" ", target));
+ if ((flags & DNS_KEYFLAG_KSK) != 0) {
+ if (flags & DNS_KEYFLAG_REVOKE)
+ keyinfo = "revoked KSK";
+ else
+ keyinfo = "KSK";
+ } else
+ keyinfo = "ZSK";
/* protocol */
sprintf(buf, "%u", sr.base[0]);
@@ -140,10 +149,13 @@ totext_keydata(ARGS_TOTEXT) {
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" (", target));
RETERR(str_totext(tctx->linebreak, target));
- RETERR(isc_base64_totext(&sr, tctx->width - 2,
- tctx->linebreak, target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_base64_totext(&sr, 60, "", target));
+ else
+ RETERR(isc_base64_totext(&sr, tctx->width - 2,
+ tctx->linebreak, target));
- if ((tctx->flags & DNS_STYLEFLAG_COMMENT) != 0)
+ if ((tctx->flags & DNS_STYLEFLAG_RRCOMMENT) != 0)
RETERR(str_totext(tctx->linebreak, target));
else if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" ", target));
@@ -151,10 +163,16 @@ totext_keydata(ARGS_TOTEXT) {
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(")", target));
- if ((tctx->flags & DNS_STYLEFLAG_COMMENT) != 0) {
+ if ((tctx->flags & DNS_STYLEFLAG_RRCOMMENT) != 0) {
isc_region_t tmpr;
- RETERR(str_totext(" ; key id = ", target));
+ RETERR(str_totext(" ; ", target));
+ RETERR(str_totext(keyinfo, target));
+ dns_secalg_format((dns_secalg_t) algorithm, algbuf,
+ sizeof(algbuf));
+ RETERR(str_totext("; alg = ", target));
+ RETERR(str_totext(algbuf, target));
+ RETERR(str_totext("; key id = ", target));
dns_rdata_toregion(rdata, &tmpr);
/* Skip over refresh, addhd, and removehd */
isc_region_consume(&tmpr, 12);
diff --git a/lib/dns/rdata/in_1/naptr_35.c b/lib/dns/rdata/generic/naptr_35.c
index e5df80b..83439a5 100644
--- a/lib/dns/rdata/in_1/naptr_35.c
+++ b/lib/dns/rdata/generic/naptr_35.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007-2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007-2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001, 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -21,8 +21,8 @@
/* RFC2915 */
-#ifndef RDATA_IN_1_NAPTR_35_C
-#define RDATA_IN_1_NAPTR_35_C
+#ifndef RDATA_GENERIC_NAPTR_35_C
+#define RDATA_GENERIC_NAPTR_35_C
#define RRTYPE_NAPTR_ATTRIBUTES (0)
@@ -121,14 +121,13 @@ txt_valid_regex(const unsigned char *txt) {
}
static inline isc_result_t
-fromtext_in_naptr(ARGS_FROMTEXT) {
+fromtext_naptr(ARGS_FROMTEXT) {
isc_token_t token;
dns_name_t name;
isc_buffer_t buffer;
unsigned char *regex;
REQUIRE(type == 35);
- REQUIRE(rdclass == 1);
UNUSED(type);
UNUSED(rdclass);
@@ -188,7 +187,7 @@ fromtext_in_naptr(ARGS_FROMTEXT) {
}
static inline isc_result_t
-totext_in_naptr(ARGS_TOTEXT) {
+totext_naptr(ARGS_TOTEXT) {
isc_region_t region;
dns_name_t name;
dns_name_t prefix;
@@ -197,7 +196,6 @@ totext_in_naptr(ARGS_TOTEXT) {
unsigned short num;
REQUIRE(rdata->type == 35);
- REQUIRE(rdata->rdclass == 1);
REQUIRE(rdata->length != 0);
dns_name_init(&name, NULL);
@@ -250,13 +248,12 @@ totext_in_naptr(ARGS_TOTEXT) {
}
static inline isc_result_t
-fromwire_in_naptr(ARGS_FROMWIRE) {
+fromwire_naptr(ARGS_FROMWIRE) {
dns_name_t name;
isc_region_t sr;
unsigned char *regex;
REQUIRE(type == 35);
- REQUIRE(rdclass == 1);
UNUSED(type);
UNUSED(rdclass);
@@ -298,13 +295,12 @@ fromwire_in_naptr(ARGS_FROMWIRE) {
}
static inline isc_result_t
-towire_in_naptr(ARGS_TOWIRE) {
+towire_naptr(ARGS_TOWIRE) {
dns_name_t name;
dns_offsets_t offsets;
isc_region_t sr;
REQUIRE(rdata->type == 35);
- REQUIRE(rdata->rdclass == 1);
REQUIRE(rdata->length != 0);
dns_compress_setmethods(cctx, DNS_COMPRESS_NONE);
@@ -342,7 +338,7 @@ towire_in_naptr(ARGS_TOWIRE) {
}
static inline int
-compare_in_naptr(ARGS_COMPARE) {
+compare_naptr(ARGS_COMPARE) {
dns_name_t name1;
dns_name_t name2;
isc_region_t region1;
@@ -352,7 +348,6 @@ compare_in_naptr(ARGS_COMPARE) {
REQUIRE(rdata1->type == rdata2->type);
REQUIRE(rdata1->rdclass == rdata2->rdclass);
REQUIRE(rdata1->type == 35);
- REQUIRE(rdata1->rdclass == 1);
REQUIRE(rdata1->length != 0);
REQUIRE(rdata2->length != 0);
@@ -411,12 +406,11 @@ compare_in_naptr(ARGS_COMPARE) {
}
static inline isc_result_t
-fromstruct_in_naptr(ARGS_FROMSTRUCT) {
- dns_rdata_in_naptr_t *naptr = source;
+fromstruct_naptr(ARGS_FROMSTRUCT) {
+ dns_rdata_naptr_t *naptr = source;
isc_region_t region;
REQUIRE(type == 35);
- REQUIRE(rdclass == 1);
REQUIRE(source != NULL);
REQUIRE(naptr->common.rdtype == type);
REQUIRE(naptr->common.rdclass == rdclass);
@@ -440,14 +434,13 @@ fromstruct_in_naptr(ARGS_FROMSTRUCT) {
}
static inline isc_result_t
-tostruct_in_naptr(ARGS_TOSTRUCT) {
- dns_rdata_in_naptr_t *naptr = target;
+tostruct_naptr(ARGS_TOSTRUCT) {
+ dns_rdata_naptr_t *naptr = target;
isc_region_t r;
isc_result_t result;
dns_name_t name;
REQUIRE(rdata->type == 35);
- REQUIRE(rdata->rdclass == 1);
REQUIRE(target != NULL);
REQUIRE(rdata->length != 0);
@@ -511,11 +504,10 @@ tostruct_in_naptr(ARGS_TOSTRUCT) {
}
static inline void
-freestruct_in_naptr(ARGS_FREESTRUCT) {
- dns_rdata_in_naptr_t *naptr = source;
+freestruct_naptr(ARGS_FREESTRUCT) {
+ dns_rdata_naptr_t *naptr = source;
REQUIRE(source != NULL);
- REQUIRE(naptr->common.rdclass == 1);
REQUIRE(naptr->common.rdtype == 35);
if (naptr->mctx == NULL)
@@ -532,7 +524,7 @@ freestruct_in_naptr(ARGS_FREESTRUCT) {
}
static inline isc_result_t
-additionaldata_in_naptr(ARGS_ADDLDATA) {
+additionaldata_naptr(ARGS_ADDLDATA) {
dns_name_t name;
dns_offsets_t offsets;
isc_region_t sr;
@@ -541,7 +533,6 @@ additionaldata_in_naptr(ARGS_ADDLDATA) {
char *cp;
REQUIRE(rdata->type == 35);
- REQUIRE(rdata->rdclass == 1);
/*
* Order, preference.
@@ -590,14 +581,13 @@ additionaldata_in_naptr(ARGS_ADDLDATA) {
}
static inline isc_result_t
-digest_in_naptr(ARGS_DIGEST) {
+digest_naptr(ARGS_DIGEST) {
isc_region_t r1, r2;
unsigned int length, n;
isc_result_t result;
dns_name_t name;
REQUIRE(rdata->type == 35);
- REQUIRE(rdata->rdclass == 1);
dns_rdata_toregion(rdata, &r1);
r2 = r1;
@@ -649,10 +639,9 @@ digest_in_naptr(ARGS_DIGEST) {
}
static inline isc_boolean_t
-checkowner_in_naptr(ARGS_CHECKOWNER) {
+checkowner_naptr(ARGS_CHECKOWNER) {
REQUIRE(type == 35);
- REQUIRE(rdclass == 1);
UNUSED(name);
UNUSED(type);
@@ -663,10 +652,9 @@ checkowner_in_naptr(ARGS_CHECKOWNER) {
}
static inline isc_boolean_t
-checknames_in_naptr(ARGS_CHECKNAMES) {
+checknames_naptr(ARGS_CHECKNAMES) {
REQUIRE(rdata->type == 35);
- REQUIRE(rdata->rdclass == 1);
UNUSED(rdata);
UNUSED(owner);
@@ -676,8 +664,8 @@ checknames_in_naptr(ARGS_CHECKNAMES) {
}
static inline int
-casecompare_in_naptr(ARGS_COMPARE) {
- return (compare_in_naptr(rdata1, rdata2));
+casecompare_naptr(ARGS_COMPARE) {
+ return (compare_naptr(rdata1, rdata2));
}
-#endif /* RDATA_IN_1_NAPTR_35_C */
+#endif /* RDATA_GENERIC_NAPTR_35_C */
diff --git a/lib/dns/rdata/in_1/naptr_35.h b/lib/dns/rdata/generic/naptr_35.h
index 04e8d69..f88c523 100644
--- a/lib/dns/rdata/in_1/naptr_35.h
+++ b/lib/dns/rdata/generic/naptr_35.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -15,15 +15,15 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-#ifndef IN_1_NAPTR_35_H
-#define IN_1_NAPTR_35_H 1
+#ifndef GENERIC_NAPTR_35_H
+#define GENERIC_NAPTR_35_H 1
/* $Id$ */
/*!
* \brief Per RFC2915 */
-typedef struct dns_rdata_in_naptr {
+typedef struct dns_rdata_naptr {
dns_rdatacommon_t common;
isc_mem_t *mctx;
isc_uint16_t order;
@@ -35,6 +35,6 @@ typedef struct dns_rdata_in_naptr {
char *regexp;
isc_uint8_t regexp_len;
dns_name_t replacement;
-} dns_rdata_in_naptr_t;
+} dns_rdata_naptr_t;
-#endif /* IN_1_NAPTR_35_H */
+#endif /* GENERIC_NAPTR_35_H */
diff --git a/lib/dns/rdata/generic/nsec3_50.c b/lib/dns/rdata/generic/nsec3_50.c
index 96b2dc8..19b94ef 100644
--- a/lib/dns/rdata/generic/nsec3_50.c
+++ b/lib/dns/rdata/generic/nsec3_50.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2008, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -142,32 +142,32 @@ totext_nsec3(ARGS_TOTEXT) {
unsigned char flags;
char buf[sizeof("65535 ")];
isc_uint32_t iterations;
+ isc_boolean_t first;
REQUIRE(rdata->type == 50);
REQUIRE(rdata->length != 0);
- UNUSED(tctx);
-
dns_rdata_toregion(rdata, &sr);
+ /* Hash */
hash = uint8_fromregion(&sr);
isc_region_consume(&sr, 1);
-
- flags = uint8_fromregion(&sr);
- isc_region_consume(&sr, 1);
-
- iterations = uint16_fromregion(&sr);
- isc_region_consume(&sr, 2);
-
sprintf(buf, "%u ", hash);
RETERR(str_totext(buf, target));
+ /* Flags */
+ flags = uint8_fromregion(&sr);
+ isc_region_consume(&sr, 1);
sprintf(buf, "%u ", flags);
RETERR(str_totext(buf, target));
+ /* Iterations */
+ iterations = uint16_fromregion(&sr);
+ isc_region_consume(&sr, 2);
sprintf(buf, "%u ", iterations);
RETERR(str_totext(buf, target));
+ /* Salt */
j = uint8_fromregion(&sr);
isc_region_consume(&sr, 1);
INSIST(j <= sr.length);
@@ -177,10 +177,14 @@ totext_nsec3(ARGS_TOTEXT) {
sr.length = j;
RETERR(isc_hex_totext(&sr, 1, "", target));
sr.length = i - j;
- RETERR(str_totext(" ", target));
} else
- RETERR(str_totext("- ", target));
+ RETERR(str_totext("-", target));
+ if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
+ RETERR(str_totext(" (", target));
+ RETERR(str_totext(tctx->linebreak, target));
+
+ /* Next hash */
j = uint8_fromregion(&sr);
isc_region_consume(&sr, 1);
INSIST(j <= sr.length);
@@ -190,7 +194,16 @@ totext_nsec3(ARGS_TOTEXT) {
RETERR(isc_base32hex_totext(&sr, 1, "", target));
sr.length = i - j;
+ if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) == 0)
+ RETERR(str_totext(" ", target));
+
+ /* Types covered */
+ first = ISC_TRUE;
for (i = 0; i < sr.length; i += len) {
+ if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0) {
+ RETERR(str_totext(tctx->linebreak, target));
+ first = ISC_TRUE;
+ }
INSIST(i + 2 <= sr.length);
window = sr.base[i];
len = sr.base[i + 1];
@@ -205,7 +218,9 @@ totext_nsec3(ARGS_TOTEXT) {
if ((sr.base[i + j] & (0x80 >> k)) == 0)
continue;
t = window * 256 + j * 8 + k;
- RETERR(str_totext(" ", target));
+ if (!first)
+ RETERR(str_totext(" ", target));
+ first = ISC_FALSE;
if (dns_rdatatype_isknown(t)) {
RETERR(dns_rdatatype_totext(t, target));
} else {
@@ -216,6 +231,10 @@ totext_nsec3(ARGS_TOTEXT) {
}
}
}
+
+ if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
+ RETERR(str_totext(" )", target));
+
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/rdata/generic/nsec3_50.h b/lib/dns/rdata/generic/nsec3_50.h
index 69a1141..5f2afb8 100644
--- a/lib/dns/rdata/generic/nsec3_50.h
+++ b/lib/dns/rdata/generic/nsec3_50.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2008, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -46,7 +46,16 @@ typedef struct dns_rdata_nsec3 {
#define DNS_NSEC3FLAG_OPTOUT 0x01U
/*%
- * Non-standard, NSEC3PARAM only.
+ * The following flags are used in the private-type record (implemented in
+ * lib/dns/private.c) which is used to store NSEC3PARAM data during the
+ * time when it is not legal to have an actual NSEC3PARAM record in the
+ * zone. They are defined here because the private-type record uses the
+ * same flags field for the OPTOUT flag above and for the private flags
+ * below. XXX: This should be considered for refactoring.
+ */
+
+/*%
+ * Non-standard, private type only.
*
* Create a corresponding NSEC3 chain.
* Once the NSEC3 chain is complete this flag will be removed to signal
@@ -55,13 +64,14 @@ typedef struct dns_rdata_nsec3 {
* This flag is automatically set when a NSEC3PARAM record is added to
* the zone via UPDATE.
*
- * NSEC3PARAM records with this flag set are supposed to be ignored by
- * RFC 5155 compliant nameservers.
+ * NSEC3PARAM records containing this flag should never be published,
+ * but if they are, they should be ignored by RFC 5155 compliant
+ * nameservers.
*/
#define DNS_NSEC3FLAG_CREATE 0x80U
/*%
- * Non-standard, NSEC3PARAM only.
+ * Non-standard, private type only.
*
* The corresponding NSEC3 set is to be removed once the NSEC chain
* has been generated.
@@ -69,24 +79,39 @@ typedef struct dns_rdata_nsec3 {
* This flag is automatically set when the last active NSEC3PARAM record
* is removed from the zone via UPDATE.
*
- * NSEC3PARAM records with this flag set are supposed to be ignored by
- * RFC 5155 compliant nameservers.
+ * NSEC3PARAM records containing this flag should never be published,
+ * but if they are, they should be ignored by RFC 5155 compliant
+ * nameservers.
*/
#define DNS_NSEC3FLAG_REMOVE 0x40U
/*%
- * Non-standard, NSEC3PARAM only.
+ * Non-standard, private type only.
*
- * Used to identify NSEC3PARAM records added in this UPDATE request.
+ * When set with the CREATE flag, a corresponding NSEC3 chain will be
+ * created when the zone becomes capable of supporting one (i.e., when it
+ * has a DNSKEY RRset containing at least one NSEC3-capable algorithm).
+ * Without this flag, NSEC3 chain creation would be attempted immediately,
+ * fail, and the private type record would be removed. With it, the NSEC3
+ * parameters are stored until they can be used. When the zone has the
+ * necessary prerequisites for NSEC3, then the INITIAL flag can be cleared,
+ * and the record will be cleaned up normally.
+ *
+ * NSEC3PARAM records containing this flag should never be published, but
+ * if they are, they should be ignored by RFC 5155 compliant nameservers.
*/
-#define DNS_NSEC3FLAG_UPDATE 0x20U
+#define DNS_NSEC3FLAG_INITIAL 0x20U
/*%
- * Non-standard, NSEC3PARAM only.
+ * Non-standard, private type only.
*
* Prevent the creation of a NSEC chain before the last NSEC3 chain
* is removed. This will normally only be set when the zone is
* transitioning from secure with NSEC3 chains to insecure.
+ *
+ * NSEC3PARAM records containing this flag should never be published,
+ * but if they are, they should be ignored by RFC 5155 compliant
+ * nameservers.
*/
#define DNS_NSEC3FLAG_NONSEC 0x10U
diff --git a/lib/dns/rdata/generic/opt_41.c b/lib/dns/rdata/generic/opt_41.c
index fa349f1..4b51804 100644
--- a/lib/dns/rdata/generic/opt_41.c
+++ b/lib/dns/rdata/generic/opt_41.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -76,8 +76,12 @@ totext_opt(ARGS_TOTEXT) {
RETERR(str_totext(tctx->linebreak, target));
or = r;
or.length = length;
- RETERR(isc_base64_totext(&or, tctx->width - 2,
- tctx->linebreak, target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_base64_totext(&or, 60, "", target));
+ else
+ RETERR(isc_base64_totext(&or, tctx->width - 2,
+ tctx->linebreak,
+ target));
isc_region_consume(&r, length);
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" )", target));
diff --git a/lib/dns/rdata/generic/rrsig_46.c b/lib/dns/rdata/generic/rrsig_46.c
index 82dfce6..58a327c 100644
--- a/lib/dns/rdata/generic/rrsig_46.c
+++ b/lib/dns/rdata/generic/rrsig_46.c
@@ -181,7 +181,10 @@ totext_rrsig(ARGS_TOTEXT) {
isc_region_consume(&sr, 4);
sprintf(buf, "%lu", ttl);
RETERR(str_totext(buf, target));
- RETERR(str_totext(" ", target));
+
+ if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
+ RETERR(str_totext(" (", target));
+ RETERR(str_totext(tctx->linebreak, target));
/*
* Sig exp.
@@ -189,10 +192,7 @@ totext_rrsig(ARGS_TOTEXT) {
exp = uint32_fromregion(&sr);
isc_region_consume(&sr, 4);
RETERR(dns_time32_totext(exp, target));
-
- if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
- RETERR(str_totext(" (", target));
- RETERR(str_totext(tctx->linebreak, target));
+ RETERR(str_totext(" ", target));
/*
* Time signed.
@@ -223,8 +223,11 @@ totext_rrsig(ARGS_TOTEXT) {
* Sig.
*/
RETERR(str_totext(tctx->linebreak, target));
- RETERR(isc_base64_totext(&sr, tctx->width - 2,
- tctx->linebreak, target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_base64_totext(&sr, 60, "", target));
+ else
+ RETERR(isc_base64_totext(&sr, tctx->width - 2,
+ tctx->linebreak, target));
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" )", target));
diff --git a/lib/dns/rdata/generic/sig_24.c b/lib/dns/rdata/generic/sig_24.c
index 3cdd17a..803a864 100644
--- a/lib/dns/rdata/generic/sig_24.c
+++ b/lib/dns/rdata/generic/sig_24.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -227,8 +227,11 @@ totext_sig(ARGS_TOTEXT) {
* Sig.
*/
RETERR(str_totext(tctx->linebreak, target));
- RETERR(isc_base64_totext(&sr, tctx->width - 2,
- tctx->linebreak, target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_base64_totext(&sr, 60, "", target));
+ else
+ RETERR(isc_base64_totext(&sr, tctx->width - 2,
+ tctx->linebreak, target));
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" )", target));
diff --git a/lib/dns/rdata/generic/soa_6.c b/lib/dns/rdata/generic/soa_6.c
index a867610..ac0a38f 100644
--- a/lib/dns/rdata/generic/soa_6.c
+++ b/lib/dns/rdata/generic/soa_6.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2002 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -102,7 +102,7 @@ totext_soa(ARGS_TOTEXT) {
multiline = ISC_TF((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0);
if (multiline)
- comment = ISC_TF((tctx->flags & DNS_STYLEFLAG_COMMENT) != 0);
+ comment = ISC_TF((tctx->flags & DNS_STYLEFLAG_RRCOMMENT) != 0);
else
comment = ISC_FALSE;
diff --git a/lib/dns/rdata/generic/sshfp_44.c b/lib/dns/rdata/generic/sshfp_44.c
index 03d5127..d553cd4 100644
--- a/lib/dns/rdata/generic/sshfp_44.c
+++ b/lib/dns/rdata/generic/sshfp_44.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2006, 2007, 2009, 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2006, 2007, 2009, 2011-2013 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -95,7 +95,11 @@ totext_sshfp(ARGS_TOTEXT) {
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" (", target));
RETERR(str_totext(tctx->linebreak, target));
- RETERR(isc_hex_totext(&sr, tctx->width - 2, tctx->linebreak, target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_hex_totext(&sr, 0, "", target));
+ else
+ RETERR(isc_hex_totext(&sr, tctx->width - 2,
+ tctx->linebreak, target));
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" )", target));
return (ISC_R_SUCCESS);
diff --git a/lib/dns/rdata/generic/tkey_249.c b/lib/dns/rdata/generic/tkey_249.c
index 3afee13..6f1ec02 100644
--- a/lib/dns/rdata/generic/tkey_249.c
+++ b/lib/dns/rdata/generic/tkey_249.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -201,8 +201,11 @@ totext_tkey(ARGS_TOTEXT) {
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" (", target));
RETERR(str_totext(tctx->linebreak, target));
- RETERR(isc_base64_totext(&dr, tctx->width - 2,
- tctx->linebreak, target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_base64_totext(&dr, 60, "", target));
+ else
+ RETERR(isc_base64_totext(&dr, tctx->width - 2,
+ tctx->linebreak, target));
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" ) ", target));
else
@@ -227,8 +230,11 @@ totext_tkey(ARGS_TOTEXT) {
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" (", target));
RETERR(str_totext(tctx->linebreak, target));
- RETERR(isc_base64_totext(&dr, tctx->width - 2,
- tctx->linebreak, target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_base64_totext(&dr, 60, "", target));
+ else
+ RETERR(isc_base64_totext(&dr, tctx->width - 2,
+ tctx->linebreak, target));
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext(" )", target));
}
diff --git a/lib/dns/rdata/generic/uri_256.c b/lib/dns/rdata/generic/uri_256.c
index aa5b194..799eb69 100644
--- a/lib/dns/rdata/generic/uri_256.c
+++ b/lib/dns/rdata/generic/uri_256.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -14,7 +14,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: uri_256.c,v 1.2 2011/03/03 14:10:27 fdupont Exp $ */
+/* $Id$ */
#ifndef GENERIC_URI_256_C
#define GENERIC_URI_256_C 1
diff --git a/lib/dns/rdata/generic/uri_256.h b/lib/dns/rdata/generic/uri_256.h
index 5061c03..13c8fd2 100644
--- a/lib/dns/rdata/generic/uri_256.h
+++ b/lib/dns/rdata/generic/uri_256.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011-2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -17,7 +17,7 @@
#ifndef GENERIC_URI_256_H
#define GENERIC_URI_256_H 1
-/* $Id: uri_256.h,v 1.2 2011/03/03 14:10:27 fdupont Exp $ */
+/* $Id$ */
typedef struct dns_rdata_uri {
dns_rdatacommon_t common;
diff --git a/lib/dns/rdata/in_1/dhcid_49.c b/lib/dns/rdata/in_1/dhcid_49.c
index 1ec75ec..7575da0 100644
--- a/lib/dns/rdata/in_1/dhcid_49.c
+++ b/lib/dns/rdata/in_1/dhcid_49.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006, 2007, 2009, 2012 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2006, 2007, 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -52,8 +52,11 @@ totext_in_dhcid(ARGS_TOTEXT) {
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)
RETERR(str_totext("( " /*)*/, target));
- RETERR(isc_base64_totext(&sr, tctx->width - 2, tctx->linebreak,
- target));
+ if (tctx->width == 0) /* No splitting */
+ RETERR(isc_base64_totext(&sr, 60, "", target));
+ else
+ RETERR(isc_base64_totext(&sr, tctx->width - 2,
+ tctx->linebreak, target));
if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0) {
RETERR(str_totext(/* ( */ " )", target));
if (rdata->length > 2) {
OpenPOWER on IntegriCloud