diff --git a/CHANGES b/CHANGES index 351c410594ae2ab909cf1d93ecf68a5be1a42edf..bca4e4c21291bacb1ad266bfd46da1bbb600b5da 100644 --- a/CHANGES +++ b/CHANGES @@ -2,7 +2,7 @@ names specified on the command line without trailing dots. [GL !1478] -5158. [protocol] Add support for ATMRELAY and ZONEMD. [GL #867] +5158. [protocol] Add support for AMTRELAY and ZONEMD. [GL #867] 5157. [bug] Nslookup now errors out if there are extra command line arguments. [GL #207] diff --git a/bin/tests/system/genzone.sh b/bin/tests/system/genzone.sh index fa34db20654324f87d06b754eb016bb3e2b02bb7..a4cf7c1c3e5bad49f74655bb92d805f029b2c16e 100644 --- a/bin/tests/system/genzone.sh +++ b/bin/tests/system/genzone.sh @@ -463,12 +463,12 @@ doa01 DOA ( 1234567890 1234567890 1 "image/gif" doa02 DOA 0 1 2 "" aHR0cHM6Ly93d3cuaXNjLm9yZy8= ; type 260 -atmrelay01 ATMRELAY 0 0 0 -atmrelay02 ATMRELAY 0 1 0 -atmrelay03 ATMRELAY 0 0 1 0.0.0.0 -atmrelay04 ATMRELAY 0 0 2 :: -atmrelay05 ATMRELAY 0 0 3 example.net. -atmrelay06 ATMRELAY \# 2 0004 +amtrelay01 AMTRELAY 0 0 0 +amtrelay02 AMTRELAY 0 1 0 +amtrelay03 AMTRELAY 0 0 1 0.0.0.0 +amtrelay04 AMTRELAY 0 0 2 :: +amtrelay05 AMTRELAY 0 0 3 example.net. +amtrelay06 AMTRELAY \# 2 0004 ; type 261 -- 32767 (unassigned) diff --git a/bin/tests/system/rrchecker/typelist.good b/bin/tests/system/rrchecker/typelist.good index 1d395c92f2dd32ee69cb4a96eff88d21b9291ac6..c843fc7b51f0b19759b42c07f813171753f39b45 100644 --- a/bin/tests/system/rrchecker/typelist.good +++ b/bin/tests/system/rrchecker/typelist.good @@ -74,6 +74,6 @@ URI CAA AVC DOA -ATMRELAY +AMTRELAY TA DLV diff --git a/bin/tests/system/xfer/dig1.good b/bin/tests/system/xfer/dig1.good index ececd53144ed632218f08e75d879309bf1e0d768..7e4acf5c4ab6124600a02aaf10881d045fb2a0f5 100644 --- a/bin/tests/system/xfer/dig1.good +++ b/bin/tests/system/xfer/dig1.good @@ -11,18 +11,18 @@ aaaa01.example. 3600 IN AAAA ::1 aaaa02.example. 3600 IN AAAA fd92:7065:b8e:ffff::5 afsdb01.example. 3600 IN AFSDB 0 hostname.example. afsdb02.example. 3600 IN AFSDB 65535 . +amtrelay01.example. 3600 IN AMTRELAY 0 0 0 +amtrelay02.example. 3600 IN AMTRELAY 0 1 0 +amtrelay03.example. 3600 IN AMTRELAY 0 0 1 0.0.0.0 +amtrelay04.example. 3600 IN AMTRELAY 0 0 2 :: +amtrelay05.example. 3600 IN AMTRELAY 0 0 3 example.net. +amtrelay06.example. 3600 IN AMTRELAY \# 2 0004 apl01.example. 3600 IN APL !1:10.0.0.1/32 1:10.0.0.0/24 apl02.example. 3600 IN APL atma01.example. 3600 IN ATMA +61200000000 atma02.example. 3600 IN ATMA +61200000000 atma03.example. 3600 IN ATMA 1234567890abcdef atma04.example. 3600 IN ATMA fedcba0987654321 -atmrelay01.example. 3600 IN ATMRELAY 0 0 0 -atmrelay02.example. 3600 IN ATMRELAY 0 1 0 -atmrelay03.example. 3600 IN ATMRELAY 0 0 1 0.0.0.0 -atmrelay04.example. 3600 IN ATMRELAY 0 0 2 :: -atmrelay05.example. 3600 IN ATMRELAY 0 0 3 example.net. -atmrelay06.example. 3600 IN ATMRELAY \# 2 0004 avc.example. 3600 IN AVC "foo:bar" caa01.example. 3600 IN CAA 0 issue "ca.example.net; policy=ev" caa02.example. 3600 IN CAA 128 tbs "Unknown" diff --git a/bin/tests/system/xfer/dig2.good b/bin/tests/system/xfer/dig2.good index 88791d1bf520d4702d52c89dc1a38fca27b0359e..6d01d35d680ada35af78c3ee76103f9e3885a8fa 100644 --- a/bin/tests/system/xfer/dig2.good +++ b/bin/tests/system/xfer/dig2.good @@ -11,18 +11,18 @@ aaaa01.example. 3600 IN AAAA ::1 aaaa02.example. 3600 IN AAAA fd92:7065:b8e:ffff::5 afsdb01.example. 3600 IN AFSDB 0 hostname.example. afsdb02.example. 3600 IN AFSDB 65535 . +amtrelay01.example. 3600 IN AMTRELAY 0 0 0 +amtrelay02.example. 3600 IN AMTRELAY 0 1 0 +amtrelay03.example. 3600 IN AMTRELAY 0 0 1 0.0.0.1 +amtrelay04.example. 3600 IN AMTRELAY 0 0 2 :: +amtrelay05.example. 3600 IN AMTRELAY 0 0 3 example.net. +amtrelay06.example. 3600 IN AMTRELAY \# 2 0004 apl01.example. 3600 IN APL !1:10.0.0.1/32 1:10.0.0.1/24 apl02.example. 3600 IN APL atma01.example. 3600 IN ATMA +61200000000 atma02.example. 3600 IN ATMA +61200000000 atma03.example. 3600 IN ATMA 1234567890abcdef atma04.example. 3600 IN ATMA fedcba0987654321 -atmrelay01.example. 3600 IN ATMRELAY 0 0 0 -atmrelay02.example. 3600 IN ATMRELAY 0 1 0 -atmrelay03.example. 3600 IN ATMRELAY 0 0 1 0.0.0.1 -atmrelay04.example. 3600 IN ATMRELAY 0 0 2 :: -atmrelay05.example. 3600 IN ATMRELAY 0 0 3 example.net. -atmrelay06.example. 3600 IN ATMRELAY \# 2 0004 avc.example. 3600 IN AVC "foo:bar" caa01.example. 3600 IN CAA 0 issue "ca.example.net; policy=ev" caa02.example. 3600 IN CAA 128 tbs "Unknown" diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml index 0096850ba242a3f4241121c801d8a872729b8ca1..286ed3e6bc2bf82bae8840f47fe535f89c73ced2 100644 --- a/doc/arm/Bv9ARM-book.xml +++ b/doc/arm/Bv9ARM-book.xml @@ -13129,6 +13129,20 @@ view external { + + + + AMTRELAY + + + + + Automatic Multicast Tunneling Relay + discovery record. + Work in progress draft-ietf-mboned-driad-amt-discovery. + + + @@ -14086,6 +14100,19 @@ view external { + + + + ZONEMD + + + + + Zone Meta Data. + Work in progress draft-wessels-dns-zone-digest. + + + diff --git a/lib/dns/rdata/generic/atmrelay_260.c b/lib/dns/rdata/generic/amtrelay_260.c similarity index 73% rename from lib/dns/rdata/generic/atmrelay_260.c rename to lib/dns/rdata/generic/amtrelay_260.c index c54ea65d6d3a5794daa9d6923dd3c52f479f27f0..bb4a38419c7aa07233a2e6fd4011298e34fe4b8d 100644 --- a/lib/dns/rdata/generic/atmrelay_260.c +++ b/lib/dns/rdata/generic/amtrelay_260.c @@ -10,17 +10,17 @@ */ -#ifndef RDATA_GENERIC_ATMRELAY_260_C -#define RDATA_GENERIC_ATMRELAY_260_C +#ifndef RDATA_GENERIC_AMTRELAY_260_C +#define RDATA_GENERIC_AMTRELAY_260_C #include #include -#define RRTYPE_ATMRELAY_ATTRIBUTES (0) +#define RRTYPE_AMTRELAY_ATTRIBUTES (0) static inline isc_result_t -fromtext_atmrelay(ARGS_FROMTEXT) { +fromtext_amtrelay(ARGS_FROMTEXT) { isc_token_t token; dns_name_t name; isc_buffer_t buffer; @@ -30,7 +30,7 @@ fromtext_atmrelay(ARGS_FROMTEXT) { unsigned char addr6[16]; isc_region_t region; - REQUIRE(type == dns_rdatatype_atmrelay); + REQUIRE(type == dns_rdatatype_amtrelay); UNUSED(type); UNUSED(rdclass); @@ -120,7 +120,7 @@ fromtext_atmrelay(ARGS_FROMTEXT) { } static inline isc_result_t -totext_atmrelay(ARGS_TOTEXT) { +totext_amtrelay(ARGS_TOTEXT) { isc_region_t region; dns_name_t name; char buf[sizeof("0 255 ")]; @@ -131,7 +131,7 @@ totext_atmrelay(ARGS_TOTEXT) { UNUSED(tctx); - REQUIRE(rdata->type == dns_rdatatype_atmrelay); + REQUIRE(rdata->type == dns_rdatatype_amtrelay); REQUIRE(rdata->length >= 2); if ((rdata->data[1] & 0x7f) > 3U) @@ -182,11 +182,11 @@ totext_atmrelay(ARGS_TOTEXT) { } static inline isc_result_t -fromwire_atmrelay(ARGS_FROMWIRE) { +fromwire_amtrelay(ARGS_FROMWIRE) { dns_name_t name; isc_region_t region; - REQUIRE(type == dns_rdatatype_atmrelay); + REQUIRE(type == dns_rdatatype_amtrelay); UNUSED(type); UNUSED(rdclass); @@ -233,10 +233,10 @@ fromwire_atmrelay(ARGS_FROMWIRE) { } static inline isc_result_t -towire_atmrelay(ARGS_TOWIRE) { +towire_amtrelay(ARGS_TOWIRE) { isc_region_t region; - REQUIRE(rdata->type == dns_rdatatype_atmrelay); + REQUIRE(rdata->type == dns_rdatatype_amtrelay); REQUIRE(rdata->length != 0); UNUSED(cctx); @@ -246,13 +246,13 @@ towire_atmrelay(ARGS_TOWIRE) { } static inline int -compare_atmrelay(ARGS_COMPARE) { +compare_amtrelay(ARGS_COMPARE) { isc_region_t region1; isc_region_t region2; REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == dns_rdatatype_atmrelay); + REQUIRE(rdata1->type == dns_rdatatype_amtrelay); REQUIRE(rdata1->length >= 2); REQUIRE(rdata2->length >= 2); @@ -263,132 +263,132 @@ compare_atmrelay(ARGS_COMPARE) { } static inline isc_result_t -fromstruct_atmrelay(ARGS_FROMSTRUCT) { - dns_rdata_atmrelay_t *atmrelay = source; +fromstruct_amtrelay(ARGS_FROMSTRUCT) { + dns_rdata_amtrelay_t *amtrelay = source; isc_region_t region; uint32_t n; - REQUIRE(type == dns_rdatatype_atmrelay); + REQUIRE(type == dns_rdatatype_amtrelay); REQUIRE(source != NULL); - REQUIRE(atmrelay->common.rdtype == type); - REQUIRE(atmrelay->common.rdclass == rdclass); + REQUIRE(amtrelay->common.rdtype == type); + REQUIRE(amtrelay->common.rdclass == rdclass); UNUSED(type); UNUSED(rdclass); - RETERR(uint8_tobuffer(atmrelay->precedence, target)); - n = (atmrelay->discovery ? 0x80 : 0) | atmrelay->gateway_type; + RETERR(uint8_tobuffer(amtrelay->precedence, target)); + n = (amtrelay->discovery ? 0x80 : 0) | amtrelay->gateway_type; RETERR(uint8_tobuffer(n, target)); - switch (atmrelay->gateway_type) { + switch (amtrelay->gateway_type) { case 0: return (ISC_R_SUCCESS); case 1: - n = ntohl(atmrelay->in_addr.s_addr); + n = ntohl(amtrelay->in_addr.s_addr); return (uint32_tobuffer(n, target)); case 2: - return (mem_tobuffer(target, atmrelay->in6_addr.s6_addr, 16)); + return (mem_tobuffer(target, amtrelay->in6_addr.s6_addr, 16)); break; case 3: - dns_name_toregion(&atmrelay->gateway, ®ion); + dns_name_toregion(&amtrelay->gateway, ®ion); return (isc_buffer_copyregion(target, ®ion)); break; default: - return (mem_tobuffer(target, atmrelay->data, atmrelay->length)); + return (mem_tobuffer(target, amtrelay->data, amtrelay->length)); } } static inline isc_result_t -tostruct_atmrelay(ARGS_TOSTRUCT) { +tostruct_amtrelay(ARGS_TOSTRUCT) { isc_region_t region; - dns_rdata_atmrelay_t *atmrelay = target; + dns_rdata_amtrelay_t *amtrelay = target; dns_name_t name; uint32_t n; - REQUIRE(rdata->type == dns_rdatatype_atmrelay); + REQUIRE(rdata->type == dns_rdatatype_amtrelay); REQUIRE(target != NULL); REQUIRE(rdata->length >= 2); - atmrelay->common.rdclass = rdata->rdclass; - atmrelay->common.rdtype = rdata->type; - ISC_LINK_INIT(&atmrelay->common, link); + amtrelay->common.rdclass = rdata->rdclass; + amtrelay->common.rdtype = rdata->type; + ISC_LINK_INIT(&amtrelay->common, link); - dns_name_init(&atmrelay->gateway, NULL); - atmrelay->data = NULL; + dns_name_init(&amtrelay->gateway, NULL); + amtrelay->data = NULL; dns_name_init(&name, NULL); dns_rdata_toregion(rdata, ®ion); - atmrelay->precedence = uint8_fromregion(®ion); + amtrelay->precedence = uint8_fromregion(®ion); isc_region_consume(®ion, 1); - atmrelay->gateway_type = uint8_fromregion(®ion); - atmrelay->discovery = (atmrelay->gateway_type & 0x80) != 0; - atmrelay->gateway_type &= 0x7f; + amtrelay->gateway_type = uint8_fromregion(®ion); + amtrelay->discovery = (amtrelay->gateway_type & 0x80) != 0; + amtrelay->gateway_type &= 0x7f; isc_region_consume(®ion, 1); - switch (atmrelay->gateway_type) { + switch (amtrelay->gateway_type) { case 0: break; case 1: n = uint32_fromregion(®ion); - atmrelay->in_addr.s_addr = htonl(n); + amtrelay->in_addr.s_addr = htonl(n); isc_region_consume(®ion, 4); break; case 2: - memmove(atmrelay->in6_addr.s6_addr, region.base, 16); + memmove(amtrelay->in6_addr.s6_addr, region.base, 16); isc_region_consume(®ion, 16); break; case 3: dns_name_fromregion(&name, ®ion); - RETERR(name_duporclone(&name, mctx, &atmrelay->gateway)); + RETERR(name_duporclone(&name, mctx, &amtrelay->gateway)); isc_region_consume(®ion, name_length(&name)); break; default: if (region.length != 0) { - atmrelay->data = mem_maybedup(mctx, region.base, + amtrelay->data = mem_maybedup(mctx, region.base, region.length); - if (atmrelay->data == NULL) { + if (amtrelay->data == NULL) { return (ISC_R_NOMEMORY); } } - atmrelay->length = region.length; + amtrelay->length = region.length; } - atmrelay->mctx = mctx; + amtrelay->mctx = mctx; return (ISC_R_SUCCESS); } static inline void -freestruct_atmrelay(ARGS_FREESTRUCT) { - dns_rdata_atmrelay_t *atmrelay = source; +freestruct_amtrelay(ARGS_FREESTRUCT) { + dns_rdata_amtrelay_t *amtrelay = source; REQUIRE(source != NULL); - REQUIRE(atmrelay->common.rdtype == dns_rdatatype_atmrelay); + REQUIRE(amtrelay->common.rdtype == dns_rdatatype_amtrelay); - if (atmrelay->mctx == NULL) + if (amtrelay->mctx == NULL) return; - if (atmrelay->gateway_type == 3) - dns_name_free(&atmrelay->gateway, atmrelay->mctx); + if (amtrelay->gateway_type == 3) + dns_name_free(&amtrelay->gateway, amtrelay->mctx); - if (atmrelay->data != NULL) - isc_mem_free(atmrelay->mctx, atmrelay->data); + if (amtrelay->data != NULL) + isc_mem_free(amtrelay->mctx, amtrelay->data); - atmrelay->mctx = NULL; + amtrelay->mctx = NULL; } static inline isc_result_t -additionaldata_atmrelay(ARGS_ADDLDATA) { +additionaldata_amtrelay(ARGS_ADDLDATA) { - REQUIRE(rdata->type == dns_rdatatype_atmrelay); + REQUIRE(rdata->type == dns_rdatatype_amtrelay); UNUSED(rdata); UNUSED(add); @@ -398,19 +398,19 @@ additionaldata_atmrelay(ARGS_ADDLDATA) { } static inline isc_result_t -digest_atmrelay(ARGS_DIGEST) { +digest_amtrelay(ARGS_DIGEST) { isc_region_t region; - REQUIRE(rdata->type == dns_rdatatype_atmrelay); + REQUIRE(rdata->type == dns_rdatatype_amtrelay); dns_rdata_toregion(rdata, ®ion); return ((digest)(arg, ®ion)); } static inline bool -checkowner_atmrelay(ARGS_CHECKOWNER) { +checkowner_amtrelay(ARGS_CHECKOWNER) { - REQUIRE(type == dns_rdatatype_atmrelay); + REQUIRE(type == dns_rdatatype_amtrelay); UNUSED(name); UNUSED(type); @@ -421,9 +421,9 @@ checkowner_atmrelay(ARGS_CHECKOWNER) { } static inline bool -checknames_atmrelay(ARGS_CHECKNAMES) { +checknames_amtrelay(ARGS_CHECKNAMES) { - REQUIRE(rdata->type == dns_rdatatype_atmrelay); + REQUIRE(rdata->type == dns_rdatatype_amtrelay); UNUSED(rdata); UNUSED(owner); @@ -433,7 +433,7 @@ checknames_atmrelay(ARGS_CHECKNAMES) { } static inline int -casecompare_atmrelay(ARGS_COMPARE) { +casecompare_amtrelay(ARGS_COMPARE) { isc_region_t region1; isc_region_t region2; dns_name_t name1; @@ -441,7 +441,7 @@ casecompare_atmrelay(ARGS_COMPARE) { REQUIRE(rdata1->type == rdata2->type); REQUIRE(rdata1->rdclass == rdata2->rdclass); - REQUIRE(rdata1->type == dns_rdatatype_atmrelay); + REQUIRE(rdata1->type == dns_rdatatype_amtrelay); REQUIRE(rdata1->length >= 2); REQUIRE(rdata2->length >= 2); @@ -464,4 +464,4 @@ casecompare_atmrelay(ARGS_COMPARE) { return (dns_name_rdatacompare(&name1, &name2)); } -#endif /* RDATA_GENERIC_ATMRELAY_260_C */ +#endif /* RDATA_GENERIC_AMTRELAY_260_C */ diff --git a/lib/dns/rdata/generic/atmrelay_260.h b/lib/dns/rdata/generic/amtrelay_260.h similarity index 81% rename from lib/dns/rdata/generic/atmrelay_260.h rename to lib/dns/rdata/generic/amtrelay_260.h index e0ad2552061ebddc846b1c364ca501abd77aca35..1372fe8471f91b2760c6e00691348b4c716b27cd 100644 --- a/lib/dns/rdata/generic/atmrelay_260.h +++ b/lib/dns/rdata/generic/amtrelay_260.h @@ -10,10 +10,10 @@ */ -#ifndef GENERIC_ATMRELAY_260_H -#define GENERIC_ATMRELAY_260_H 1 +#ifndef GENERIC_AMTRELAY_260_H +#define GENERIC_AMTRELAY_260_H 1 -typedef struct dns_rdata_atmrelay { +typedef struct dns_rdata_amtrelay { dns_rdatacommon_t common; isc_mem_t *mctx; uint8_t precedence; @@ -24,6 +24,6 @@ typedef struct dns_rdata_atmrelay { dns_name_t gateway; /* gateway type 3 */ unsigned char *data; /* gateway type > 3 */ uint16_t length; -} dns_rdata_atmrelay_t; +} dns_rdata_amtrelay_t; -#endif /* GENERIC_ATMRELAY_260_H */ +#endif /* GENERIC_AMTRELAY_260_H */ diff --git a/lib/dns/tests/rdata_test.c b/lib/dns/tests/rdata_test.c index 95ef9a36bb23cd7dbf12dbed7788aaddc36bf0d9..3b3869e9e56bdb0e6e697bf42e09bea56522a98c 100644 --- a/lib/dns/tests/rdata_test.c +++ b/lib/dns/tests/rdata_test.c @@ -563,9 +563,9 @@ atma(void **state) { dns_rdatatype_atma, sizeof(dns_rdata_in_atma_t)); } -/* ATMRELAY RDATA manipulations */ +/* AMTRELAY RDATA manipulations */ static void -atmrelay(void **state) { +amtrelay(void **state) { text_ok_t text_ok[] = { TEXT_INVALID(""), TEXT_INVALID("0"), @@ -653,7 +653,7 @@ atmrelay(void **state) { UNUSED(state); check_rdata(text_ok, wire_ok, NULL, false, dns_rdataclass_in, - dns_rdatatype_atmrelay, sizeof(dns_rdata_atmrelay_t)); + dns_rdatatype_amtrelay, sizeof(dns_rdata_amtrelay_t)); } /* @@ -1807,9 +1807,9 @@ iszonecutauth(void **state) { int main(void) { const struct CMUnitTest tests[] = { + cmocka_unit_test_setup_teardown(amtrelay, _setup, _teardown), cmocka_unit_test_setup_teardown(apl, _setup, _teardown), cmocka_unit_test_setup_teardown(atma, _setup, _teardown), - cmocka_unit_test_setup_teardown(atmrelay, _setup, _teardown), cmocka_unit_test_setup_teardown(csync, _setup, _teardown), cmocka_unit_test_setup_teardown(doa, _setup, _teardown), cmocka_unit_test_setup_teardown(eid, _setup, _teardown), diff --git a/util/copyrights b/util/copyrights index 41ce20d9c1f8e6a2ccb479160e3808fea0f6b060..c9e900b82d33710d7d921f2c4232fea921034902 100644 --- a/util/copyrights +++ b/util/copyrights @@ -1822,8 +1822,8 @@ ./lib/dns/rdata/ch_3/a_1.h C 2005,2007,2016,2018,2019 ./lib/dns/rdata/generic/afsdb_18.c C 1999,2000,2001,2003,2004,2005,2007,2009,2014,2015,2016,2017,2018,2019 ./lib/dns/rdata/generic/afsdb_18.h C 1999,2000,2001,2004,2005,2007,2016,2018,2019 -./lib/dns/rdata/generic/atmrelay_260.c C 2019 -./lib/dns/rdata/generic/atmrelay_260.h C 2019 +./lib/dns/rdata/generic/amtrelay_260.c C 2019 +./lib/dns/rdata/generic/amtrelay_260.h C 2019 ./lib/dns/rdata/generic/avc_258.c C 2016,2018,2019 ./lib/dns/rdata/generic/avc_258.h C 2016,2018,2019 ./lib/dns/rdata/generic/caa_257.c C 2014,2015,2016,2017,2018,2019