]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add RESINFO record type
authorMark Andrews <marka@isc.org>
Sat, 4 Nov 2023 10:41:37 +0000 (21:41 +1100)
committerMark Andrews <marka@isc.org>
Mon, 26 Feb 2024 01:02:40 +0000 (12:02 +1100)
This is a TXT clone using code point 261.

bin/tests/system/doth/example.axfr.good
bin/tests/system/doth/example8.axfr.good
bin/tests/system/genzone.sh
bin/tests/system/rrchecker/typelist.good
bin/tests/system/xfer/dig1.good
bin/tests/system/xfer/dig2.good
lib/dns/rdata/generic/resinfo_261.c [new file with mode: 0644]
lib/dns/rdata/generic/resinfo_261.h [new file with mode: 0644]
tests/dns/rdata_test.c

index 539e58bfef452ee70f90ba2c0dcd65c841974f23..581a0c5cd3d07de9f659ce0de4fcd4e278f987fe 100644 (file)
@@ -2544,10 +2544,10 @@ dname03.example.        3600    IN      DNAME   .
 dnskey01.example.      3600    IN      DNSKEY  512 255 1 AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7w0aRyzWZriO6i2od GWWQVucZqKVsENW91IOW4vqudngPZsY3GvQ/xVA8/7pyFj6b7Esga60z yGW6LFe9r8n6paHrlG5ojqf0BaqHT+8=
 doa01.example.         3600    IN      DOA     1234567890 1234567890 1 "image/gif" R0lGODlhKAAZAOMCAGZmZgBmmf///zOZzMz//5nM/zNmmWbM/5nMzMzMzACZ/////////////////////yH5BAEKAA8ALAAAAAAoABkAAATH8IFJK5U2a4337F5ogRkpnoCJrly7PrCKyh8c3HgAhzT35MDbbtO7/IJIHbGiOiaTxVTpSVWWLqNq1UVyapNS1wd3OAxug0LhnCubcVhsxysQnOt4ATpvvzHlFzl1AwODhWeFAgRpen5/UhheAYMFdUB4SFcpGEGGdQeCAqBBLTuSk30EeXd9pEsAbKGxjHqDSE0Sp6ixN4N1BJmbc7lIhmsBich1awPAjkY1SZR8bJWrz382SGqIBQQFQd4IsUTaX+ceuudPEQA7
 doa02.example.         3600    IN      DOA     0 1 2 "" aHR0cHM6Ly93d3cuaXNjLm9yZy8=
-ds01.example.          3600    IN      DS      12892 5 2 26584835CA80C81C91999F31CFAF2A0E89D4FF1C8FAFD0DDB31A85C7 19277C13
 ds01.example.          3600    IN      NS      ns42.example.
-ds02.example.          3600    IN      DS      12892 5 1 7AA4A3F416C2F2391FB7AB0D434F762CD62D1390
+ds01.example.          3600    IN      DS      12892 5 2 26584835CA80C81C91999F31CFAF2A0E89D4FF1C8FAFD0DDB31A85C7 19277C13
 ds02.example.          3600    IN      NS      ns43.example.
+ds02.example.          3600    IN      DS      12892 5 1 7AA4A3F416C2F2391FB7AB0D434F762CD62D1390
 eid01.example.         3600    IN      EID     1289AB
 eui48.example.         3600    IN      EUI48   01-23-45-67-89-ab
 eui64.example.         3600    IN      EUI64   01-23-45-67-89-ab-cd-ef
@@ -2621,6 +2621,7 @@ openpgpkey.example.       3600    IN      OPENPGPKEY AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7w
 ptr01.example.         3600    IN      PTR     example.
 px01.example.          3600    IN      PX      65535 foo. bar.
 px02.example.          3600    IN      PX      65535 . .
+resinfo.example.       3600    IN      RESINFO "qnamemin" "exterr=15,16,17" "infourl=https://resolver.example.com/guide"
 rkey01.example.                3600    IN      RKEY    0 255 1 AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7w0aRyzWZriO6i2od GWWQVucZqKVsENW91IOW4vqudngPZsY3GvQ/xVA8/7pyFj6b7Esga60z yGW6LFe9r8n6paHrlG5ojqf0BaqHT+8=
 rp01.example.          3600    IN      RP      mbox-dname.example. txt-dname.example.
 rp02.example.          3600    IN      RP      . .
index 3eb511ce7a7a84e2464852b269da9261e6f9f1c4..fe00a90577a55aa5727ca96bb5114a814f5731be 100644 (file)
@@ -2621,6 +2621,7 @@ openpgpkey.example8.      3600    IN      OPENPGPKEY AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7
 ptr01.example8.                3600    IN      PTR     example8.
 px01.example8.         3600    IN      PX      65535 foo. bar.
 px02.example8.         3600    IN      PX      65535 . .
+resinfo.example8.      3600    IN      RESINFO "qnamemin" "exterr=15,16,17" "infourl=https://resolver.example.com/guide"
 rkey01.example8.       3600    IN      RKEY    0 255 1 AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7w0aRyzWZriO6i2od GWWQVucZqKVsENW91IOW4vqudngPZsY3GvQ/xVA8/7pyFj6b7Esga60z yGW6LFe9r8n6paHrlG5ojqf0BaqHT+8=
 rp01.example8.         3600    IN      RP      mbox-dname.example8. txt-dname.example8.
 rp02.example8.         3600    IN      RP      . .
index f6b40c2583c099c55339eb9dee779debead5bca9..13ac32f1ea97ef464dcc2f3a221c714bab154d92 100644 (file)
@@ -478,7 +478,10 @@ amtrelay04         AMTRELAY 0 0 2 ::
 amtrelay05             AMTRELAY 0 0 3 example.net.
 amtrelay06             AMTRELAY \# 2 0004
 
-; type 261 -- 32767 (unassigned)
+; type 261
+resinfo                        RESINFO qnamemin exterr=15,16,17 infourl=https://resolver.example.com/guide
+
+; type 262 -- 32767 (unassigned)
 
 ; type 32768
 ta                     TA      30795 1 1 (
index 3c3e5cd38405794890e1bb9a66a7cd955646c7c2..506bfa068631e08e6b69725091d796b7e1378084 100644 (file)
@@ -77,5 +77,6 @@ CAA
 AVC
 DOA
 AMTRELAY
+RESINFO
 TA
 DLV
index 9fa5437d38368bec03e213a533a5f68a658e8856..4908f8ed1d1552090b6bac237a68d3cdeecf3f50 100644 (file)
@@ -42,46 +42,44 @@ dlv.example.                3600    IN      DLV     30795 1 1 310D27F4D82C1FC2400704EA9939FE6E1CEAA3B9
 dname01.example.       3600    IN      DNAME   dname-target.
 dname02.example.       3600    IN      DNAME   dname-target.example.
 dname03.example.       3600    IN      DNAME   .
+dnskey01.example.      3600    IN      DNSKEY  512 255 1 AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7w0aRyzWZriO6i2od GWWQVucZqKVsENW91IOW4vqudngPZsY3GvQ/xVA8/7pyFj6b7Esga60z yGW6LFe9r8n6paHrlG5ojqf0BaqHT+8=
 doa01.example.         3600    IN      DOA     1234567890 1234567890 1 "image/gif" R0lGODlhKAAZAOMCAGZmZgBmmf///zOZzMz//5nM/zNmmWbM/5nMzMzMzACZ/////////////////////yH5BAEKAA8ALAAAAAAoABkAAATH8IFJK5U2a4337F5ogRkpnoCJrly7PrCKyh8c3HgAhzT35MDbbtO7/IJIHbGiOiaTxVTpSVWWLqNq1UVyapNS1wd3OAxug0LhnCubcVhsxysQnOt4ATpvvzHlFzl1AwODhWeFAgRpen5/UhheAYMFdUB4SFcpGEGGdQeCAqBBLTuSk30EeXd9pEsAbKGxjHqDSE0Sp6ixN4N1BJmbc7lIhmsBich1awPAjkY1SZR8bJWrz382SGqIBQQFQd4IsUTaX+ceuudPEQA7
 doa02.example.         3600    IN      DOA     0 1 2 "" aHR0cHM6Ly93d3cuaXNjLm9yZy8=
-ds01.example.          3600    IN      NS      ns42.example.
 ds01.example.          3600    IN      DS      12892 5 2 26584835CA80C81C91999F31CFAF2A0E89D4FF1C8FAFD0DDB31A85C7 19277C13
-ds02.example.          3600    IN      NS      ns43.example.
+ds01.example.          3600    IN      NS      ns42.example.
 ds02.example.          3600    IN      DS      12892 5 1 7AA4A3F416C2F2391FB7AB0D434F762CD62D1390
+ds02.example.          3600    IN      NS      ns43.example.
 eid01.example.         3600    IN      EID     1289AB
 eui48.example.         3600    IN      EUI48   01-23-45-67-89-ab
 eui64.example.         3600    IN      EUI64   01-23-45-67-89-ab-cd-ef
 gid01.example.         3600    IN      GID     \# 1 03
-unspec01.example.      3600    IN      UNSPEC  \# 1 04
 gpos01.example.                3600    IN      GPOS    "-22.6882" "116.8652" "250.0"
 gpos02.example.                3600    IN      GPOS    "" "" ""
 hinfo01.example.       3600    IN      HINFO   "Generic PC clone" "NetBSD-1.4"
 hinfo02.example.       3600    IN      HINFO   "PC" "NetBSD"
 hip1.example.          3600    IN      HIP     2 200100107B1A74DF365639CC39F1D578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D
 hip2.example.          3600    IN      HIP     2 200100107B1A74DF365639CC39F1D578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D rvs.example.com.
-https0.example.                3600    IN      HTTPS 0 example.net.
-https1.example.                3600    IN      HTTPS 1 . port=60
-ipseckey01.example.    3600    IN      IPSECKEY  10 1 2 192.0.2.38 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
-ipseckey02.example.    3600    IN      IPSECKEY  10 0 2 . AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
-ipseckey03.example.    3600    IN      IPSECKEY  10 1 2 192.0.2.3 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
-ipseckey04.example.    3600    IN      IPSECKEY  10 3 2 mygateway.example.com. AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
-ipseckey05.example.    3600    IN      IPSECKEY  10 2 2 2001:db8:0:8002::2000:1 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
+https0.example.                3600    IN      HTTPS   0 example.net.
+https1.example.                3600    IN      HTTPS   1 . port=60
+ipseckey01.example.    3600    IN      IPSECKEY 10 1 2 192.0.2.38 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
+ipseckey02.example.    3600    IN      IPSECKEY 10 0 2 . AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
+ipseckey03.example.    3600    IN      IPSECKEY 10 1 2 192.0.2.3 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
+ipseckey04.example.    3600    IN      IPSECKEY 10 3 2 mygateway.example.com. AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
+ipseckey05.example.    3600    IN      IPSECKEY 10 2 2 2001:db8:0:8002::2000:1 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
 isdn01.example.                3600    IN      ISDN    "isdn-address"
 isdn02.example.                3600    IN      ISDN    "isdn-address" "subaddress"
 isdn03.example.                3600    IN      ISDN    "isdn-address"
 isdn04.example.                3600    IN      ISDN    "isdn-address" "subaddress"
-dnskey01.example.      3600    IN      DNSKEY  512 255 1 AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7w0aRyzWZriO6i2od GWWQVucZqKVsENW91IOW4vqudngPZsY3GvQ/xVA8/7pyFj6b7Esga60z yGW6LFe9r8n6paHrlG5ojqf0BaqHT+8=
 keydata.example.       3600    IN      TYPE65533 \# 0
 keydata.example.       3600    IN      TYPE65533 \# 6 010203040506
 keydata.example.       3600    IN      TYPE65533 \# 18 010203040506010203040506010203040506
 kx01.example.          3600    IN      KX      10 kdc.example.
 kx02.example.          3600    IN      KX      10 .
-loc01.example.         3600    IN      LOC     60 9 0.000 N 24 39 0.000 E 10.00m 20m 2000m 20m
-loc02.example.         3600    IN      LOC     60 9 0.000 N 24 39 0.000 E 10.00m 20m 2000m 20m
 l32.example.           3600    IN      L32     10 1.2.3.4
 l64.example.           3600    IN      L64     10 14:4fff:ff20:ee64
+loc01.example.         3600    IN      LOC     60 9 0.000 N 24 39 0.000 E 10.00m 20m 2000m 20m
+loc02.example.         3600    IN      LOC     60 9 0.000 N 24 39 0.000 E 10.00m 20m 2000m 20m
 lp.example.            3600    IN      LP      10 example.net.
-nid.example.           3600    IN      NID     10 14:4fff:ff20:ee64
 mb01.example.          3600    IN      MG      madname.example.
 mb02.example.          3600    IN      MG      .
 mg01.example.          3600    IN      MG      mgmname.example.
@@ -94,6 +92,7 @@ mx01.example.         3600    IN      MX      10 mail.example.
 mx02.example.          3600    IN      MX      10 .
 naptr01.example.       3600    IN      NAPTR   0 0 "" "" "" .
 naptr02.example.       3600    IN      NAPTR   65535 65535 "blurgh" "blorf" "blllbb" foo.
+nid.example.           3600    IN      NID     10 14:4fff:ff20:ee64
 nimloc01.example.      3600    IN      NIMLOC  1289AB
 ninfo01.example.       3600    IN      NINFO   "foo"
 ninfo02.example.       3600    IN      NINFO   "foo" "bar"
@@ -112,33 +111,34 @@ ninfo14.example.  3600    IN      NINFO   "foo;"
 ninfo15.example.       3600    IN      NINFO   "bar\\;"
 ns2.example.           3600    IN      A       10.53.0.2
 ns3.example.           3600    IN      A       10.53.0.3
-nsap-ptr01.example.    3600    IN      NSAP-PTR .
 nsap-ptr01.example.    3600    IN      NSAP-PTR foo.
+nsap-ptr01.example.    3600    IN      NSAP-PTR .
 nsap01.example.                3600    IN      NSAP    0x47000580005a0000000001e133ffffff00016100
 nsap02.example.                3600    IN      NSAP    0x47000580005a0000000001e133ffffff00016100
 nsec01.example.                3600    IN      NSEC    a.secure.nil. NS SOA MX LOC RRSIG NSEC DNSKEY
 nsec02.example.                3600    IN      NSEC    . NSAP-PTR NSEC
 nsec03.example.                3600    IN      NSEC    . A
 nsec04.example.                3600    IN      NSEC    . TYPE127
-openpgpkey.example.    3600    IN      OPENPGPKEY  AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7w0aRyzWZriO6i2od GWWQVucZqKVsENW91IOW4vqudngPZsY3GvQ/xVA8/7pyFj6b7Esga60z yGW6LFe9r8n6paHrlG5ojqf0BaqHT+8=
+openpgpkey.example.    3600    IN      OPENPGPKEY AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7w0aRyzWZriO6i2od GWWQVucZqKVsENW91IOW4vqudngPZsY3GvQ/xVA8/7pyFj6b7Esga60z yGW6LFe9r8n6paHrlG5ojqf0BaqHT+8=
 ptr01.example.         3600    IN      PTR     example.
 px01.example.          3600    IN      PX      65535 foo. bar.
 px02.example.          3600    IN      PX      65535 . .
+resinfo.example.       3600    IN      RESINFO "qnamemin" "exterr=15,16,17" "infourl=https://resolver.example.com/guide"
 rkey01.example.                3600    IN      RKEY    0 255 1 AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7w0aRyzWZriO6i2od GWWQVucZqKVsENW91IOW4vqudngPZsY3GvQ/xVA8/7pyFj6b7Esga60z yGW6LFe9r8n6paHrlG5ojqf0BaqHT+8=
 rp01.example.          3600    IN      RP      mbox-dname.example. txt-dname.example.
 rp02.example.          3600    IN      RP      . .
+rrsig01.example.       3600    IN      RRSIG   NSEC 1 3 3600 20000102030405 19961211100908 2143 foo.nil. MxFcby9k/yvedMfQgKzhH5er0Mu/vILz45IkskceFGgiWCn/GxHhai6V AuHAoNUz4YoU1tVfSCSqQYn6//11U6Nld80jEeC8aTrO+KKmCaY=
 rt01.example.          3600    IN      RT      0 intermediate-host.example.
 rt02.example.          3600    IN      RT      65535 .
-rrsig01.example.               3600    IN      RRSIG   NSEC 1 3 3600 20000102030405 19961211100908 2143 foo.nil. MxFcby9k/yvedMfQgKzhH5er0Mu/vILz45IkskceFGgiWCn/GxHhai6V AuHAoNUz4YoU1tVfSCSqQYn6//11U6Nld80jEeC8aTrO+KKmCaY=
-spf01.example.         3600    IN      SPF     "v=spf1 -all"
-spf02.example.         3600    IN      SPF     "v=spf1" " -all"
-sshfp01.example.       3600    IN      SSHFP   4 2 C76D8329954DA2835751E371544E963EFDA099080D6C58DD2BFD9A31 6E162C83
-sshfp02.example.       3600    IN      SSHFP   1 2 BF29468C83AC58CCF8C85AB7B3BEB054ECF1E38512B8353AB36471FA 88961DCC
 sink01.example.                3600    IN      SINK    1 0 0
 sink02.example.                3600    IN      SINK    8 0 2 l4ik
 smimea.example.                3600    IN      SMIMEA  1 1 2 92003BA34942DC74152E2F2C408D29ECA5A520E7F2E06BB944F4DCA3 46BAF63C1B177615D466F6C4B71C216A50292BD58C9EBDD2F74E38FE 51FFD48C43326CBC
+spf01.example.         3600    IN      SPF     "v=spf1 -all"
+spf02.example.         3600    IN      SPF     "v=spf1" " -all"
 srv01.example.         3600    IN      SRV     0 0 0 .
 srv02.example.         3600    IN      SRV     65535 65535 65535 old-slow-box.example.
+sshfp01.example.       3600    IN      SSHFP   4 2 C76D8329954DA2835751E371544E963EFDA099080D6C58DD2BFD9A31 6E162C83
+sshfp02.example.       3600    IN      SSHFP   1 2 BF29468C83AC58CCF8C85AB7B3BEB054ECF1E38512B8353AB36471FA 88961DCC
 svcb0.example.         3600    IN      SVCB    0 example.net.
 svcb1.example.         3600    IN      SVCB    1 . port=60
 ta.example.            3600    IN      TA      30795 1 1 310D27F4D82C1FC2400704EA9939FE6E1CEAA3B9
@@ -163,6 +163,7 @@ txt14.example.              3600    IN      TXT     "foo;"
 txt15.example.         3600    IN      TXT     "bar\\;"
 uid01.example.         3600    IN      UID     \# 1 02
 uinfo01.example.       3600    IN      UINFO   \# 1 01
+unspec01.example.      3600    IN      UNSPEC  \# 1 04
 uri01.example.         3600    IN      URI     10 20 "https://www.isc.org/"
 uri02.example.         3600    IN      URI     30 40 "https://www.isc.org/HolyCowThisSureIsAVeryLongURIRecordIDontEvenKnowWhatSomeoneWouldEverWantWithSuchAThingButTheSpecificationRequiresThatWesupportItSoHereWeGoTestingItLaLaLaLaLaLaLaSeriouslyThoughWhyWouldYouEvenConsiderUsingAURIThisLongItSeemsLikeASillyIdeaButEnhWhatAreYouGonnaDo/"
 uri03.example.         3600    IN      URI     30 40 ""
@@ -170,9 +171,9 @@ wks01.example.              3600    IN      WKS     10.0.0.1 6 0 1 2 21 23
 wks02.example.         3600    IN      WKS     10.0.0.1 17 0 1 2 53
 wks03.example.         3600    IN      WKS     10.0.0.2 6 65535
 x2501.example.         3600    IN      X25     "123456789"
-zonemd01.example.      3600    IN      ZONEMD  2019020700 1 1 C220B8A6ED5728A971902F7E3D4FD93ADEEA88B0453C2E8E8C863D46 5AB06CF34EB95B266398C98B59124FA239CB7EEB
+zonemd01.example.      3600    IN      ZONEMD  2019020700 1 1 C220B8A6ED5728A971902F7E3D4FD93ADEEA88B0453C2E8E8C863D46 5AB06CF34EB95B266398C98B59124FA239CB7EEB
 zonemd02.example.      3600    IN      ZONEMD  2019020700 1 2 08CFA1115C7B948C4163A901270395EA226A930CD2CBCF2FA9A5E6EB 85F37C8A4E114D884E66F176EAB121CB02DB7D652E0CC4827E7A3204 F166B47E5613FD27
-8f1tmio9avcom2k0frp92lgcumak0cad.example. 3600 IN NSEC3 1 0 10 D2CF0294C020CE6C 8FPNS2UCT7FBS643THP2B77PEQ77K6IU A NS SOA MX AAAA RRSIG DNSKEY NSEC3PARAM
-kcd3juae64f9c5csl1kif1htaui7un0g.example. 3600 IN NSEC3 1 0 10 D2CF0294C020CE6C KD5MN2M20340DGO0BL7NTSB8JP4BSC7E
-mr5ukvsk1l37btu4q7b1dfevft4hkqdk.example. 3600 IN NSEC3 1 0 10 D2CF0294C020CE6C MT38J6VG7S0SN5G17MCUF6IQIKFUAJ05 A AAAA RRSIG
+8f1tmio9avcom2k0frp92lgcumak0cad.example. 3600 IN NSEC3        1 0 10 D2CF0294C020CE6C 8FPNS2UCT7FBS643THP2B77PEQ77K6IU A NS SOA MX AAAA RRSIG DNSKEY NSEC3PARAM
+kcd3juae64f9c5csl1kif1htaui7un0g.example. 3600 IN NSEC3        1 0 10 D2CF0294C020CE6C KD5MN2M20340DGO0BL7NTSB8JP4BSC7E
+mr5ukvsk1l37btu4q7b1dfevft4hkqdk.example. 3600 IN NSEC3        1 0 10 D2CF0294C020CE6C MT38J6VG7S0SN5G17MCUF6IQIKFUAJ05 A AAAA RRSIG
 example.               86400   IN      SOA     ns2.example. hostmaster.example. 1397051952 5 5 1814400 3600
index 2229f9ce7a07c0160bb43465cc09297b078a05f5..4993815af8803b3f735aef550bd946298d690bff 100644 (file)
@@ -42,6 +42,7 @@ dlv.example.          3600    IN      DLV     30795 1 1 310D27F4D82C1FC2400704EA9939FE6E1CEAA3B9
 dname01.example.       3600    IN      DNAME   dname-target.
 dname02.example.       3600    IN      DNAME   dname-target.example.
 dname03.example.       3600    IN      DNAME   .
+dnskey01.example.      3600    IN      DNSKEY  512 255 1 AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7w0aRyzWZriO6i2od GWWQVucZqKVsENW91IOW4vqudngPZsY3GvQ/xVA8/7pyFj6b7Esga60z yGW6LFe9r8n6paHrlG5ojqf0BaqHT+8=
 doa01.example.         3600    IN      DOA     1234567890 1234567890 1 "image/gif" R0lGODlhKAAZAOMCAGZmZgBmmf///zOZzMz//5nM/zNmmWbM/5nMzMzMzACZ/////////////////////yH5BAEKAA8ALAAAAAAoABkAAATH8IFJK5U2a4337F5ogRkpnoCJrly7PrCKyh8c3HgAhzT35MDbbtO7/IJIHbGiOiaTxVTpSVWWLqNq1UVyapNS1wd3OAxug0LhnCubcVhsxysQnOt4ATpvvzHlFzl1AwODhWeFAgRpen5/UhheAYMFdUB4SFcpGEGGdQeCAqBBLTuSk30EeXd9pEsAbKGxjHqDSE0Sp6ixN4N1BJmbc7lIhmsBich1awPAjkY1SZR8bJWrz382SGqIBQQFQd4IsUTaX+ceuudPEQA7
 doa02.example.         3600    IN      DOA     0 1 2 "" aHR0cHM6Ly93d3cuaXNjLm9yZy8=
 ds01.example.          3600    IN      NS      ns42.example.
@@ -49,39 +50,36 @@ ds01.example.               3600    IN      DS      12892 5 2 26584835CA80C81C91999F31CFAF2A0E89D4FF1C8FAF
 ds02.example.          3600    IN      NS      ns43.example.
 ds02.example.          3600    IN      DS      12892 5 1 7AA4A3F416C2F2391FB7AB0D434F762CD62D1390
 eid01.example.         3600    IN      EID     1289AB
-eui48.example.         3600    IN      EUI48   01-23-45-67-89-ab
+eui48.example.         3600    IN      EUI48   01-23-45-67-89-ab
 eui64.example.         3600    IN      EUI64   01-23-45-67-89-ab-cd-ef
 gid01.example.         3600    IN      GID     \# 1 03
-unspec01.example.      3600    IN      UNSPEC  \# 1 04
 gpos01.example.                3600    IN      GPOS    "-22.6882" "116.8652" "250.0"
 gpos02.example.                3600    IN      GPOS    "" "" ""
 hinfo01.example.       3600    IN      HINFO   "Generic PC clone" "NetBSD-1.4"
 hinfo02.example.       3600    IN      HINFO   "PC" "NetBSD"
-ipseckey01.example.    3600    IN      IPSECKEY  10 1 2 192.0.2.38 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
-ipseckey02.example.    3600    IN      IPSECKEY  10 0 2 . AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
-ipseckey03.example.    3600    IN      IPSECKEY  10 1 2 192.0.2.3 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
-ipseckey04.example.    3600    IN      IPSECKEY  10 3 2 mygateway.example.com. AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
-ipseckey05.example.    3600    IN      IPSECKEY  10 2 2 2001:db8:0:8002::2000:1 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
+hip1.example.          3600    IN      HIP     2 200100107B1A74DF365639CC39F1D578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D
+hip2.example.          3600    IN      HIP     2 200100107B1A74DF365639CC39F1D578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D rvs.example.com.
+https0.example.                3600    IN      HTTPS   0 example.net.
+https1.example.                3600    IN      HTTPS   1 . port=60
+ipseckey01.example.    3600    IN      IPSECKEY 10 1 2 192.0.2.38 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
+ipseckey02.example.    3600    IN      IPSECKEY 10 0 2 . AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
+ipseckey03.example.    3600    IN      IPSECKEY 10 1 2 192.0.2.3 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
+ipseckey04.example.    3600    IN      IPSECKEY 10 3 2 mygateway.example.com. AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
+ipseckey05.example.    3600    IN      IPSECKEY 10 2 2 2001:db8:0:8002::2000:1 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt4AQ==
 isdn01.example.                3600    IN      ISDN    "isdn-address"
 isdn02.example.                3600    IN      ISDN    "isdn-address" "subaddress"
 isdn03.example.                3600    IN      ISDN    "isdn-address"
 isdn04.example.                3600    IN      ISDN    "isdn-address" "subaddress"
-hip1.example.          3600    IN      HIP     2 200100107B1A74DF365639CC39F1D578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D
-hip2.example.          3600    IN      HIP     2 200100107B1A74DF365639CC39F1D578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D rvs.example.com.
-dnskey01.example.      3600    IN      DNSKEY  512 255 1 AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7w0aRyzWZriO6i2od GWWQVucZqKVsENW91IOW4vqudngPZsY3GvQ/xVA8/7pyFj6b7Esga60z yGW6LFe9r8n6paHrlG5ojqf0BaqHT+8=
-https0.example.                3600    IN      HTTPS 0 example.net.
-https1.example.                3600    IN      HTTPS 1 . port=60
 keydata.example.       3600    IN      TYPE65533 \# 0
 keydata.example.       3600    IN      TYPE65533 \# 6 010203040506
 keydata.example.       3600    IN      TYPE65533 \# 18 010203040506010203040506010203040506
 kx01.example.          3600    IN      KX      10 kdc.example.
 kx02.example.          3600    IN      KX      10 .
-loc01.example.         3600    IN      LOC     60 9 0.000 N 24 39 0.000 E 10.00m 20m 2000m 20m
-loc02.example.         3600    IN      LOC     60 9 0.000 N 24 39 0.000 E 10.00m 20m 2000m 20m
 l32.example.           3600    IN      L32     10 1.2.3.4
 l64.example.           3600    IN      L64     10 14:4fff:ff20:ee64
+loc01.example.         3600    IN      LOC     60 9 0.000 N 24 39 0.000 E 10.00m 20m 2000m 20m
+loc02.example.         3600    IN      LOC     60 9 0.000 N 24 39 0.000 E 10.00m 20m 2000m 20m
 lp.example.            3600    IN      LP      10 example.net.
-nid.example.           3600    IN      NID     10 14:4fff:ff20:ee64
 mb01.example.          3600    IN      MG      madname.example.
 mb02.example.          3600    IN      MG      .
 mg01.example.          3600    IN      MG      mgmname.example.
@@ -94,6 +92,7 @@ mx01.example.         3600    IN      MX      10 mail.example.
 mx02.example.          3600    IN      MX      10 .
 naptr01.example.       3600    IN      NAPTR   0 0 "" "" "" .
 naptr02.example.       3600    IN      NAPTR   65535 65535 "blurgh" "blorf" "blllbb" foo.
+nid.example.           3600    IN      NID     10 14:4fff:ff20:ee64
 nimloc01.example.      3600    IN      NIMLOC  1289AB
 ninfo01.example.       3600    IN      NINFO   "foo"
 ninfo02.example.       3600    IN      NINFO   "foo" "bar"
@@ -112,24 +111,25 @@ ninfo14.example.  3600    IN      NINFO   "foo;"
 ninfo15.example.       3600    IN      NINFO   "bar\\;"
 ns2.example.           3600    IN      A       10.53.0.2
 ns3.example.           3600    IN      A       10.53.0.3
-nsap-ptr01.example.    3600    IN      NSAP-PTR .
 nsap-ptr01.example.    3600    IN      NSAP-PTR foo.
+nsap-ptr01.example.    3600    IN      NSAP-PTR .
 nsap01.example.                3600    IN      NSAP    0x47000580005a0000000001e133ffffff00016100
 nsap02.example.                3600    IN      NSAP    0x47000580005a0000000001e133ffffff00016100
 nsec01.example.                3600    IN      NSEC    a.secure.nil. NS SOA MX LOC RRSIG NSEC DNSKEY
 nsec02.example.                3600    IN      NSEC    . NSAP-PTR NSEC
 nsec03.example.                3600    IN      NSEC    . A
 nsec04.example.                3600    IN      NSEC    . TYPE127
-openpgpkey.example.    3600    IN      OPENPGPKEY  AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7w0aRyzWZriO6i2od GWWQVucZqKVsENW91IOW4vqudngPZsY3GvQ/xVA8/7pyFj6b7Esga60z yGW6LFe9r8n6paHrlG5ojqf0BaqHT+8=
+openpgpkey.example.    3600    IN      OPENPGPKEY AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7w0aRyzWZriO6i2od GWWQVucZqKVsENW91IOW4vqudngPZsY3GvQ/xVA8/7pyFj6b7Esga60z yGW6LFe9r8n6paHrlG5ojqf0BaqHT+8=
 ptr01.example.         3600    IN      PTR     example.
 px01.example.          3600    IN      PX      65535 foo. bar.
 px02.example.          3600    IN      PX      65535 . .
+resinfo.example.       3600    IN      RESINFO "qnamemin" "exterr=15,16,17" "infourl=https://resolver.example.com/guide"
 rkey01.example.                3600    IN      RKEY    0 255 1 AQMFD5raczCJHViKtLYhWGz8hMY9UGRuniJDBzC7w0aRyzWZriO6i2od GWWQVucZqKVsENW91IOW4vqudngPZsY3GvQ/xVA8/7pyFj6b7Esga60z yGW6LFe9r8n6paHrlG5ojqf0BaqHT+8=
 rp01.example.          3600    IN      RP      mbox-dname.example. txt-dname.example.
 rp02.example.          3600    IN      RP      . .
+rrsig01.example.       3600    IN      RRSIG   NSEC 1 3 3600 20000102030405 19961211100908 2143 foo.nil. MxFcby9k/yvedMfQgKzhH5er0Mu/vILz45IkskceFGgiWCn/GxHhai6V AuHAoNUz4YoU1tVfSCSqQYn6//11U6Nld80jEeC8aTrO+KKmCaY=
 rt01.example.          3600    IN      RT      0 intermediate-host.example.
 rt02.example.          3600    IN      RT      65535 .
-rrsig01.example.       3600    IN      RRSIG   NSEC 1 3 3600 20000102030405 19961211100908 2143 foo.nil. MxFcby9k/yvedMfQgKzhH5er0Mu/vILz45IkskceFGgiWCn/GxHhai6V AuHAoNUz4YoU1tVfSCSqQYn6//11U6Nld80jEeC8aTrO+KKmCaY=
 sink01.example.                3600    IN      SINK    1 0 0
 sink02.example.                3600    IN      SINK    8 0 2 l4ik
 smimea.example.                3600    IN      SMIMEA  1 1 2 92003BA34942DC74152E2F2C408D29ECA5A520E7F2E06BB944F4DCA3 46BAF63C1B177615D466F6C4B71C216A50292BD58C9EBDD2F74E38FE 51FFD48C43326CBC
@@ -163,6 +163,7 @@ txt14.example.              3600    IN      TXT     "foo;"
 txt15.example.         3600    IN      TXT     "bar\\;"
 uid01.example.         3600    IN      UID     \# 1 02
 uinfo01.example.       3600    IN      UINFO   \# 1 01
+unspec01.example.      3600    IN      UNSPEC  \# 1 04
 uri01.example.         3600    IN      URI     10 20 "https://www.isc.org/"
 uri02.example.         3600    IN      URI     30 40 "https://www.isc.org/HolyCowThisSureIsAVeryLongURIRecordIDontEvenKnowWhatSomeoneWouldEverWantWithSuchAThingButTheSpecificationRequiresThatWesupportItSoHereWeGoTestingItLaLaLaLaLaLaLaSeriouslyThoughWhyWouldYouEvenConsiderUsingAURIThisLongItSeemsLikeASillyIdeaButEnhWhatAreYouGonnaDo/"
 uri03.example.         3600    IN      URI     30 40 ""
@@ -170,9 +171,9 @@ wks01.example.              3600    IN      WKS     10.0.0.1 6 0 1 2 21 23
 wks02.example.         3600    IN      WKS     10.0.0.1 17 0 1 2 53
 wks03.example.         3600    IN      WKS     10.0.0.2 6 65535
 x2501.example.         3600    IN      X25     "123456789"
-zonemd01.example.      3600    IN      ZONEMD  2019020700 1 1 C220B8A6ED5728A971902F7E3D4FD93ADEEA88B0453C2E8E8C863D46 5AB06CF34EB95B266398C98B59124FA239CB7EEB
+zonemd01.example.      3600    IN      ZONEMD  2019020700 1 1 C220B8A6ED5728A971902F7E3D4FD93ADEEA88B0453C2E8E8C863D46 5AB06CF34EB95B266398C98B59124FA239CB7EEB
 zonemd02.example.      3600    IN      ZONEMD  2019020700 1 2 08CFA1115C7B948C4163A901270395EA226A930CD2CBCF2FA9A5E6EB 85F37C8A4E114D884E66F176EAB121CB02DB7D652E0CC4827E7A3204 F166B47E5613FD27
-8f1tmio9avcom2k0frp92lgcumak0cad.example. 3600 IN NSEC3 1 0 10 D2CF0294C020CE6C 8FPNS2UCT7FBS643THP2B77PEQ77K6IU A NS SOA MX AAAA RRSIG DNSKEY NSEC3PARAM
-kcd3juae64f9c5csl1kif1htaui7un0g.example. 3600 IN NSEC3 1 0 10 D2CF0294C020CE6C KD5MN2M20340DGO0BL7NTSB8JP4BSC7E
-mr5ukvsk1l37btu4q7b1dfevft4hkqdk.example. 3600 IN NSEC3 1 0 10 D2CF0294C020CE6C MT38J6VG7S0SN5G17MCUF6IQIKFUAJ05 A AAAA RRSIG
+8f1tmio9avcom2k0frp92lgcumak0cad.example. 3600 IN NSEC3        1 0 10 D2CF0294C020CE6C 8FPNS2UCT7FBS643THP2B77PEQ77K6IU A NS SOA MX AAAA RRSIG DNSKEY NSEC3PARAM
+kcd3juae64f9c5csl1kif1htaui7un0g.example. 3600 IN NSEC3        1 0 10 D2CF0294C020CE6C KD5MN2M20340DGO0BL7NTSB8JP4BSC7E
+mr5ukvsk1l37btu4q7b1dfevft4hkqdk.example. 3600 IN NSEC3        1 0 10 D2CF0294C020CE6C MT38J6VG7S0SN5G17MCUF6IQIKFUAJ05 A AAAA RRSIG
 example.               86400   IN      SOA     ns2.example. hostmaster.example. 1397051953 5 5 1814400 3600
diff --git a/lib/dns/rdata/generic/resinfo_261.c b/lib/dns/rdata/generic/resinfo_261.c
new file mode 100644 (file)
index 0000000..c5cc584
--- /dev/null
@@ -0,0 +1,146 @@
+/*
+ * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
+ *
+ * SPDX-License-Identifier: MPL-2.0
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, you can obtain one at https://mozilla.org/MPL/2.0/.
+ *
+ * See the COPYRIGHT file distributed with this work for additional
+ * information regarding copyright ownership.
+ */
+
+#ifndef RDATA_GENERIC_RESINFO_261_C
+#define RDATA_GENERIC_RESINFO_261_C
+
+#define RRTYPE_RESINFO_ATTRIBUTES (DNS_RDATATYPEATTR_SINGLETON)
+
+static isc_result_t
+fromtext_resinfo(ARGS_FROMTEXT) {
+       REQUIRE(type == dns_rdatatype_resinfo);
+
+       return (generic_fromtext_txt(CALL_FROMTEXT));
+}
+
+static isc_result_t
+totext_resinfo(ARGS_TOTEXT) {
+       REQUIRE(rdata != NULL);
+       REQUIRE(rdata->type == dns_rdatatype_resinfo);
+
+       return (generic_totext_txt(CALL_TOTEXT));
+}
+
+static isc_result_t
+fromwire_resinfo(ARGS_FROMWIRE) {
+       REQUIRE(type == dns_rdatatype_resinfo);
+
+       return (generic_fromwire_txt(CALL_FROMWIRE));
+}
+
+static isc_result_t
+towire_resinfo(ARGS_TOWIRE) {
+       REQUIRE(rdata->type == dns_rdatatype_resinfo);
+
+       UNUSED(cctx);
+
+       return (mem_tobuffer(target, rdata->data, rdata->length));
+}
+
+static int
+compare_resinfo(ARGS_COMPARE) {
+       isc_region_t r1;
+       isc_region_t r2;
+
+       REQUIRE(rdata1->type == rdata2->type);
+       REQUIRE(rdata1->rdclass == rdata2->rdclass);
+       REQUIRE(rdata1->type == dns_rdatatype_resinfo);
+
+       dns_rdata_toregion(rdata1, &r1);
+       dns_rdata_toregion(rdata2, &r2);
+       return (isc_region_compare(&r1, &r2));
+}
+
+static isc_result_t
+fromstruct_resinfo(ARGS_FROMSTRUCT) {
+       REQUIRE(type == dns_rdatatype_resinfo);
+
+       return (generic_fromstruct_txt(CALL_FROMSTRUCT));
+}
+
+static isc_result_t
+tostruct_resinfo(ARGS_TOSTRUCT) {
+       dns_rdata_resinfo_t *resinfo = target;
+
+       REQUIRE(resinfo != NULL);
+       REQUIRE(rdata != NULL);
+       REQUIRE(rdata->type == dns_rdatatype_resinfo);
+
+       resinfo->common.rdclass = rdata->rdclass;
+       resinfo->common.rdtype = rdata->type;
+       ISC_LINK_INIT(&resinfo->common, link);
+
+       return (generic_tostruct_txt(CALL_TOSTRUCT));
+}
+
+static void
+freestruct_resinfo(ARGS_FREESTRUCT) {
+       dns_rdata_resinfo_t *resinfo = source;
+
+       REQUIRE(resinfo != NULL);
+       REQUIRE(resinfo->common.rdtype == dns_rdatatype_resinfo);
+
+       generic_freestruct_txt(source);
+}
+
+static isc_result_t
+additionaldata_resinfo(ARGS_ADDLDATA) {
+       REQUIRE(rdata->type == dns_rdatatype_resinfo);
+
+       UNUSED(rdata);
+       UNUSED(owner);
+       UNUSED(add);
+       UNUSED(arg);
+
+       return (ISC_R_SUCCESS);
+}
+
+static isc_result_t
+digest_resinfo(ARGS_DIGEST) {
+       isc_region_t r;
+
+       REQUIRE(rdata->type == dns_rdatatype_resinfo);
+
+       dns_rdata_toregion(rdata, &r);
+
+       return ((digest)(arg, &r));
+}
+
+static bool
+checkowner_resinfo(ARGS_CHECKOWNER) {
+       REQUIRE(type == dns_rdatatype_resinfo);
+
+       UNUSED(name);
+       UNUSED(type);
+       UNUSED(rdclass);
+       UNUSED(wildcard);
+
+       return (true);
+}
+
+static bool
+checknames_resinfo(ARGS_CHECKNAMES) {
+       REQUIRE(rdata->type == dns_rdatatype_resinfo);
+
+       UNUSED(rdata);
+       UNUSED(owner);
+       UNUSED(bad);
+
+       return (true);
+}
+
+static int
+casecompare_resinfo(ARGS_COMPARE) {
+       return (compare_resinfo(rdata1, rdata2));
+}
+#endif /* RDATA_GENERIC_RESINFO_261_C */
diff --git a/lib/dns/rdata/generic/resinfo_261.h b/lib/dns/rdata/generic/resinfo_261.h
new file mode 100644 (file)
index 0000000..a40365b
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
+ *
+ * SPDX-License-Identifier: MPL-2.0
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, you can obtain one at https://mozilla.org/MPL/2.0/.
+ *
+ * See the COPYRIGHT file distributed with this work for additional
+ * information regarding copyright ownership.
+ */
+
+#pragma once
+
+typedef struct dns_rdata_resinfo_string {
+       uint8_t length;
+       unsigned char *data;
+} dns_rdata_resinfo_string_t;
+
+typedef struct dns_rdata_resinfo {
+       dns_rdatacommon_t common;
+       isc_mem_t *mctx;
+       unsigned char *txt;
+       uint16_t txt_len;
+       /* private */
+       uint16_t offset;
+} dns_rdata_resinfo_t;
+
+/*
+ * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
+ * via rdatastructpre.h and rdatastructsuf.h.
+ */
index 8c197d8498a8eaf809cbd1ccda627798670e8ddd..a3936f79ce288404f0677d2b6da94054edc2d52b 100644 (file)
@@ -2373,6 +2373,22 @@ ISC_RUN_TEST_IMPL(rkey) {
                    dns_rdatatype_rkey, sizeof(dns_rdata_rkey_t));
 }
 
+ISC_RUN_TEST_IMPL(resinfo) {
+       text_ok_t text_ok[] = {
+               TEXT_VALID_CHANGED("qnamemin exterr=15,16,17 "
+                                  "infourl=https://resolver.example.com/guide",
+                                  "\"qnamemin\" \"exterr=15,16,17\" "
+                                  "\"infourl=https://resolver.example.com/"
+                                  "guide\""),
+               /*
+                * Sentinel.
+                */
+               TEXT_SENTINEL()
+       };
+       check_rdata(text_ok, NULL, NULL, false, dns_rdataclass_in,
+                   dns_rdatatype_resinfo, sizeof(dns_rdata_rkey_t));
+}
+
 /* SSHFP RDATA manipulations */
 ISC_RUN_TEST_IMPL(sshfp) {
        text_ok_t text_ok[] = { TEXT_INVALID(""),     /* too short */
@@ -3153,6 +3169,7 @@ ISC_TEST_ENTRY(nsec)
 ISC_TEST_ENTRY(nsec3)
 ISC_TEST_ENTRY(nxt)
 ISC_TEST_ENTRY(rkey)
+ISC_TEST_ENTRY(resinfo)
 ISC_TEST_ENTRY(sshfp)
 ISC_TEST_ENTRY(wks)
 ISC_TEST_ENTRY(zonemd)