3 * access functions to rr definitions list.
4 * a Net::DNS like library for C
5 * LibDNS Team @ NLnet Labs
7 * (c) NLnet Labs, 2004-2006
8 * See the file LICENSE for the license
13 * Defines resource record types and constants.
16 #include "ldns/rrdef.h"
17 #include "ldns/parseutil.h"
20 static sldns_lookup_table sldns_rr_classes_data
[] = {
21 { LDNS_RR_CLASS_IN
, "IN" },
22 { LDNS_RR_CLASS_CH
, "CH" },
23 { LDNS_RR_CLASS_HS
, "HS" },
24 { LDNS_RR_CLASS_NONE
, "NONE" },
25 { LDNS_RR_CLASS_ANY
, "ANY" },
28 sldns_lookup_table
* sldns_rr_classes
= sldns_rr_classes_data
;
31 static const sldns_rdf_type type_0_wireformat
[] = { LDNS_RDF_TYPE_UNKNOWN
};
32 static const sldns_rdf_type type_a_wireformat
[] = { LDNS_RDF_TYPE_A
};
33 static const sldns_rdf_type type_ns_wireformat
[] = { LDNS_RDF_TYPE_DNAME
};
34 static const sldns_rdf_type type_md_wireformat
[] = { LDNS_RDF_TYPE_DNAME
};
35 static const sldns_rdf_type type_mf_wireformat
[] = { LDNS_RDF_TYPE_DNAME
};
36 static const sldns_rdf_type type_cname_wireformat
[] = { LDNS_RDF_TYPE_DNAME
};
37 static const sldns_rdf_type type_soa_wireformat
[] = {
38 LDNS_RDF_TYPE_DNAME
, LDNS_RDF_TYPE_DNAME
, LDNS_RDF_TYPE_INT32
,
39 LDNS_RDF_TYPE_PERIOD
, LDNS_RDF_TYPE_PERIOD
, LDNS_RDF_TYPE_PERIOD
,
42 static const sldns_rdf_type type_mb_wireformat
[] = { LDNS_RDF_TYPE_DNAME
};
43 static const sldns_rdf_type type_mg_wireformat
[] = { LDNS_RDF_TYPE_DNAME
};
44 static const sldns_rdf_type type_mr_wireformat
[] = { LDNS_RDF_TYPE_DNAME
};
45 static const sldns_rdf_type type_wks_wireformat
[] = {
46 LDNS_RDF_TYPE_A
, LDNS_RDF_TYPE_WKS
48 static const sldns_rdf_type type_ptr_wireformat
[] = { LDNS_RDF_TYPE_DNAME
};
49 static const sldns_rdf_type type_hinfo_wireformat
[] = {
50 LDNS_RDF_TYPE_STR
, LDNS_RDF_TYPE_STR
52 static const sldns_rdf_type type_minfo_wireformat
[] = {
53 LDNS_RDF_TYPE_DNAME
, LDNS_RDF_TYPE_DNAME
55 static const sldns_rdf_type type_mx_wireformat
[] = {
56 LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_DNAME
58 static const sldns_rdf_type type_rp_wireformat
[] = {
59 LDNS_RDF_TYPE_DNAME
, LDNS_RDF_TYPE_DNAME
61 static const sldns_rdf_type type_afsdb_wireformat
[] = {
62 LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_DNAME
64 static const sldns_rdf_type type_x25_wireformat
[] = { LDNS_RDF_TYPE_STR
};
65 static const sldns_rdf_type type_isdn_wireformat
[] = {
66 LDNS_RDF_TYPE_STR
, LDNS_RDF_TYPE_STR
68 static const sldns_rdf_type type_rt_wireformat
[] = {
69 LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_DNAME
71 static const sldns_rdf_type type_nsap_wireformat
[] = {
74 static const sldns_rdf_type type_nsap_ptr_wireformat
[] = {
77 static const sldns_rdf_type type_sig_wireformat
[] = {
78 LDNS_RDF_TYPE_TYPE
, LDNS_RDF_TYPE_ALG
, LDNS_RDF_TYPE_INT8
, LDNS_RDF_TYPE_INT32
,
79 LDNS_RDF_TYPE_TIME
, LDNS_RDF_TYPE_TIME
, LDNS_RDF_TYPE_INT16
,
80 LDNS_RDF_TYPE_DNAME
, LDNS_RDF_TYPE_B64
82 static const sldns_rdf_type type_key_wireformat
[] = {
83 LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_INT8
, LDNS_RDF_TYPE_INT8
, LDNS_RDF_TYPE_B64
85 static const sldns_rdf_type type_px_wireformat
[] = {
86 LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_DNAME
, LDNS_RDF_TYPE_DNAME
88 static const sldns_rdf_type type_gpos_wireformat
[] = {
89 LDNS_RDF_TYPE_STR
, LDNS_RDF_TYPE_STR
, LDNS_RDF_TYPE_STR
91 static const sldns_rdf_type type_aaaa_wireformat
[] = { LDNS_RDF_TYPE_AAAA
};
92 static const sldns_rdf_type type_loc_wireformat
[] = { LDNS_RDF_TYPE_LOC
};
93 static const sldns_rdf_type type_nxt_wireformat
[] = {
94 LDNS_RDF_TYPE_DNAME
, LDNS_RDF_TYPE_UNKNOWN
96 static const sldns_rdf_type type_eid_wireformat
[] = {
99 static const sldns_rdf_type type_nimloc_wireformat
[] = {
102 static const sldns_rdf_type type_srv_wireformat
[] = {
103 LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_DNAME
105 static const sldns_rdf_type type_atma_wireformat
[] = {
108 static const sldns_rdf_type type_naptr_wireformat
[] = {
109 LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_STR
, LDNS_RDF_TYPE_STR
, LDNS_RDF_TYPE_STR
, LDNS_RDF_TYPE_DNAME
111 static const sldns_rdf_type type_kx_wireformat
[] = {
112 LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_DNAME
114 static const sldns_rdf_type type_cert_wireformat
[] = {
115 LDNS_RDF_TYPE_CERT_ALG
, LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_ALG
, LDNS_RDF_TYPE_B64
117 static const sldns_rdf_type type_a6_wireformat
[] = { LDNS_RDF_TYPE_UNKNOWN
};
118 static const sldns_rdf_type type_dname_wireformat
[] = { LDNS_RDF_TYPE_DNAME
};
119 static const sldns_rdf_type type_sink_wireformat
[] = { LDNS_RDF_TYPE_INT8
,
120 LDNS_RDF_TYPE_INT8
, LDNS_RDF_TYPE_INT8
, LDNS_RDF_TYPE_B64
122 static const sldns_rdf_type type_apl_wireformat
[] = {
125 static const sldns_rdf_type type_ds_wireformat
[] = {
126 LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_ALG
, LDNS_RDF_TYPE_INT8
, LDNS_RDF_TYPE_HEX
128 static const sldns_rdf_type type_sshfp_wireformat
[] = {
129 LDNS_RDF_TYPE_INT8
, LDNS_RDF_TYPE_INT8
, LDNS_RDF_TYPE_HEX
131 static const sldns_rdf_type type_ipseckey_wireformat
[] = {
132 LDNS_RDF_TYPE_IPSECKEY
134 static const sldns_rdf_type type_rrsig_wireformat
[] = {
135 LDNS_RDF_TYPE_TYPE
, LDNS_RDF_TYPE_ALG
, LDNS_RDF_TYPE_INT8
, LDNS_RDF_TYPE_INT32
,
136 LDNS_RDF_TYPE_TIME
, LDNS_RDF_TYPE_TIME
, LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_DNAME
, LDNS_RDF_TYPE_B64
138 static const sldns_rdf_type type_nsec_wireformat
[] = {
139 LDNS_RDF_TYPE_DNAME
, LDNS_RDF_TYPE_NSEC
141 static const sldns_rdf_type type_dhcid_wireformat
[] = {
144 static const sldns_rdf_type type_talink_wireformat
[] = {
145 LDNS_RDF_TYPE_DNAME
, LDNS_RDF_TYPE_DNAME
147 /* nsec3 is some vars, followed by same type of data of nsec */
148 static const sldns_rdf_type type_nsec3_wireformat
[] = {
149 /* LDNS_RDF_TYPE_NSEC3_VARS, LDNS_RDF_TYPE_NSEC3_NEXT_OWNER, LDNS_RDF_TYPE_NSEC*/
150 LDNS_RDF_TYPE_INT8
, LDNS_RDF_TYPE_INT8
, LDNS_RDF_TYPE_INT16
, LDNS_RDF_TYPE_NSEC3_SALT
, LDNS_RDF_TYPE_NSEC3_NEXT_OWNER
, LDNS_RDF_TYPE_NSEC
153 static const sldns_rdf_type type_nsec3param_wireformat
[] = {
154 /* LDNS_RDF_TYPE_NSEC3_PARAMS_VARS*/
158 LDNS_RDF_TYPE_NSEC3_SALT
161 static const sldns_rdf_type type_dnskey_wireformat
[] = {
167 static const sldns_rdf_type type_tkey_wireformat
[] = {
173 LDNS_RDF_TYPE_INT16_DATA
,
174 LDNS_RDF_TYPE_INT16_DATA
,
176 static const sldns_rdf_type type_tsig_wireformat
[] = {
178 LDNS_RDF_TYPE_TSIGTIME
,
180 LDNS_RDF_TYPE_INT16_DATA
,
183 LDNS_RDF_TYPE_INT16_DATA
185 static const sldns_rdf_type type_tlsa_wireformat
[] = {
191 static const sldns_rdf_type type_hip_wireformat
[] = {
194 static const sldns_rdf_type type_nid_wireformat
[] = {
198 static const sldns_rdf_type type_l32_wireformat
[] = {
202 static const sldns_rdf_type type_l64_wireformat
[] = {
206 static const sldns_rdf_type type_lp_wireformat
[] = {
210 static const sldns_rdf_type type_eui48_wireformat
[] = {
213 static const sldns_rdf_type type_eui64_wireformat
[] = {
217 static const sldns_rdf_type type_uri_wireformat
[] = {
220 LDNS_RDF_TYPE_LONG_STR
223 static const sldns_rdf_type type_caa_wireformat
[] = {
226 LDNS_RDF_TYPE_LONG_STR
229 /* All RR's defined in 1035 are well known and can thus
230 * be compressed. See RFC3597. These RR's are:
231 * CNAME HINFO MB MD MF MG MINFO MR MX NULL NS PTR SOA TXT
233 static sldns_rr_descriptor rdata_field_descriptors
[] = {
235 { 0, NULL
, 0, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
237 {LDNS_RR_TYPE_A
, "A", 1, 1, type_a_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
239 {LDNS_RR_TYPE_NS
, "NS", 1, 1, type_ns_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_COMPRESS
, 1 },
241 {LDNS_RR_TYPE_MD
, "MD", 1, 1, type_md_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_COMPRESS
, 1 },
243 {LDNS_RR_TYPE_MF
, "MF", 1, 1, type_mf_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_COMPRESS
, 1 },
245 {LDNS_RR_TYPE_CNAME
, "CNAME", 1, 1, type_cname_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_COMPRESS
, 1 },
247 {LDNS_RR_TYPE_SOA
, "SOA", 7, 7, type_soa_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_COMPRESS
, 2 },
249 {LDNS_RR_TYPE_MB
, "MB", 1, 1, type_mb_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_COMPRESS
, 1 },
251 {LDNS_RR_TYPE_MG
, "MG", 1, 1, type_mg_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_COMPRESS
, 1 },
253 {LDNS_RR_TYPE_MR
, "MR", 1, 1, type_mr_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_COMPRESS
, 1 },
255 {LDNS_RR_TYPE_NULL
, "NULL", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
257 {LDNS_RR_TYPE_WKS
, "WKS", 2, 2, type_wks_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
259 {LDNS_RR_TYPE_PTR
, "PTR", 1, 1, type_ptr_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_COMPRESS
, 1 },
261 {LDNS_RR_TYPE_HINFO
, "HINFO", 2, 2, type_hinfo_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
263 {LDNS_RR_TYPE_MINFO
, "MINFO", 2, 2, type_minfo_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_COMPRESS
, 2 },
265 {LDNS_RR_TYPE_MX
, "MX", 2, 2, type_mx_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_COMPRESS
, 1 },
267 {LDNS_RR_TYPE_TXT
, "TXT", 1, 0, NULL
, LDNS_RDF_TYPE_STR
, LDNS_RR_NO_COMPRESS
, 0 },
269 {LDNS_RR_TYPE_RP
, "RP", 2, 2, type_rp_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 2 },
271 {LDNS_RR_TYPE_AFSDB
, "AFSDB", 2, 2, type_afsdb_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 1 },
273 {LDNS_RR_TYPE_X25
, "X25", 1, 1, type_x25_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
275 {LDNS_RR_TYPE_ISDN
, "ISDN", 1, 2, type_isdn_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
277 {LDNS_RR_TYPE_RT
, "RT", 2, 2, type_rt_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 1 },
279 {LDNS_RR_TYPE_NSAP
, "NSAP", 1, 1, type_nsap_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
281 {LDNS_RR_TYPE_NSAP_PTR
, "NSAP-PTR", 1, 1, type_nsap_ptr_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
283 {LDNS_RR_TYPE_SIG
, "SIG", 9, 9, type_sig_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 1 },
285 {LDNS_RR_TYPE_KEY
, "KEY", 4, 4, type_key_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
287 {LDNS_RR_TYPE_PX
, "PX", 3, 3, type_px_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 2 },
289 {LDNS_RR_TYPE_GPOS
, "GPOS", 3, 3, type_gpos_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
291 {LDNS_RR_TYPE_AAAA
, "AAAA", 1, 1, type_aaaa_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
293 {LDNS_RR_TYPE_LOC
, "LOC", 1, 1, type_loc_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
295 {LDNS_RR_TYPE_NXT
, "NXT", 2, 2, type_nxt_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 1 },
297 {LDNS_RR_TYPE_EID
, "EID", 1, 1, type_eid_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
299 {LDNS_RR_TYPE_NIMLOC
, "NIMLOC", 1, 1, type_nimloc_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
301 {LDNS_RR_TYPE_SRV
, "SRV", 4, 4, type_srv_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 1 },
303 {LDNS_RR_TYPE_ATMA
, "ATMA", 1, 1, type_atma_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
305 {LDNS_RR_TYPE_NAPTR
, "NAPTR", 6, 6, type_naptr_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 1 },
307 {LDNS_RR_TYPE_KX
, "KX", 2, 2, type_kx_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 1 },
309 {LDNS_RR_TYPE_CERT
, "CERT", 4, 4, type_cert_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
311 {LDNS_RR_TYPE_A6
, "A6", 1, 1, type_a6_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
313 {LDNS_RR_TYPE_DNAME
, "DNAME", 1, 1, type_dname_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 1 },
315 {LDNS_RR_TYPE_SINK
, "SINK", 1, 1, type_sink_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
317 {LDNS_RR_TYPE_OPT
, "OPT", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
319 {LDNS_RR_TYPE_APL
, "APL", 0, 0, type_apl_wireformat
, LDNS_RDF_TYPE_APL
, LDNS_RR_NO_COMPRESS
, 0 },
321 {LDNS_RR_TYPE_DS
, "DS", 4, 4, type_ds_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
323 {LDNS_RR_TYPE_SSHFP
, "SSHFP", 3, 3, type_sshfp_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
325 {LDNS_RR_TYPE_IPSECKEY
, "IPSECKEY", 1, 1, type_ipseckey_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
327 {LDNS_RR_TYPE_RRSIG
, "RRSIG", 9, 9, type_rrsig_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 1 },
329 {LDNS_RR_TYPE_NSEC
, "NSEC", 1, 2, type_nsec_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 1 },
331 {LDNS_RR_TYPE_DNSKEY
, "DNSKEY", 4, 4, type_dnskey_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
333 {LDNS_RR_TYPE_DHCID
, "DHCID", 1, 1, type_dhcid_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
335 {LDNS_RR_TYPE_NSEC3
, "NSEC3", 5, 6, type_nsec3_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
337 {LDNS_RR_TYPE_NSEC3PARAM
, "NSEC3PARAM", 4, 4, type_nsec3param_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
339 {LDNS_RR_TYPE_TLSA
, "TLSA", 4, 4, type_tlsa_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
341 {LDNS_RR_TYPE_NULL
, "TYPE53", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
342 {LDNS_RR_TYPE_NULL
, "TYPE54", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
344 * Hip ends with 0 or more Rendezvous Servers represented as dname's.
345 * Hence the LDNS_RDF_TYPE_DNAME _variable field and the _maximum field
348 {LDNS_RR_TYPE_HIP
, "HIP", 1, 1, type_hip_wireformat
, LDNS_RDF_TYPE_DNAME
, LDNS_RR_NO_COMPRESS
, 0 },
352 {LDNS_RR_TYPE_NINFO
, "NINFO", 1, 0, NULL
, LDNS_RDF_TYPE_STR
, LDNS_RR_NO_COMPRESS
, 0 },
354 {LDNS_RR_TYPE_RKEY
, "RKEY", 4, 4, type_key_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
356 {LDNS_RR_TYPE_NULL
, "TYPE56", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
357 {LDNS_RR_TYPE_NULL
, "TYPE57", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
360 {LDNS_RR_TYPE_TALINK
, "TALINK", 2, 2, type_talink_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 2 },
363 {LDNS_RR_TYPE_CDS
, "CDS", 4, 4, type_ds_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
365 {LDNS_RR_TYPE_CDNSKEY
, "CDNSKEY", 4, 4, type_dnskey_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
366 {LDNS_RR_TYPE_NULL
, "TYPE61", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
367 {LDNS_RR_TYPE_NULL
, "TYPE62", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
368 {LDNS_RR_TYPE_NULL
, "TYPE63", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
369 {LDNS_RR_TYPE_NULL
, "TYPE64", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
370 {LDNS_RR_TYPE_NULL
, "TYPE65", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
371 {LDNS_RR_TYPE_NULL
, "TYPE66", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
372 {LDNS_RR_TYPE_NULL
, "TYPE67", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
373 {LDNS_RR_TYPE_NULL
, "TYPE68", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
374 {LDNS_RR_TYPE_NULL
, "TYPE69", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
375 {LDNS_RR_TYPE_NULL
, "TYPE70", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
376 {LDNS_RR_TYPE_NULL
, "TYPE71", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
377 {LDNS_RR_TYPE_NULL
, "TYPE72", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
378 {LDNS_RR_TYPE_NULL
, "TYPE73", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
379 {LDNS_RR_TYPE_NULL
, "TYPE74", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
380 {LDNS_RR_TYPE_NULL
, "TYPE75", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
381 {LDNS_RR_TYPE_NULL
, "TYPE76", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
382 {LDNS_RR_TYPE_NULL
, "TYPE77", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
383 {LDNS_RR_TYPE_NULL
, "TYPE78", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
384 {LDNS_RR_TYPE_NULL
, "TYPE79", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
385 {LDNS_RR_TYPE_NULL
, "TYPE80", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
386 {LDNS_RR_TYPE_NULL
, "TYPE81", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
387 {LDNS_RR_TYPE_NULL
, "TYPE82", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
388 {LDNS_RR_TYPE_NULL
, "TYPE83", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
389 {LDNS_RR_TYPE_NULL
, "TYPE84", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
390 {LDNS_RR_TYPE_NULL
, "TYPE85", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
391 {LDNS_RR_TYPE_NULL
, "TYPE86", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
392 {LDNS_RR_TYPE_NULL
, "TYPE87", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
393 {LDNS_RR_TYPE_NULL
, "TYPE88", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
394 {LDNS_RR_TYPE_NULL
, "TYPE89", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
395 {LDNS_RR_TYPE_NULL
, "TYPE90", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
396 {LDNS_RR_TYPE_NULL
, "TYPE91", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
397 {LDNS_RR_TYPE_NULL
, "TYPE92", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
398 {LDNS_RR_TYPE_NULL
, "TYPE93", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
399 {LDNS_RR_TYPE_NULL
, "TYPE94", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
400 {LDNS_RR_TYPE_NULL
, "TYPE95", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
401 {LDNS_RR_TYPE_NULL
, "TYPE96", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
402 {LDNS_RR_TYPE_NULL
, "TYPE97", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
403 {LDNS_RR_TYPE_NULL
, "TYPE98", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
406 {LDNS_RR_TYPE_SPF
, "SPF", 1, 0, NULL
, LDNS_RDF_TYPE_STR
, LDNS_RR_NO_COMPRESS
, 0 },
408 /* UINFO [IANA-Reserved] */
409 {LDNS_RR_TYPE_NULL
, "TYPE100", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
410 /* UID [IANA-Reserved] */
411 {LDNS_RR_TYPE_NULL
, "TYPE101", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
412 /* GID [IANA-Reserved] */
413 {LDNS_RR_TYPE_NULL
, "TYPE102", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
414 /* UNSPEC [IANA-Reserved] */
415 {LDNS_RR_TYPE_NULL
, "TYPE103", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
418 {LDNS_RR_TYPE_NID
, "NID", 2, 2, type_nid_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
420 {LDNS_RR_TYPE_L32
, "L32", 2, 2, type_l32_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
422 {LDNS_RR_TYPE_L64
, "L64", 2, 2, type_l64_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
424 {LDNS_RR_TYPE_LP
, "LP", 2, 2, type_lp_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 1 },
427 {LDNS_RR_TYPE_EUI48
, "EUI48", 1, 1, type_eui48_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
429 {LDNS_RR_TYPE_EUI64
, "EUI64", 1, 1, type_eui64_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
431 {LDNS_RR_TYPE_NULL
, "TYPE110", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
432 {LDNS_RR_TYPE_NULL
, "TYPE111", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
433 {LDNS_RR_TYPE_NULL
, "TYPE112", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
434 {LDNS_RR_TYPE_NULL
, "TYPE113", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
435 {LDNS_RR_TYPE_NULL
, "TYPE114", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
436 {LDNS_RR_TYPE_NULL
, "TYPE115", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
437 {LDNS_RR_TYPE_NULL
, "TYPE116", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
438 {LDNS_RR_TYPE_NULL
, "TYPE117", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
439 {LDNS_RR_TYPE_NULL
, "TYPE118", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
440 {LDNS_RR_TYPE_NULL
, "TYPE119", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
441 {LDNS_RR_TYPE_NULL
, "TYPE120", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
442 {LDNS_RR_TYPE_NULL
, "TYPE121", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
443 {LDNS_RR_TYPE_NULL
, "TYPE122", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
444 {LDNS_RR_TYPE_NULL
, "TYPE123", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
445 {LDNS_RR_TYPE_NULL
, "TYPE124", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
446 {LDNS_RR_TYPE_NULL
, "TYPE125", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
447 {LDNS_RR_TYPE_NULL
, "TYPE126", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
448 {LDNS_RR_TYPE_NULL
, "TYPE127", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
449 {LDNS_RR_TYPE_NULL
, "TYPE128", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
450 {LDNS_RR_TYPE_NULL
, "TYPE129", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
451 {LDNS_RR_TYPE_NULL
, "TYPE130", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
452 {LDNS_RR_TYPE_NULL
, "TYPE131", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
453 {LDNS_RR_TYPE_NULL
, "TYPE132", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
454 {LDNS_RR_TYPE_NULL
, "TYPE133", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
455 {LDNS_RR_TYPE_NULL
, "TYPE134", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
456 {LDNS_RR_TYPE_NULL
, "TYPE135", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
457 {LDNS_RR_TYPE_NULL
, "TYPE136", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
458 {LDNS_RR_TYPE_NULL
, "TYPE137", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
459 {LDNS_RR_TYPE_NULL
, "TYPE138", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
460 {LDNS_RR_TYPE_NULL
, "TYPE139", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
461 {LDNS_RR_TYPE_NULL
, "TYPE140", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
462 {LDNS_RR_TYPE_NULL
, "TYPE141", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
463 {LDNS_RR_TYPE_NULL
, "TYPE142", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
464 {LDNS_RR_TYPE_NULL
, "TYPE143", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
465 {LDNS_RR_TYPE_NULL
, "TYPE144", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
466 {LDNS_RR_TYPE_NULL
, "TYPE145", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
467 {LDNS_RR_TYPE_NULL
, "TYPE146", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
468 {LDNS_RR_TYPE_NULL
, "TYPE147", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
469 {LDNS_RR_TYPE_NULL
, "TYPE148", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
470 {LDNS_RR_TYPE_NULL
, "TYPE149", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
471 {LDNS_RR_TYPE_NULL
, "TYPE150", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
472 {LDNS_RR_TYPE_NULL
, "TYPE151", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
473 {LDNS_RR_TYPE_NULL
, "TYPE152", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
474 {LDNS_RR_TYPE_NULL
, "TYPE153", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
475 {LDNS_RR_TYPE_NULL
, "TYPE154", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
476 {LDNS_RR_TYPE_NULL
, "TYPE155", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
477 {LDNS_RR_TYPE_NULL
, "TYPE156", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
478 {LDNS_RR_TYPE_NULL
, "TYPE157", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
479 {LDNS_RR_TYPE_NULL
, "TYPE158", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
480 {LDNS_RR_TYPE_NULL
, "TYPE159", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
481 {LDNS_RR_TYPE_NULL
, "TYPE160", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
482 {LDNS_RR_TYPE_NULL
, "TYPE161", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
483 {LDNS_RR_TYPE_NULL
, "TYPE162", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
484 {LDNS_RR_TYPE_NULL
, "TYPE163", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
485 {LDNS_RR_TYPE_NULL
, "TYPE164", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
486 {LDNS_RR_TYPE_NULL
, "TYPE165", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
487 {LDNS_RR_TYPE_NULL
, "TYPE166", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
488 {LDNS_RR_TYPE_NULL
, "TYPE167", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
489 {LDNS_RR_TYPE_NULL
, "TYPE168", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
490 {LDNS_RR_TYPE_NULL
, "TYPE169", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
491 {LDNS_RR_TYPE_NULL
, "TYPE170", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
492 {LDNS_RR_TYPE_NULL
, "TYPE171", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
493 {LDNS_RR_TYPE_NULL
, "TYPE172", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
494 {LDNS_RR_TYPE_NULL
, "TYPE173", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
495 {LDNS_RR_TYPE_NULL
, "TYPE174", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
496 {LDNS_RR_TYPE_NULL
, "TYPE175", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
497 {LDNS_RR_TYPE_NULL
, "TYPE176", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
498 {LDNS_RR_TYPE_NULL
, "TYPE177", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
499 {LDNS_RR_TYPE_NULL
, "TYPE178", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
500 {LDNS_RR_TYPE_NULL
, "TYPE179", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
501 {LDNS_RR_TYPE_NULL
, "TYPE180", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
502 {LDNS_RR_TYPE_NULL
, "TYPE181", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
503 {LDNS_RR_TYPE_NULL
, "TYPE182", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
504 {LDNS_RR_TYPE_NULL
, "TYPE183", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
505 {LDNS_RR_TYPE_NULL
, "TYPE184", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
506 {LDNS_RR_TYPE_NULL
, "TYPE185", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
507 {LDNS_RR_TYPE_NULL
, "TYPE186", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
508 {LDNS_RR_TYPE_NULL
, "TYPE187", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
509 {LDNS_RR_TYPE_NULL
, "TYPE188", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
510 {LDNS_RR_TYPE_NULL
, "TYPE189", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
511 {LDNS_RR_TYPE_NULL
, "TYPE190", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
512 {LDNS_RR_TYPE_NULL
, "TYPE191", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
513 {LDNS_RR_TYPE_NULL
, "TYPE192", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
514 {LDNS_RR_TYPE_NULL
, "TYPE193", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
515 {LDNS_RR_TYPE_NULL
, "TYPE194", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
516 {LDNS_RR_TYPE_NULL
, "TYPE195", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
517 {LDNS_RR_TYPE_NULL
, "TYPE196", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
518 {LDNS_RR_TYPE_NULL
, "TYPE197", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
519 {LDNS_RR_TYPE_NULL
, "TYPE198", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
520 {LDNS_RR_TYPE_NULL
, "TYPE199", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
521 {LDNS_RR_TYPE_NULL
, "TYPE200", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
522 {LDNS_RR_TYPE_NULL
, "TYPE201", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
523 {LDNS_RR_TYPE_NULL
, "TYPE202", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
524 {LDNS_RR_TYPE_NULL
, "TYPE203", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
525 {LDNS_RR_TYPE_NULL
, "TYPE204", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
526 {LDNS_RR_TYPE_NULL
, "TYPE205", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
527 {LDNS_RR_TYPE_NULL
, "TYPE206", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
528 {LDNS_RR_TYPE_NULL
, "TYPE207", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
529 {LDNS_RR_TYPE_NULL
, "TYPE208", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
530 {LDNS_RR_TYPE_NULL
, "TYPE209", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
531 {LDNS_RR_TYPE_NULL
, "TYPE210", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
532 {LDNS_RR_TYPE_NULL
, "TYPE211", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
533 {LDNS_RR_TYPE_NULL
, "TYPE212", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
534 {LDNS_RR_TYPE_NULL
, "TYPE213", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
535 {LDNS_RR_TYPE_NULL
, "TYPE214", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
536 {LDNS_RR_TYPE_NULL
, "TYPE215", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
537 {LDNS_RR_TYPE_NULL
, "TYPE216", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
538 {LDNS_RR_TYPE_NULL
, "TYPE217", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
539 {LDNS_RR_TYPE_NULL
, "TYPE218", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
540 {LDNS_RR_TYPE_NULL
, "TYPE219", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
541 {LDNS_RR_TYPE_NULL
, "TYPE220", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
542 {LDNS_RR_TYPE_NULL
, "TYPE221", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
543 {LDNS_RR_TYPE_NULL
, "TYPE222", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
544 {LDNS_RR_TYPE_NULL
, "TYPE223", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
545 {LDNS_RR_TYPE_NULL
, "TYPE224", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
546 {LDNS_RR_TYPE_NULL
, "TYPE225", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
547 {LDNS_RR_TYPE_NULL
, "TYPE226", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
548 {LDNS_RR_TYPE_NULL
, "TYPE227", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
549 {LDNS_RR_TYPE_NULL
, "TYPE228", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
550 {LDNS_RR_TYPE_NULL
, "TYPE229", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
551 {LDNS_RR_TYPE_NULL
, "TYPE230", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
552 {LDNS_RR_TYPE_NULL
, "TYPE231", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
553 {LDNS_RR_TYPE_NULL
, "TYPE232", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
554 {LDNS_RR_TYPE_NULL
, "TYPE233", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
555 {LDNS_RR_TYPE_NULL
, "TYPE234", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
556 {LDNS_RR_TYPE_NULL
, "TYPE235", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
557 {LDNS_RR_TYPE_NULL
, "TYPE236", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
558 {LDNS_RR_TYPE_NULL
, "TYPE237", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
559 {LDNS_RR_TYPE_NULL
, "TYPE238", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
560 {LDNS_RR_TYPE_NULL
, "TYPE239", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
561 {LDNS_RR_TYPE_NULL
, "TYPE240", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
562 {LDNS_RR_TYPE_NULL
, "TYPE241", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
563 {LDNS_RR_TYPE_NULL
, "TYPE242", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
564 {LDNS_RR_TYPE_NULL
, "TYPE243", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
565 {LDNS_RR_TYPE_NULL
, "TYPE244", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
566 {LDNS_RR_TYPE_NULL
, "TYPE245", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
567 {LDNS_RR_TYPE_NULL
, "TYPE246", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
568 {LDNS_RR_TYPE_NULL
, "TYPE247", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
569 {LDNS_RR_TYPE_NULL
, "TYPE248", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
571 /* LDNS_RDF_TYPE_INT16_DATA takes two fields (length and data) as one.
572 * So, unlike RFC 2930 spec, we have 7 min/max rdf's i.s.o. 8/9.
575 {LDNS_RR_TYPE_TKEY
, "TKEY", 7, 7, type_tkey_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 1 },
576 /* LDNS_RDF_TYPE_INT16_DATA takes two fields (length and data) as one.
577 * So, unlike RFC 2930 spec, we have 7 min/max rdf's i.s.o. 8/9.
580 {LDNS_RR_TYPE_TSIG
, "TSIG", 7, 7, type_tsig_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 1 },
582 /* IXFR: A request for a transfer of an incremental zone transfer */
583 {LDNS_RR_TYPE_IXFR
, "IXFR", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
584 /* AXFR: A request for a transfer of an entire zone */
585 {LDNS_RR_TYPE_AXFR
, "AXFR", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
586 /* MAILB: A request for mailbox-related records (MB, MG or MR) */
587 {LDNS_RR_TYPE_MAILB
, "MAILB", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
588 /* MAILA: A request for mail agent RRs (Obsolete - see MX) */
589 {LDNS_RR_TYPE_MAILA
, "MAILA", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
590 /* ANY: A request for all (available) records */
591 {LDNS_RR_TYPE_ANY
, "ANY", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
595 {LDNS_RR_TYPE_URI
, "URI", 3, 3, type_uri_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
597 {LDNS_RR_TYPE_NULL
, "TYPE256", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
600 {LDNS_RR_TYPE_CAA
, "CAA", 3, 3, type_caa_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
602 /* split in array, no longer contiguous */
606 {LDNS_RR_TYPE_TA
, "TA", 4, 4, type_ds_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
608 {LDNS_RR_TYPE_NULL
, "TYPE32768", 1, 1, type_0_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 },
611 {LDNS_RR_TYPE_DLV
, "DLV", 4, 4, type_ds_wireformat
, LDNS_RDF_TYPE_NONE
, LDNS_RR_NO_COMPRESS
, 0 }
615 * \def LDNS_RDATA_FIELD_DESCRIPTORS_COUNT
616 * computes the number of rdata fields
618 #define LDNS_RDATA_FIELD_DESCRIPTORS_COUNT \
619 (sizeof(rdata_field_descriptors)/sizeof(rdata_field_descriptors[0]))
621 const sldns_rr_descriptor
*
622 sldns_rr_descript(uint16_t type
)
625 if (type
< LDNS_RDATA_FIELD_DESCRIPTORS_COMMON
) {
626 return &rdata_field_descriptors
[type
];
628 /* because not all array index equals type code */
629 for (i
= LDNS_RDATA_FIELD_DESCRIPTORS_COMMON
;
630 i
< LDNS_RDATA_FIELD_DESCRIPTORS_COUNT
;
632 if (rdata_field_descriptors
[i
]._type
== type
) {
633 return &rdata_field_descriptors
[i
];
636 return &rdata_field_descriptors
[0];
641 sldns_rr_descriptor_minimum(const sldns_rr_descriptor
*descriptor
)
644 return descriptor
->_minimum
;
651 sldns_rr_descriptor_maximum(const sldns_rr_descriptor
*descriptor
)
654 if (descriptor
->_variable
!= LDNS_RDF_TYPE_NONE
) {
655 return 65535; /* cannot be more than 64k */
657 return descriptor
->_maximum
;
665 sldns_rr_descriptor_field_type(const sldns_rr_descriptor
*descriptor
,
668 assert(descriptor
!= NULL
);
669 assert(index
< descriptor
->_maximum
670 || descriptor
->_variable
!= LDNS_RDF_TYPE_NONE
);
671 if (index
< descriptor
->_maximum
) {
672 return descriptor
->_wireformat
[index
];
674 return descriptor
->_variable
;
679 sldns_get_rr_type_by_name(const char *name
)
682 const char *desc_name
;
683 const sldns_rr_descriptor
*desc
;
685 /* TYPEXX representation */
686 if (strlen(name
) > 4 && strncasecmp(name
, "TYPE", 4) == 0) {
687 return atoi(name
+ 4);
691 for (i
= 0; i
< (unsigned int) LDNS_RDATA_FIELD_DESCRIPTORS_COUNT
; i
++) {
692 desc
= &rdata_field_descriptors
[i
];
693 desc_name
= desc
->_name
;
695 strlen(name
) == strlen(desc_name
) &&
696 strncasecmp(name
, desc_name
, strlen(desc_name
)) == 0) {
697 /* because not all array index equals type code */
702 /* special cases for query types */
703 if (strlen(name
) == 4 && strncasecmp(name
, "IXFR", 4) == 0) {
705 } else if (strlen(name
) == 4 && strncasecmp(name
, "AXFR", 4) == 0) {
707 } else if (strlen(name
) == 5 && strncasecmp(name
, "MAILB", 5) == 0) {
709 } else if (strlen(name
) == 5 && strncasecmp(name
, "MAILA", 5) == 0) {
711 } else if (strlen(name
) == 3 && strncasecmp(name
, "ANY", 3) == 0) {
719 sldns_get_rr_class_by_name(const char *name
)
721 sldns_lookup_table
*lt
;
723 /* CLASSXX representation */
724 if (strlen(name
) > 5 && strncasecmp(name
, "CLASS", 5) == 0) {
725 return atoi(name
+ 5);
729 lt
= sldns_lookup_by_name(sldns_rr_classes
, name
);