xref: /netbsd-src/external/mpl/bind/include/dns/rdatastruct.h (revision a8c74629f602faa0ccf8a463757d7baf858bbf3a)
1 /*
2  * Copyright (C) 1998-2020  Internet Systems Consortium, Inc. ("ISC")
3  *
4  * This Source Code Form is subject to the terms of the Mozilla Public
5  * License, v. 2.0. If a copy of the MPL was not distributed with this
6  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7  */
8 
9 /***************
10  ***************
11  ***************   THIS FILE IS AUTOMATICALLY GENERATED BY gen.c.
12  ***************   DO NOT EDIT!
13  ***************
14  ***************/
15 
16 /*! \file */
17 
18 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
19 
20 /*
21  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
22  *
23  * This Source Code Form is subject to the terms of the Mozilla Public
24  * License, v. 2.0. If a copy of the MPL was not distributed with this
25  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
26  *
27  * See the COPYRIGHT file distributed with this work for additional
28  * information regarding copyright ownership.
29  */
30 
31 #ifndef DNS_RDATASTRUCT_H
32 #define DNS_RDATASTRUCT_H 1
33 
34 #include <isc/lang.h>
35 #include <isc/sockaddr.h>
36 
37 #include <dns/name.h>
38 #include <dns/types.h>
39 
40 ISC_LANG_BEGINDECLS
41 
42 typedef struct dns_rdatacommon {
43 	dns_rdataclass_t rdclass;
44 	dns_rdatatype_t rdtype;
45 	ISC_LINK(struct dns_rdatacommon) link;
46 } dns_rdatacommon_t;
47 
48 #define DNS_RDATACOMMON_INIT(_data, _rdtype, _rdclass) \
49 	do {                                           \
50 		(_data)->common.rdtype = (_rdtype);    \
51 		(_data)->common.rdclass = (_rdclass);  \
52 		ISC_LINK_INIT(&(_data)->common, link); \
53 	} while (0)
54 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
55 
56 /*
57  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
58  *
59  * This Source Code Form is subject to the terms of the Mozilla Public
60  * License, v. 2.0. If a copy of the MPL was not distributed with this
61  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
62  *
63  * See the COPYRIGHT file distributed with this work for additional
64  * information regarding copyright ownership.
65  */
66 
67 /* */
68 #ifndef IN_1_A_1_H
69 #define IN_1_A_1_H 1
70 
71 typedef struct dns_rdata_in_a {
72 	dns_rdatacommon_t common;
73 	struct in_addr in_addr;
74 } dns_rdata_in_a_t;
75 
76 #endif /* IN_1_A_1_H */
77 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
78 
79 /*
80  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
81  *
82  * This Source Code Form is subject to the terms of the Mozilla Public
83  * License, v. 2.0. If a copy of the MPL was not distributed with this
84  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
85  *
86  * See the COPYRIGHT file distributed with this work for additional
87  * information regarding copyright ownership.
88  */
89 
90 /* by Bjorn.Victor@it.uu.se, 2005-05-07 */
91 /* Based on generic/mx_15.h */
92 
93 #ifndef CH_3_A_1_H
94 #define CH_3_A_1_H 1
95 
96 typedef uint16_t ch_addr_t;
97 
98 typedef struct dns_rdata_ch_a {
99 	dns_rdatacommon_t common;
100 	isc_mem_t *mctx;
101 	dns_name_t ch_addr_dom; /* ch-addr domain for back mapping
102 				 * */
103 	ch_addr_t ch_addr;	/* chaos address (16 bit) network
104 				 * order */
105 } dns_rdata_ch_a_t;
106 
107 #endif /* CH_3_A_1_H */
108 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
109 
110 /*
111  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
112  *
113  * This Source Code Form is subject to the terms of the Mozilla Public
114  * License, v. 2.0. If a copy of the MPL was not distributed with this
115  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
116  *
117  * See the COPYRIGHT file distributed with this work for additional
118  * information regarding copyright ownership.
119  */
120 
121 /* */
122 #ifndef HS_4_A_1_H
123 #define HS_4_A_1_H 1
124 
125 typedef struct dns_rdata_hs_a {
126 	dns_rdatacommon_t common;
127 	struct in_addr in_addr;
128 } dns_rdata_hs_a_t;
129 
130 #endif /* HS_4_A_1_H */
131 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
132 
133 /*
134  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
135  *
136  * This Source Code Form is subject to the terms of the Mozilla Public
137  * License, v. 2.0. If a copy of the MPL was not distributed with this
138  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
139  *
140  * See the COPYRIGHT file distributed with this work for additional
141  * information regarding copyright ownership.
142  */
143 
144 /* */
145 #ifndef GENERIC_NS_2_H
146 #define GENERIC_NS_2_H 1
147 
148 typedef struct dns_rdata_ns {
149 	dns_rdatacommon_t common;
150 	isc_mem_t *mctx;
151 	dns_name_t name;
152 } dns_rdata_ns_t;
153 
154 #endif /* GENERIC_NS_2_H */
155 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
156 
157 /*
158  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
159  *
160  * This Source Code Form is subject to the terms of the Mozilla Public
161  * License, v. 2.0. If a copy of the MPL was not distributed with this
162  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
163  *
164  * See the COPYRIGHT file distributed with this work for additional
165  * information regarding copyright ownership.
166  */
167 
168 /* */
169 #ifndef GENERIC_MD_3_H
170 #define GENERIC_MD_3_H 1
171 
172 typedef struct dns_rdata_md {
173 	dns_rdatacommon_t common;
174 	isc_mem_t *mctx;
175 	dns_name_t md;
176 } dns_rdata_md_t;
177 
178 #endif /* GENERIC_MD_3_H */
179 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
180 
181 /*
182  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
183  *
184  * This Source Code Form is subject to the terms of the Mozilla Public
185  * License, v. 2.0. If a copy of the MPL was not distributed with this
186  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
187  *
188  * See the COPYRIGHT file distributed with this work for additional
189  * information regarding copyright ownership.
190  */
191 
192 /* */
193 #ifndef GENERIC_MF_4_H
194 #define GENERIC_MF_4_H 1
195 
196 typedef struct dns_rdata_mf {
197 	dns_rdatacommon_t common;
198 	isc_mem_t *mctx;
199 	dns_name_t mf;
200 } dns_rdata_mf_t;
201 
202 #endif /* GENERIC_MF_4_H */
203 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
204 
205 /*
206  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
207  *
208  * This Source Code Form is subject to the terms of the Mozilla Public
209  * License, v. 2.0. If a copy of the MPL was not distributed with this
210  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
211  *
212  * See the COPYRIGHT file distributed with this work for additional
213  * information regarding copyright ownership.
214  */
215 
216 #ifndef GENERIC_CNAME_5_H
217 #define GENERIC_CNAME_5_H 1
218 
219 typedef struct dns_rdata_cname {
220 	dns_rdatacommon_t common;
221 	isc_mem_t *mctx;
222 	dns_name_t cname;
223 } dns_rdata_cname_t;
224 
225 #endif /* GENERIC_CNAME_5_H */
226 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
227 
228 /*
229  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
230  *
231  * This Source Code Form is subject to the terms of the Mozilla Public
232  * License, v. 2.0. If a copy of the MPL was not distributed with this
233  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
234  *
235  * See the COPYRIGHT file distributed with this work for additional
236  * information regarding copyright ownership.
237  */
238 
239 /* */
240 #ifndef GENERIC_SOA_6_H
241 #define GENERIC_SOA_6_H 1
242 
243 typedef struct dns_rdata_soa {
244 	dns_rdatacommon_t common;
245 	isc_mem_t *mctx;
246 	dns_name_t origin;
247 	dns_name_t contact;
248 	uint32_t serial;  /*%< host order */
249 	uint32_t refresh; /*%< host order */
250 	uint32_t retry;	  /*%< host order */
251 	uint32_t expire;  /*%< host order */
252 	uint32_t minimum; /*%< host order */
253 } dns_rdata_soa_t;
254 
255 #endif /* GENERIC_SOA_6_H */
256 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
257 
258 /*
259  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
260  *
261  * This Source Code Form is subject to the terms of the Mozilla Public
262  * License, v. 2.0. If a copy of the MPL was not distributed with this
263  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
264  *
265  * See the COPYRIGHT file distributed with this work for additional
266  * information regarding copyright ownership.
267  */
268 
269 /* */
270 #ifndef GENERIC_MB_7_H
271 #define GENERIC_MB_7_H 1
272 
273 typedef struct dns_rdata_mb {
274 	dns_rdatacommon_t common;
275 	isc_mem_t *mctx;
276 	dns_name_t mb;
277 } dns_rdata_mb_t;
278 
279 #endif /* GENERIC_MB_7_H */
280 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
281 
282 /*
283  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
284  *
285  * This Source Code Form is subject to the terms of the Mozilla Public
286  * License, v. 2.0. If a copy of the MPL was not distributed with this
287  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
288  *
289  * See the COPYRIGHT file distributed with this work for additional
290  * information regarding copyright ownership.
291  */
292 
293 /* */
294 #ifndef GENERIC_MG_8_H
295 #define GENERIC_MG_8_H 1
296 
297 typedef struct dns_rdata_mg {
298 	dns_rdatacommon_t common;
299 	isc_mem_t *mctx;
300 	dns_name_t mg;
301 } dns_rdata_mg_t;
302 
303 #endif /* GENERIC_MG_8_H */
304 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
305 
306 /*
307  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
308  *
309  * This Source Code Form is subject to the terms of the Mozilla Public
310  * License, v. 2.0. If a copy of the MPL was not distributed with this
311  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
312  *
313  * See the COPYRIGHT file distributed with this work for additional
314  * information regarding copyright ownership.
315  */
316 
317 /* */
318 #ifndef GENERIC_MR_9_H
319 #define GENERIC_MR_9_H 1
320 
321 typedef struct dns_rdata_mr {
322 	dns_rdatacommon_t common;
323 	isc_mem_t *mctx;
324 	dns_name_t mr;
325 } dns_rdata_mr_t;
326 
327 #endif /* GENERIC_MR_9_H */
328 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
329 
330 /*
331  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
332  *
333  * This Source Code Form is subject to the terms of the Mozilla Public
334  * License, v. 2.0. If a copy of the MPL was not distributed with this
335  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
336  *
337  * See the COPYRIGHT file distributed with this work for additional
338  * information regarding copyright ownership.
339  */
340 
341 /* */
342 #ifndef GENERIC_NULL_10_H
343 #define GENERIC_NULL_10_H 1
344 
345 typedef struct dns_rdata_null {
346 	dns_rdatacommon_t common;
347 	isc_mem_t *mctx;
348 	uint16_t length;
349 	unsigned char *data;
350 } dns_rdata_null_t;
351 
352 #endif /* GENERIC_NULL_10_H */
353 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
354 
355 /*
356  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
357  *
358  * This Source Code Form is subject to the terms of the Mozilla Public
359  * License, v. 2.0. If a copy of the MPL was not distributed with this
360  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
361  *
362  * See the COPYRIGHT file distributed with this work for additional
363  * information regarding copyright ownership.
364  */
365 
366 #ifndef IN_1_WKS_11_H
367 #define IN_1_WKS_11_H 1
368 
369 typedef struct dns_rdata_in_wks {
370 	dns_rdatacommon_t common;
371 	isc_mem_t *mctx;
372 	struct in_addr in_addr;
373 	uint16_t protocol;
374 	unsigned char *map;
375 	uint16_t map_len;
376 } dns_rdata_in_wks_t;
377 
378 #endif /* IN_1_WKS_11_H */
379 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
380 
381 /*
382  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
383  *
384  * This Source Code Form is subject to the terms of the Mozilla Public
385  * License, v. 2.0. If a copy of the MPL was not distributed with this
386  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
387  *
388  * See the COPYRIGHT file distributed with this work for additional
389  * information regarding copyright ownership.
390  */
391 
392 /* */
393 #ifndef GENERIC_PTR_12_H
394 #define GENERIC_PTR_12_H 1
395 
396 typedef struct dns_rdata_ptr {
397 	dns_rdatacommon_t common;
398 	isc_mem_t *mctx;
399 	dns_name_t ptr;
400 } dns_rdata_ptr_t;
401 
402 #endif /* GENERIC_PTR_12_H */
403 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
404 
405 /*
406  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
407  *
408  * This Source Code Form is subject to the terms of the Mozilla Public
409  * License, v. 2.0. If a copy of the MPL was not distributed with this
410  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
411  *
412  * See the COPYRIGHT file distributed with this work for additional
413  * information regarding copyright ownership.
414  */
415 
416 #ifndef GENERIC_HINFO_13_H
417 #define GENERIC_HINFO_13_H 1
418 
419 typedef struct dns_rdata_hinfo {
420 	dns_rdatacommon_t common;
421 	isc_mem_t *mctx;
422 	char *cpu;
423 	char *os;
424 	uint8_t cpu_len;
425 	uint8_t os_len;
426 } dns_rdata_hinfo_t;
427 
428 #endif /* GENERIC_HINFO_13_H */
429 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
430 
431 /*
432  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
433  *
434  * This Source Code Form is subject to the terms of the Mozilla Public
435  * License, v. 2.0. If a copy of the MPL was not distributed with this
436  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
437  *
438  * See the COPYRIGHT file distributed with this work for additional
439  * information regarding copyright ownership.
440  */
441 
442 /* */
443 #ifndef GENERIC_MINFO_14_H
444 #define GENERIC_MINFO_14_H 1
445 
446 typedef struct dns_rdata_minfo {
447 	dns_rdatacommon_t common;
448 	isc_mem_t *mctx;
449 	dns_name_t rmailbox;
450 	dns_name_t emailbox;
451 } dns_rdata_minfo_t;
452 
453 #endif /* GENERIC_MINFO_14_H */
454 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
455 
456 /*
457  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
458  *
459  * This Source Code Form is subject to the terms of the Mozilla Public
460  * License, v. 2.0. If a copy of the MPL was not distributed with this
461  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
462  *
463  * See the COPYRIGHT file distributed with this work for additional
464  * information regarding copyright ownership.
465  */
466 
467 /* */
468 #ifndef GENERIC_MX_15_H
469 #define GENERIC_MX_15_H 1
470 
471 typedef struct dns_rdata_mx {
472 	dns_rdatacommon_t common;
473 	isc_mem_t *mctx;
474 	uint16_t pref;
475 	dns_name_t mx;
476 } dns_rdata_mx_t;
477 
478 #endif /* GENERIC_MX_15_H */
479 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
480 
481 /*
482  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
483  *
484  * This Source Code Form is subject to the terms of the Mozilla Public
485  * License, v. 2.0. If a copy of the MPL was not distributed with this
486  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
487  *
488  * See the COPYRIGHT file distributed with this work for additional
489  * information regarding copyright ownership.
490  */
491 
492 /* */
493 #ifndef GENERIC_TXT_16_H
494 #define GENERIC_TXT_16_H 1
495 
496 typedef struct dns_rdata_txt_string {
497 	uint8_t length;
498 	unsigned char *data;
499 } dns_rdata_txt_string_t;
500 
501 typedef struct dns_rdata_txt {
502 	dns_rdatacommon_t common;
503 	isc_mem_t *mctx;
504 	unsigned char *txt;
505 	uint16_t txt_len;
506 	/* private */
507 	uint16_t offset;
508 } dns_rdata_txt_t;
509 
510 /*
511  * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
512  * via rdatastructpre.h and rdatastructsuf.h.
513  */
514 
515 isc_result_t
516 dns_rdata_txt_first(dns_rdata_txt_t *);
517 
518 isc_result_t
519 dns_rdata_txt_next(dns_rdata_txt_t *);
520 
521 isc_result_t
522 dns_rdata_txt_current(dns_rdata_txt_t *, dns_rdata_txt_string_t *);
523 
524 #endif /* GENERIC_TXT_16_H */
525 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
526 
527 /*
528  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
529  *
530  * This Source Code Form is subject to the terms of the Mozilla Public
531  * License, v. 2.0. If a copy of the MPL was not distributed with this
532  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
533  *
534  * See the COPYRIGHT file distributed with this work for additional
535  * information regarding copyright ownership.
536  */
537 
538 #ifndef GENERIC_RP_17_H
539 #define GENERIC_RP_17_H 1
540 
541 /*!
542  *  \brief Per RFC1183 */
543 
544 typedef struct dns_rdata_rp {
545 	dns_rdatacommon_t common;
546 	isc_mem_t *mctx;
547 	dns_name_t mail;
548 	dns_name_t text;
549 } dns_rdata_rp_t;
550 
551 #endif /* GENERIC_RP_17_H */
552 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
553 
554 /*
555  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
556  *
557  * This Source Code Form is subject to the terms of the Mozilla Public
558  * License, v. 2.0. If a copy of the MPL was not distributed with this
559  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
560  *
561  * See the COPYRIGHT file distributed with this work for additional
562  * information regarding copyright ownership.
563  */
564 
565 #ifndef GENERIC_AFSDB_18_H
566 #define GENERIC_AFSDB_18_H 1
567 
568 /*!
569  *  \brief Per RFC1183 */
570 
571 typedef struct dns_rdata_afsdb {
572 	dns_rdatacommon_t common;
573 	isc_mem_t *mctx;
574 	uint16_t subtype;
575 	dns_name_t server;
576 } dns_rdata_afsdb_t;
577 
578 #endif /* GENERIC_AFSDB_18_H */
579 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
580 
581 /*
582  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
583  *
584  * This Source Code Form is subject to the terms of the Mozilla Public
585  * License, v. 2.0. If a copy of the MPL was not distributed with this
586  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
587  *
588  * See the COPYRIGHT file distributed with this work for additional
589  * information regarding copyright ownership.
590  */
591 
592 #ifndef GENERIC_X25_19_H
593 #define GENERIC_X25_19_H 1
594 
595 /*!
596  *  \brief Per RFC1183 */
597 
598 typedef struct dns_rdata_x25 {
599 	dns_rdatacommon_t common;
600 	isc_mem_t *mctx;
601 	unsigned char *x25;
602 	uint8_t x25_len;
603 } dns_rdata_x25_t;
604 
605 #endif /* GENERIC_X25_19_H */
606 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
607 
608 /*
609  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
610  *
611  * This Source Code Form is subject to the terms of the Mozilla Public
612  * License, v. 2.0. If a copy of the MPL was not distributed with this
613  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
614  *
615  * See the COPYRIGHT file distributed with this work for additional
616  * information regarding copyright ownership.
617  */
618 
619 #ifndef GENERIC_ISDN_20_H
620 #define GENERIC_ISDN_20_H 1
621 
622 /*!
623  * \brief Per RFC1183 */
624 
625 typedef struct dns_rdata_isdn {
626 	dns_rdatacommon_t common;
627 	isc_mem_t *mctx;
628 	char *isdn;
629 	char *subaddress;
630 	uint8_t isdn_len;
631 	uint8_t subaddress_len;
632 } dns_rdata_isdn_t;
633 
634 #endif /* GENERIC_ISDN_20_H */
635 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
636 
637 /*
638  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
639  *
640  * This Source Code Form is subject to the terms of the Mozilla Public
641  * License, v. 2.0. If a copy of the MPL was not distributed with this
642  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
643  *
644  * See the COPYRIGHT file distributed with this work for additional
645  * information regarding copyright ownership.
646  */
647 
648 #ifndef GENERIC_RT_21_H
649 #define GENERIC_RT_21_H 1
650 
651 /*!
652  *  \brief Per RFC1183 */
653 
654 typedef struct dns_rdata_rt {
655 	dns_rdatacommon_t common;
656 	isc_mem_t *mctx;
657 	uint16_t preference;
658 	dns_name_t host;
659 } dns_rdata_rt_t;
660 
661 #endif /* GENERIC_RT_21_H */
662 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
663 
664 /*
665  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
666  *
667  * This Source Code Form is subject to the terms of the Mozilla Public
668  * License, v. 2.0. If a copy of the MPL was not distributed with this
669  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
670  *
671  * See the COPYRIGHT file distributed with this work for additional
672  * information regarding copyright ownership.
673  */
674 
675 #ifndef IN_1_NSAP_22_H
676 #define IN_1_NSAP_22_H 1
677 
678 /*!
679  *  \brief Per RFC1706 */
680 
681 typedef struct dns_rdata_in_nsap {
682 	dns_rdatacommon_t common;
683 	isc_mem_t *mctx;
684 	unsigned char *nsap;
685 	uint16_t nsap_len;
686 } dns_rdata_in_nsap_t;
687 
688 #endif /* IN_1_NSAP_22_H */
689 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
690 
691 /*
692  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
693  *
694  * This Source Code Form is subject to the terms of the Mozilla Public
695  * License, v. 2.0. If a copy of the MPL was not distributed with this
696  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
697  *
698  * See the COPYRIGHT file distributed with this work for additional
699  * information regarding copyright ownership.
700  */
701 
702 #ifndef IN_1_NSAP_PTR_23_H
703 #define IN_1_NSAP_PTR_23_H 1
704 
705 /*!
706  *  \brief Per RFC1348.  Obsoleted in RFC 1706 - use PTR instead. */
707 
708 typedef struct dns_rdata_in_nsap_ptr {
709 	dns_rdatacommon_t common;
710 	isc_mem_t *mctx;
711 	dns_name_t owner;
712 } dns_rdata_in_nsap_ptr_t;
713 
714 #endif /* IN_1_NSAP_PTR_23_H */
715 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
716 
717 /*
718  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
719  *
720  * This Source Code Form is subject to the terms of the Mozilla Public
721  * License, v. 2.0. If a copy of the MPL was not distributed with this
722  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
723  *
724  * See the COPYRIGHT file distributed with this work for additional
725  * information regarding copyright ownership.
726  */
727 
728 #ifndef GENERIC_SIG_24_H
729 #define GENERIC_SIG_24_H 1
730 
731 /*!
732  *  \brief Per RFC2535 */
733 
734 typedef struct dns_rdata_sig_t {
735 	dns_rdatacommon_t common;
736 	isc_mem_t *mctx;
737 	dns_rdatatype_t covered;
738 	dns_secalg_t algorithm;
739 	uint8_t labels;
740 	uint32_t originalttl;
741 	uint32_t timeexpire;
742 	uint32_t timesigned;
743 	uint16_t keyid;
744 	dns_name_t signer;
745 	uint16_t siglen;
746 	unsigned char *signature;
747 } dns_rdata_sig_t;
748 
749 #endif /* GENERIC_SIG_24_H */
750 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
751 
752 /*
753  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
754  *
755  * This Source Code Form is subject to the terms of the Mozilla Public
756  * License, v. 2.0. If a copy of the MPL was not distributed with this
757  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
758  *
759  * See the COPYRIGHT file distributed with this work for additional
760  * information regarding copyright ownership.
761  */
762 
763 #ifndef GENERIC_KEY_25_H
764 #define GENERIC_KEY_25_H 1
765 
766 /*!
767  * \brief Per RFC2535 */
768 
769 typedef struct dns_rdata_key {
770 	dns_rdatacommon_t common;
771 	isc_mem_t *mctx;
772 	uint16_t flags;
773 	dns_secproto_t protocol;
774 	dns_secalg_t algorithm;
775 	uint16_t datalen;
776 	unsigned char *data;
777 } dns_rdata_key_t;
778 
779 #endif /* GENERIC_KEY_25_H */
780 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
781 
782 /*
783  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
784  *
785  * This Source Code Form is subject to the terms of the Mozilla Public
786  * License, v. 2.0. If a copy of the MPL was not distributed with this
787  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
788  *
789  * See the COPYRIGHT file distributed with this work for additional
790  * information regarding copyright ownership.
791  */
792 
793 #ifndef IN_1_PX_26_H
794 #define IN_1_PX_26_H 1
795 
796 /*!
797  *  \brief Per RFC2163 */
798 
799 typedef struct dns_rdata_in_px {
800 	dns_rdatacommon_t common;
801 	isc_mem_t *mctx;
802 	uint16_t preference;
803 	dns_name_t map822;
804 	dns_name_t mapx400;
805 } dns_rdata_in_px_t;
806 
807 #endif /* IN_1_PX_26_H */
808 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
809 
810 /*
811  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
812  *
813  * This Source Code Form is subject to the terms of the Mozilla Public
814  * License, v. 2.0. If a copy of the MPL was not distributed with this
815  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
816  *
817  * See the COPYRIGHT file distributed with this work for additional
818  * information regarding copyright ownership.
819  */
820 
821 #ifndef GENERIC_GPOS_27_H
822 #define GENERIC_GPOS_27_H 1
823 
824 /*!
825  *  \brief per RFC1712 */
826 
827 typedef struct dns_rdata_gpos {
828 	dns_rdatacommon_t common;
829 	isc_mem_t *mctx;
830 	char *longitude;
831 	char *latitude;
832 	char *altitude;
833 	uint8_t long_len;
834 	uint8_t lat_len;
835 	uint8_t alt_len;
836 } dns_rdata_gpos_t;
837 
838 #endif /* GENERIC_GPOS_27_H */
839 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
840 
841 /*
842  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
843  *
844  * This Source Code Form is subject to the terms of the Mozilla Public
845  * License, v. 2.0. If a copy of the MPL was not distributed with this
846  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
847  *
848  * See the COPYRIGHT file distributed with this work for additional
849  * information regarding copyright ownership.
850  */
851 
852 #ifndef IN_1_AAAA_28_H
853 #define IN_1_AAAA_28_H 1
854 
855 /*!
856  *  \brief Per RFC1886 */
857 
858 typedef struct dns_rdata_in_aaaa {
859 	dns_rdatacommon_t common;
860 	struct in6_addr in6_addr;
861 } dns_rdata_in_aaaa_t;
862 
863 #endif /* IN_1_AAAA_28_H */
864 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
865 
866 /*
867  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
868  *
869  * This Source Code Form is subject to the terms of the Mozilla Public
870  * License, v. 2.0. If a copy of the MPL was not distributed with this
871  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
872  *
873  * See the COPYRIGHT file distributed with this work for additional
874  * information regarding copyright ownership.
875  */
876 
877 #ifndef GENERIC_LOC_29_H
878 #define GENERIC_LOC_29_H 1
879 
880 /*!
881  * \brief Per RFC1876 */
882 
883 typedef struct dns_rdata_loc_0 {
884 	uint8_t version; /* must be first and zero */
885 	uint8_t size;
886 	uint8_t horizontal;
887 	uint8_t vertical;
888 	uint32_t latitude;
889 	uint32_t longitude;
890 	uint32_t altitude;
891 } dns_rdata_loc_0_t;
892 
893 typedef struct dns_rdata_loc {
894 	dns_rdatacommon_t common;
895 	union {
896 		dns_rdata_loc_0_t v0;
897 	} v;
898 } dns_rdata_loc_t;
899 
900 #endif /* GENERIC_LOC_29_H */
901 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
902 
903 /*
904  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
905  *
906  * This Source Code Form is subject to the terms of the Mozilla Public
907  * License, v. 2.0. If a copy of the MPL was not distributed with this
908  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
909  *
910  * See the COPYRIGHT file distributed with this work for additional
911  * information regarding copyright ownership.
912  */
913 
914 #ifndef GENERIC_NXT_30_H
915 #define GENERIC_NXT_30_H 1
916 
917 /*!
918  *  \brief RFC2535 */
919 
920 typedef struct dns_rdata_nxt {
921 	dns_rdatacommon_t common;
922 	isc_mem_t *mctx;
923 	dns_name_t next;
924 	unsigned char *typebits;
925 	uint16_t len;
926 } dns_rdata_nxt_t;
927 
928 #endif /* GENERIC_NXT_30_H */
929 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
930 
931 /*
932  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
933  *
934  * This Source Code Form is subject to the terms of the Mozilla Public
935  * License, v. 2.0. If a copy of the MPL was not distributed with this
936  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
937  *
938  * See the COPYRIGHT file distributed with this work for additional
939  * information regarding copyright ownership.
940  */
941 
942 #ifndef IN_1_EID_31_H
943 #define IN_1_EID_31_H 1
944 
945 /*!
946  *  \brief http://ana-3.lcs.mit.edu/~jnc/nimrod/dns.txt
947  */
948 
949 typedef struct dns_rdata_in_eid {
950 	dns_rdatacommon_t common;
951 	isc_mem_t *mctx;
952 	unsigned char *eid;
953 	uint16_t eid_len;
954 } dns_rdata_in_eid_t;
955 
956 #endif /* IN_1_EID_31_H */
957 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
958 
959 /*
960  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
961  *
962  * This Source Code Form is subject to the terms of the Mozilla Public
963  * License, v. 2.0. If a copy of the MPL was not distributed with this
964  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
965  *
966  * See the COPYRIGHT file distributed with this work for additional
967  * information regarding copyright ownership.
968  */
969 
970 #ifndef IN_1_NIMLOC_32_H
971 #define IN_1_NIMLOC_32_H 1
972 
973 /*!
974  *  \brief http://ana-3.lcs.mit.edu/~jnc/nimrod/dns.txt
975  */
976 
977 typedef struct dns_rdata_in_nimloc {
978 	dns_rdatacommon_t common;
979 	isc_mem_t *mctx;
980 	unsigned char *nimloc;
981 	uint16_t nimloc_len;
982 } dns_rdata_in_nimloc_t;
983 
984 #endif /* IN_1_NIMLOC_32_H */
985 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
986 
987 /*
988  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
989  *
990  * This Source Code Form is subject to the terms of the Mozilla Public
991  * License, v. 2.0. If a copy of the MPL was not distributed with this
992  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
993  *
994  * See the COPYRIGHT file distributed with this work for additional
995  * information regarding copyright ownership.
996  */
997 
998 #ifndef IN_1_SRV_33_H
999 #define IN_1_SRV_33_H 1
1000 
1001 /*!
1002  *  \brief Per RFC2782 */
1003 
1004 typedef struct dns_rdata_in_srv {
1005 	dns_rdatacommon_t common;
1006 	isc_mem_t *mctx;
1007 	uint16_t priority;
1008 	uint16_t weight;
1009 	uint16_t port;
1010 	dns_name_t target;
1011 } dns_rdata_in_srv_t;
1012 
1013 #endif /* IN_1_SRV_33_H */
1014 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1015 
1016 /*
1017  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1018  *
1019  * This Source Code Form is subject to the terms of the Mozilla Public
1020  * License, v. 2.0. If a copy of the MPL was not distributed with this
1021  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1022  *
1023  * See the COPYRIGHT file distributed with this work for additional
1024  * information regarding copyright ownership.
1025  */
1026 
1027 #ifndef IN_1_ATMA_22_H
1028 #define IN_1_ATMA_22_H 1
1029 
1030 /*!
1031  *  \brief Per RFC1706 */
1032 
1033 typedef struct dns_rdata_in_atma {
1034 	dns_rdatacommon_t common;
1035 	isc_mem_t *mctx;
1036 	unsigned char format;
1037 	unsigned char *atma;
1038 	uint16_t atma_len;
1039 } dns_rdata_in_atma_t;
1040 
1041 #endif /* IN_1_ATMA_22_H */
1042 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1043 
1044 /*
1045  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1046  *
1047  * This Source Code Form is subject to the terms of the Mozilla Public
1048  * License, v. 2.0. If a copy of the MPL was not distributed with this
1049  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1050  *
1051  * See the COPYRIGHT file distributed with this work for additional
1052  * information regarding copyright ownership.
1053  */
1054 
1055 #ifndef GENERIC_NAPTR_35_H
1056 #define GENERIC_NAPTR_35_H 1
1057 
1058 /*!
1059  *  \brief Per RFC2915 */
1060 
1061 typedef struct dns_rdata_naptr {
1062 	dns_rdatacommon_t common;
1063 	isc_mem_t *mctx;
1064 	uint16_t order;
1065 	uint16_t preference;
1066 	char *flags;
1067 	uint8_t flags_len;
1068 	char *service;
1069 	uint8_t service_len;
1070 	char *regexp;
1071 	uint8_t regexp_len;
1072 	dns_name_t replacement;
1073 } dns_rdata_naptr_t;
1074 
1075 #endif /* GENERIC_NAPTR_35_H */
1076 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1077 
1078 /*
1079  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1080  *
1081  * This Source Code Form is subject to the terms of the Mozilla Public
1082  * License, v. 2.0. If a copy of the MPL was not distributed with this
1083  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1084  *
1085  * See the COPYRIGHT file distributed with this work for additional
1086  * information regarding copyright ownership.
1087  */
1088 
1089 #ifndef IN_1_KX_36_H
1090 #define IN_1_KX_36_H 1
1091 
1092 /*!
1093  *  \brief Per RFC2230 */
1094 
1095 typedef struct dns_rdata_in_kx {
1096 	dns_rdatacommon_t common;
1097 	isc_mem_t *mctx;
1098 	uint16_t preference;
1099 	dns_name_t exchange;
1100 } dns_rdata_in_kx_t;
1101 
1102 #endif /* IN_1_KX_36_H */
1103 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1104 
1105 /*
1106  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1107  *
1108  * This Source Code Form is subject to the terms of the Mozilla Public
1109  * License, v. 2.0. If a copy of the MPL was not distributed with this
1110  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1111  *
1112  * See the COPYRIGHT file distributed with this work for additional
1113  * information regarding copyright ownership.
1114  */
1115 
1116 #ifndef GENERIC_CERT_37_H
1117 #define GENERIC_CERT_37_H 1
1118 
1119 /*% RFC2538 */
1120 typedef struct dns_rdata_cert {
1121 	dns_rdatacommon_t common;
1122 	isc_mem_t *mctx;
1123 	uint16_t type;
1124 	uint16_t key_tag;
1125 	uint8_t algorithm;
1126 	uint16_t length;
1127 	unsigned char *certificate;
1128 } dns_rdata_cert_t;
1129 
1130 #endif /* GENERIC_CERT_37_H */
1131 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1132 
1133 /*
1134  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1135  *
1136  * This Source Code Form is subject to the terms of the Mozilla Public
1137  * License, v. 2.0. If a copy of the MPL was not distributed with this
1138  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1139  *
1140  * See the COPYRIGHT file distributed with this work for additional
1141  * information regarding copyright ownership.
1142  */
1143 
1144 #ifndef IN_1_A6_38_H
1145 #define IN_1_A6_38_H 1
1146 
1147 /*!
1148  *  \brief Per RFC2874 */
1149 
1150 typedef struct dns_rdata_in_a6 {
1151 	dns_rdatacommon_t common;
1152 	isc_mem_t *mctx;
1153 	dns_name_t prefix;
1154 	uint8_t prefixlen;
1155 	struct in6_addr in6_addr;
1156 } dns_rdata_in_a6_t;
1157 
1158 #endif /* IN_1_A6_38_H */
1159 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1160 
1161 /*
1162  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1163  *
1164  * This Source Code Form is subject to the terms of the Mozilla Public
1165  * License, v. 2.0. If a copy of the MPL was not distributed with this
1166  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1167  *
1168  * See the COPYRIGHT file distributed with this work for additional
1169  * information regarding copyright ownership.
1170  */
1171 
1172 #ifndef GENERIC_DNAME_39_H
1173 #define GENERIC_DNAME_39_H 1
1174 
1175 /*!
1176  *  \brief per RFC2672 */
1177 
1178 typedef struct dns_rdata_dname {
1179 	dns_rdatacommon_t common;
1180 	isc_mem_t *mctx;
1181 	dns_name_t dname;
1182 } dns_rdata_dname_t;
1183 
1184 #endif /* GENERIC_DNAME_39_H */
1185 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1186 
1187 /*
1188  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1189  *
1190  * This Source Code Form is subject to the terms of the Mozilla Public
1191  * License, v. 2.0. If a copy of the MPL was not distributed with this
1192  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1193  *
1194  * See the COPYRIGHT file distributed with this work for additional
1195  * information regarding copyright ownership.
1196  */
1197 
1198 #ifndef GENERIC_SINK_40_H
1199 #define GENERIC_SINK_40_H 1
1200 
1201 typedef struct dns_rdata_sink_t {
1202 	dns_rdatacommon_t common;
1203 	isc_mem_t *mctx;
1204 	uint8_t meaning;
1205 	uint8_t coding;
1206 	uint8_t subcoding;
1207 	uint16_t datalen;
1208 	unsigned char *data;
1209 } dns_rdata_sink_t;
1210 
1211 #endif /* GENERIC_SINK_40_H */
1212 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1213 
1214 /*
1215  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1216  *
1217  * This Source Code Form is subject to the terms of the Mozilla Public
1218  * License, v. 2.0. If a copy of the MPL was not distributed with this
1219  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1220  *
1221  * See the COPYRIGHT file distributed with this work for additional
1222  * information regarding copyright ownership.
1223  */
1224 
1225 #ifndef GENERIC_OPT_41_H
1226 #define GENERIC_OPT_41_H 1
1227 
1228 /*!
1229  *  \brief Per RFC2671 */
1230 
1231 typedef struct dns_rdata_opt_opcode {
1232 	uint16_t opcode;
1233 	uint16_t length;
1234 	unsigned char *data;
1235 } dns_rdata_opt_opcode_t;
1236 
1237 typedef struct dns_rdata_opt {
1238 	dns_rdatacommon_t common;
1239 	isc_mem_t *mctx;
1240 	unsigned char *options;
1241 	uint16_t length;
1242 	/* private */
1243 	uint16_t offset;
1244 } dns_rdata_opt_t;
1245 
1246 /*
1247  * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
1248  * via rdatastructpre.h and rdatastructsuf.h.
1249  */
1250 
1251 isc_result_t
1252 dns_rdata_opt_first(dns_rdata_opt_t *);
1253 
1254 isc_result_t
1255 dns_rdata_opt_next(dns_rdata_opt_t *);
1256 
1257 isc_result_t
1258 dns_rdata_opt_current(dns_rdata_opt_t *, dns_rdata_opt_opcode_t *);
1259 
1260 #endif /* GENERIC_OPT_41_H */
1261 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1262 
1263 /*
1264  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1265  *
1266  * This Source Code Form is subject to the terms of the Mozilla Public
1267  * License, v. 2.0. If a copy of the MPL was not distributed with this
1268  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1269  *
1270  * See the COPYRIGHT file distributed with this work for additional
1271  * information regarding copyright ownership.
1272  */
1273 
1274 /* */
1275 #ifndef IN_1_APL_42_H
1276 #define IN_1_APL_42_H 1
1277 
1278 typedef struct dns_rdata_apl_ent {
1279 	bool negative;
1280 	uint16_t family;
1281 	uint8_t prefix;
1282 	uint8_t length;
1283 	unsigned char *data;
1284 } dns_rdata_apl_ent_t;
1285 
1286 typedef struct dns_rdata_in_apl {
1287 	dns_rdatacommon_t common;
1288 	isc_mem_t *mctx;
1289 	/* type & class specific elements */
1290 	unsigned char *apl;
1291 	uint16_t apl_len;
1292 	/* private */
1293 	uint16_t offset;
1294 } dns_rdata_in_apl_t;
1295 
1296 /*
1297  * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
1298  * via rdatastructpre.h and rdatastructsuf.h.
1299  */
1300 
1301 isc_result_t
1302 dns_rdata_apl_first(dns_rdata_in_apl_t *);
1303 
1304 isc_result_t
1305 dns_rdata_apl_next(dns_rdata_in_apl_t *);
1306 
1307 isc_result_t
1308 dns_rdata_apl_current(dns_rdata_in_apl_t *, dns_rdata_apl_ent_t *);
1309 
1310 unsigned int
1311 dns_rdata_apl_count(const dns_rdata_in_apl_t *apl);
1312 
1313 #endif /* IN_1_APL_42_H */
1314 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1315 
1316 /*
1317  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1318  *
1319  * This Source Code Form is subject to the terms of the Mozilla Public
1320  * License, v. 2.0. If a copy of the MPL was not distributed with this
1321  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1322  *
1323  * See the COPYRIGHT file distributed with this work for additional
1324  * information regarding copyright ownership.
1325  */
1326 
1327 #ifndef GENERIC_DS_43_H
1328 #define GENERIC_DS_43_H 1
1329 
1330 /*!
1331  *  \brief per draft-ietf-dnsext-delegation-signer-05.txt */
1332 typedef struct dns_rdata_ds {
1333 	dns_rdatacommon_t common;
1334 	isc_mem_t *mctx;
1335 	uint16_t key_tag;
1336 	dns_secalg_t algorithm;
1337 	dns_dsdigest_t digest_type;
1338 	uint16_t length;
1339 	unsigned char *digest;
1340 } dns_rdata_ds_t;
1341 
1342 #endif /* GENERIC_DS_43_H */
1343 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1344 
1345 /*
1346  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1347  *
1348  * This Source Code Form is subject to the terms of the Mozilla Public
1349  * License, v. 2.0. If a copy of the MPL was not distributed with this
1350  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1351  *
1352  * See the COPYRIGHT file distributed with this work for additional
1353  * information regarding copyright ownership.
1354  */
1355 
1356 /*!
1357  *  \brief Per RFC 4255 */
1358 
1359 #ifndef GENERIC_SSHFP_44_H
1360 #define GENERIC_SSHFP_44_H 1
1361 
1362 typedef struct dns_rdata_sshfp {
1363 	dns_rdatacommon_t common;
1364 	isc_mem_t *mctx;
1365 	uint8_t algorithm;
1366 	uint8_t digest_type;
1367 	uint16_t length;
1368 	unsigned char *digest;
1369 } dns_rdata_sshfp_t;
1370 
1371 #endif /* GENERIC_SSHFP_44_H */
1372 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1373 
1374 /*
1375  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1376  *
1377  * This Source Code Form is subject to the terms of the Mozilla Public
1378  * License, v. 2.0. If a copy of the MPL was not distributed with this
1379  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1380  *
1381  * See the COPYRIGHT file distributed with this work for additional
1382  * information regarding copyright ownership.
1383  */
1384 
1385 #ifndef GENERIC_IPSECKEY_45_H
1386 #define GENERIC_IPSECKEY_45_H 1
1387 
1388 typedef struct dns_rdata_ipseckey {
1389 	dns_rdatacommon_t common;
1390 	isc_mem_t *mctx;
1391 	uint8_t precedence;
1392 	uint8_t gateway_type;
1393 	uint8_t algorithm;
1394 	struct in_addr in_addr;	  /* gateway type 1 */
1395 	struct in6_addr in6_addr; /* gateway type 2 */
1396 	dns_name_t gateway;	  /* gateway type 3 */
1397 	unsigned char *key;
1398 	uint16_t keylength;
1399 } dns_rdata_ipseckey_t;
1400 
1401 #endif /* GENERIC_IPSECKEY_45_H */
1402 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1403 
1404 /*
1405  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1406  *
1407  * This Source Code Form is subject to the terms of the Mozilla Public
1408  * License, v. 2.0. If a copy of the MPL was not distributed with this
1409  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1410  *
1411  * See the COPYRIGHT file distributed with this work for additional
1412  * information regarding copyright ownership.
1413  */
1414 
1415 #ifndef GENERIC_DNSSIG_46_H
1416 #define GENERIC_DNSSIG_46_H 1
1417 
1418 /*!
1419  *  \brief Per RFC2535 */
1420 typedef struct dns_rdata_rrsig {
1421 	dns_rdatacommon_t common;
1422 	isc_mem_t *mctx;
1423 	dns_rdatatype_t covered;
1424 	dns_secalg_t algorithm;
1425 	uint8_t labels;
1426 	uint32_t originalttl;
1427 	uint32_t timeexpire;
1428 	uint32_t timesigned;
1429 	uint16_t keyid;
1430 	dns_name_t signer;
1431 	uint16_t siglen;
1432 	unsigned char *signature;
1433 } dns_rdata_rrsig_t;
1434 
1435 #endif /* GENERIC_DNSSIG_46_H */
1436 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1437 
1438 /*
1439  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1440  *
1441  * This Source Code Form is subject to the terms of the Mozilla Public
1442  * License, v. 2.0. If a copy of the MPL was not distributed with this
1443  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1444  *
1445  * See the COPYRIGHT file distributed with this work for additional
1446  * information regarding copyright ownership.
1447  */
1448 
1449 #ifndef GENERIC_NSEC_47_H
1450 #define GENERIC_NSEC_47_H 1
1451 
1452 /*!
1453  * \brief Per RFC 3845 */
1454 
1455 typedef struct dns_rdata_nsec {
1456 	dns_rdatacommon_t common;
1457 	isc_mem_t *mctx;
1458 	dns_name_t next;
1459 	unsigned char *typebits;
1460 	uint16_t len;
1461 } dns_rdata_nsec_t;
1462 
1463 #endif /* GENERIC_NSEC_47_H */
1464 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1465 
1466 /*
1467  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1468  *
1469  * This Source Code Form is subject to the terms of the Mozilla Public
1470  * License, v. 2.0. If a copy of the MPL was not distributed with this
1471  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1472  *
1473  * See the COPYRIGHT file distributed with this work for additional
1474  * information regarding copyright ownership.
1475  */
1476 
1477 #ifndef GENERIC_DNSKEY_48_H
1478 #define GENERIC_DNSKEY_48_H 1
1479 
1480 /*!
1481  *  \brief per RFC2535
1482  */
1483 
1484 typedef struct dns_rdata_key dns_rdata_dnskey_t;
1485 
1486 #endif /* GENERIC_DNSKEY_48_H */
1487 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1488 
1489 /*
1490  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1491  *
1492  * This Source Code Form is subject to the terms of the Mozilla Public
1493  * License, v. 2.0. If a copy of the MPL was not distributed with this
1494  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1495  *
1496  * See the COPYRIGHT file distributed with this work for additional
1497  * information regarding copyright ownership.
1498  */
1499 
1500 /* */
1501 #ifndef IN_1_DHCID_49_H
1502 #define IN_1_DHCID_49_H 1
1503 
1504 typedef struct dns_rdata_in_dhcid {
1505 	dns_rdatacommon_t common;
1506 	isc_mem_t *mctx;
1507 	unsigned char *dhcid;
1508 	unsigned int length;
1509 } dns_rdata_in_dhcid_t;
1510 
1511 #endif /* IN_1_DHCID_49_H */
1512 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1513 
1514 /*
1515  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1516  *
1517  * This Source Code Form is subject to the terms of the Mozilla Public
1518  * License, v. 2.0. If a copy of the MPL was not distributed with this
1519  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1520  *
1521  * See the COPYRIGHT file distributed with this work for additional
1522  * information regarding copyright ownership.
1523  */
1524 
1525 #ifndef GENERIC_NSEC3_50_H
1526 #define GENERIC_NSEC3_50_H 1
1527 
1528 /*!
1529  * \brief Per RFC 5155 */
1530 
1531 #include <isc/iterated_hash.h>
1532 
1533 typedef struct dns_rdata_nsec3 {
1534 	dns_rdatacommon_t common;
1535 	isc_mem_t *mctx;
1536 	dns_hash_t hash;
1537 	unsigned char flags;
1538 	dns_iterations_t iterations;
1539 	unsigned char salt_length;
1540 	unsigned char next_length;
1541 	uint16_t len;
1542 	unsigned char *salt;
1543 	unsigned char *next;
1544 	unsigned char *typebits;
1545 } dns_rdata_nsec3_t;
1546 
1547 /*
1548  * The corresponding NSEC3 interval is OPTOUT indicating possible
1549  * insecure delegations.
1550  */
1551 #define DNS_NSEC3FLAG_OPTOUT 0x01U
1552 
1553 /*%
1554  * The following flags are used in the private-type record (implemented in
1555  * lib/dns/private.c) which is used to store NSEC3PARAM data during the
1556  * time when it is not legal to have an actual NSEC3PARAM record in the
1557  * zone.  They are defined here because the private-type record uses the
1558  * same flags field for the OPTOUT flag above and for the private flags
1559  * below.  XXX: This should be considered for refactoring.
1560  */
1561 
1562 /*%
1563  * Non-standard, private type only.
1564  *
1565  * Create a corresponding NSEC3 chain.
1566  * Once the NSEC3 chain is complete this flag will be removed to signal
1567  * that there is a complete chain.
1568  *
1569  * This flag is automatically set when a NSEC3PARAM record is added to
1570  * the zone via UPDATE.
1571  *
1572  * NSEC3PARAM records containing this flag should never be published,
1573  * but if they are, they should be ignored by RFC 5155 compliant
1574  * nameservers.
1575  */
1576 #define DNS_NSEC3FLAG_CREATE 0x80U
1577 
1578 /*%
1579  * Non-standard, private type only.
1580  *
1581  * The corresponding NSEC3 set is to be removed once the NSEC chain
1582  * has been generated.
1583  *
1584  * This flag is automatically set when the last active NSEC3PARAM record
1585  * is removed from the zone via UPDATE.
1586  *
1587  * NSEC3PARAM records containing this flag should never be published,
1588  * but if they are, they should be ignored by RFC 5155 compliant
1589  * nameservers.
1590  */
1591 #define DNS_NSEC3FLAG_REMOVE 0x40U
1592 
1593 /*%
1594  * Non-standard, private type only.
1595  *
1596  * When set with the CREATE flag, a corresponding NSEC3 chain will be
1597  * created when the zone becomes capable of supporting one (i.e., when it
1598  * has a DNSKEY RRset containing at least one NSEC3-capable algorithm).
1599  * Without this flag, NSEC3 chain creation would be attempted immediately,
1600  * fail, and the private type record would be removed.  With it, the NSEC3
1601  * parameters are stored until they can be used.  When the zone has the
1602  * necessary prerequisites for NSEC3, then the INITIAL flag can be cleared,
1603  * and the record will be cleaned up normally.
1604  *
1605  * NSEC3PARAM records containing this flag should never be published, but
1606  * if they are, they should be ignored by RFC 5155 compliant nameservers.
1607  */
1608 #define DNS_NSEC3FLAG_INITIAL 0x20U
1609 
1610 /*%
1611  * Non-standard, private type only.
1612  *
1613  * Prevent the creation of a NSEC chain before the last NSEC3 chain
1614  * is removed.  This will normally only be set when the zone is
1615  * transitioning from secure with NSEC3 chains to insecure.
1616  *
1617  * NSEC3PARAM records containing this flag should never be published,
1618  * but if they are, they should be ignored by RFC 5155 compliant
1619  * nameservers.
1620  */
1621 #define DNS_NSEC3FLAG_NONSEC 0x10U
1622 
1623 #endif /* GENERIC_NSEC3_50_H */
1624 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1625 
1626 /*
1627  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1628  *
1629  * This Source Code Form is subject to the terms of the Mozilla Public
1630  * License, v. 2.0. If a copy of the MPL was not distributed with this
1631  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1632  *
1633  * See the COPYRIGHT file distributed with this work for additional
1634  * information regarding copyright ownership.
1635  */
1636 
1637 #ifndef GENERIC_NSEC3PARAM_51_H
1638 #define GENERIC_NSEC3PARAM_51_H 1
1639 
1640 /*!
1641  * \brief Per RFC 5155 */
1642 
1643 #include <isc/iterated_hash.h>
1644 
1645 typedef struct dns_rdata_nsec3param {
1646 	dns_rdatacommon_t common;
1647 	isc_mem_t *mctx;
1648 	dns_hash_t hash;
1649 	unsigned char flags; /* DNS_NSEC3FLAG_* */
1650 	dns_iterations_t iterations;
1651 	unsigned char salt_length;
1652 	unsigned char *salt;
1653 } dns_rdata_nsec3param_t;
1654 
1655 #endif /* GENERIC_NSEC3PARAM_51_H */
1656 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1657 
1658 /*
1659  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1660  *
1661  * This Source Code Form is subject to the terms of the Mozilla Public
1662  * License, v. 2.0. If a copy of the MPL was not distributed with this
1663  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1664  *
1665  * See the COPYRIGHT file distributed with this work for additional
1666  * information regarding copyright ownership.
1667  */
1668 
1669 #ifndef GENERIC_TLSA_52_H
1670 #define GENERIC_TLSA_52_H 1
1671 
1672 /*!
1673  *  \brief per rfc6698.txt
1674  */
1675 typedef struct dns_rdata_tlsa {
1676 	dns_rdatacommon_t common;
1677 	isc_mem_t *mctx;
1678 	uint8_t usage;
1679 	uint8_t selector;
1680 	uint8_t match;
1681 	uint16_t length;
1682 	unsigned char *data;
1683 } dns_rdata_tlsa_t;
1684 
1685 #endif /* GENERIC_TLSA_52_H */
1686 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1687 
1688 /*
1689  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1690  *
1691  * This Source Code Form is subject to the terms of the Mozilla Public
1692  * License, v. 2.0. If a copy of the MPL was not distributed with this
1693  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1694  *
1695  * See the COPYRIGHT file distributed with this work for additional
1696  * information regarding copyright ownership.
1697  */
1698 
1699 #ifndef GENERIC_SMIMEA_53_H
1700 #define GENERIC_SMIMEA_53_H 1
1701 
1702 typedef struct dns_rdata_tlsa dns_rdata_smimea_t;
1703 
1704 #endif /* GENERIC_SMIMEA_53_H */
1705 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1706 
1707 /*
1708  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1709  *
1710  * This Source Code Form is subject to the terms of the Mozilla Public
1711  * License, v. 2.0. If a copy of the MPL was not distributed with this
1712  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1713  *
1714  * See the COPYRIGHT file distributed with this work for additional
1715  * information regarding copyright ownership.
1716  */
1717 
1718 #ifndef GENERIC_HIP_5_H
1719 #define GENERIC_HIP_5_H 1
1720 
1721 /* RFC 5205 */
1722 
1723 typedef struct dns_rdata_hip {
1724 	dns_rdatacommon_t common;
1725 	isc_mem_t *mctx;
1726 	unsigned char *hit;
1727 	unsigned char *key;
1728 	unsigned char *servers;
1729 	uint8_t algorithm;
1730 	uint8_t hit_len;
1731 	uint16_t key_len;
1732 	uint16_t servers_len;
1733 	/* Private */
1734 	uint16_t offset;
1735 } dns_rdata_hip_t;
1736 
1737 isc_result_t
1738 dns_rdata_hip_first(dns_rdata_hip_t *);
1739 
1740 isc_result_t
1741 dns_rdata_hip_next(dns_rdata_hip_t *);
1742 
1743 void
1744 dns_rdata_hip_current(dns_rdata_hip_t *, dns_name_t *);
1745 
1746 #endif /* GENERIC_HIP_5_H */
1747 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1748 
1749 /*
1750  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1751  *
1752  * This Source Code Form is subject to the terms of the Mozilla Public
1753  * License, v. 2.0. If a copy of the MPL was not distributed with this
1754  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1755  *
1756  * See the COPYRIGHT file distributed with this work for additional
1757  * information regarding copyright ownership.
1758  */
1759 
1760 /* */
1761 #ifndef GENERIC_NINFO_56_H
1762 #define GENERIC_NINFO_56_H 1
1763 
1764 typedef struct dns_rdata_txt_string dns_rdata_ninfo_string_t;
1765 
1766 typedef struct dns_rdata_txt dns_rdata_ninfo_t;
1767 
1768 /*
1769  * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
1770  * via rdatastructpre.h and rdatastructsuf.h.
1771  */
1772 
1773 isc_result_t
1774 dns_rdata_ninfo_first(dns_rdata_ninfo_t *);
1775 
1776 isc_result_t
1777 dns_rdata_ninfo_next(dns_rdata_ninfo_t *);
1778 
1779 isc_result_t
1780 dns_rdata_ninfo_current(dns_rdata_ninfo_t *, dns_rdata_ninfo_string_t *);
1781 
1782 #endif /* GENERIC_NINFO_16_H */
1783 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1784 
1785 /*
1786  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1787  *
1788  * This Source Code Form is subject to the terms of the Mozilla Public
1789  * License, v. 2.0. If a copy of the MPL was not distributed with this
1790  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1791  *
1792  * See the COPYRIGHT file distributed with this work for additional
1793  * information regarding copyright ownership.
1794  */
1795 
1796 #ifndef GENERIC_RKEY_57_H
1797 #define GENERIC_RKEY_57_H 1
1798 
1799 typedef struct dns_rdata_key dns_rdata_rkey_t;
1800 
1801 #endif /* GENERIC_RKEY_57_H */
1802 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1803 
1804 /*
1805  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1806  *
1807  * This Source Code Form is subject to the terms of the Mozilla Public
1808  * License, v. 2.0. If a copy of the MPL was not distributed with this
1809  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1810  *
1811  * See the COPYRIGHT file distributed with this work for additional
1812  * information regarding copyright ownership.
1813  */
1814 
1815 /*
1816  * http://www.iana.org/assignments/dns-parameters/TALINK/talink-completed-template
1817  */
1818 
1819 #ifndef GENERIC_TALINK_58_H
1820 #define GENERIC_TALINK_58_H 1
1821 
1822 typedef struct dns_rdata_talink {
1823 	dns_rdatacommon_t common;
1824 	isc_mem_t *mctx;
1825 	dns_name_t prev;
1826 	dns_name_t next;
1827 } dns_rdata_talink_t;
1828 
1829 #endif /* GENERIC_TALINK_58_H */
1830 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1831 
1832 /*
1833  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1834  *
1835  * This Source Code Form is subject to the terms of the Mozilla Public
1836  * License, v. 2.0. If a copy of the MPL was not distributed with this
1837  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1838  *
1839  * See the COPYRIGHT file distributed with this work for additional
1840  * information regarding copyright ownership.
1841  */
1842 
1843 #ifndef GENERIC_CDS_59_H
1844 #define GENERIC_CDS_59_H 1
1845 
1846 /* CDS records have the same RDATA fields as DS records. */
1847 typedef struct dns_rdata_ds dns_rdata_cds_t;
1848 
1849 #endif /* GENERIC_CDS_59_H */
1850 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1851 
1852 /*
1853  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1854  *
1855  * This Source Code Form is subject to the terms of the Mozilla Public
1856  * License, v. 2.0. If a copy of the MPL was not distributed with this
1857  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1858  *
1859  * See the COPYRIGHT file distributed with this work for additional
1860  * information regarding copyright ownership.
1861  */
1862 
1863 #ifndef GENERIC_CDNSKEY_60_H
1864 #define GENERIC_CDNSKEY_60_H 1
1865 
1866 /* CDNSKEY records have the same RDATA fields as DNSKEY records. */
1867 typedef struct dns_rdata_key dns_rdata_cdnskey_t;
1868 
1869 #endif /* GENERIC_CDNSKEY_60_H */
1870 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1871 
1872 /*
1873  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1874  *
1875  * This Source Code Form is subject to the terms of the Mozilla Public
1876  * License, v. 2.0. If a copy of the MPL was not distributed with this
1877  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1878  *
1879  * See the COPYRIGHT file distributed with this work for additional
1880  * information regarding copyright ownership.
1881  */
1882 
1883 #ifndef GENERIC_OPENPGPKEY_61_H
1884 #define GENERIC_OPENPGPKEY_61_H 1
1885 
1886 typedef struct dns_rdata_openpgpkey {
1887 	dns_rdatacommon_t common;
1888 	isc_mem_t *mctx;
1889 	uint16_t length;
1890 	unsigned char *keyring;
1891 } dns_rdata_openpgpkey_t;
1892 
1893 #endif /* GENERIC_OPENPGPKEY_61_H */
1894 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1895 
1896 /*
1897  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1898  *
1899  * This Source Code Form is subject to the terms of the Mozilla Public
1900  * License, v. 2.0. If a copy of the MPL was not distributed with this
1901  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1902  *
1903  * See the COPYRIGHT file distributed with this work for additional
1904  * information regarding copyright ownership.
1905  */
1906 
1907 #ifndef GENERIC_CSYNC_62_H
1908 #define GENERIC_CSYNC_62_H 1
1909 
1910 /*!
1911  * \brief Per RFC 7477
1912  */
1913 
1914 typedef struct dns_rdata_csync {
1915 	dns_rdatacommon_t common;
1916 	isc_mem_t *mctx;
1917 	uint32_t serial;
1918 	uint16_t flags;
1919 	unsigned char *typebits;
1920 	uint16_t len;
1921 } dns_rdata_csync_t;
1922 
1923 #endif /* GENERIC_CSYNC_62_H */
1924 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1925 
1926 /*
1927  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1928  *
1929  * This Source Code Form is subject to the terms of the Mozilla Public
1930  * License, v. 2.0. If a copy of the MPL was not distributed with this
1931  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1932  *
1933  * See the COPYRIGHT file distributed with this work for additional
1934  * information regarding copyright ownership.
1935  */
1936 
1937 #ifndef GENERIC_ZONEMD_63_H
1938 #define GENERIC_ZONEMD_63_H 1
1939 
1940 /* Digest type(s). Currently only SHA-384 is defined. */
1941 #define DNS_ZONEMD_DIGEST_SHA384 (1)
1942 
1943 /*
1944  *  \brief per draft-wessels-zone-digest-05
1945  */
1946 typedef struct dns_rdata_zonemd {
1947 	dns_rdatacommon_t common;
1948 	isc_mem_t *mctx;
1949 	uint32_t serial;
1950 	uint8_t digest_type;
1951 	uint8_t reserved;
1952 	unsigned char *digest;
1953 	uint16_t length;
1954 } dns_rdata_zonemd_t;
1955 
1956 #endif /* GENERIC_ZONEMD_63_H */
1957 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1958 
1959 /*
1960  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1961  *
1962  * This Source Code Form is subject to the terms of the Mozilla Public
1963  * License, v. 2.0. If a copy of the MPL was not distributed with this
1964  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
1965  *
1966  * See the COPYRIGHT file distributed with this work for additional
1967  * information regarding copyright ownership.
1968  */
1969 
1970 #ifndef GENERIC_SPF_99_H
1971 #define GENERIC_SPF_99_H 1
1972 
1973 typedef struct dns_rdata_spf_string {
1974 	uint8_t length;
1975 	unsigned char *data;
1976 } dns_rdata_spf_string_t;
1977 
1978 typedef struct dns_rdata_spf {
1979 	dns_rdatacommon_t common;
1980 	isc_mem_t *mctx;
1981 	unsigned char *txt;
1982 	uint16_t txt_len;
1983 	/* private */
1984 	uint16_t offset;
1985 } dns_rdata_spf_t;
1986 
1987 /*
1988  * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
1989  * via rdatastructpre.h and rdatastructsuf.h.
1990  */
1991 #endif /* GENERIC_SPF_99_H */
1992 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
1993 
1994 /*
1995  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1996  *
1997  * This Source Code Form is subject to the terms of the Mozilla Public
1998  * License, v. 2.0. If a copy of the MPL was not distributed with this
1999  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2000  *
2001  * See the COPYRIGHT file distributed with this work for additional
2002  * information regarding copyright ownership.
2003  */
2004 
2005 /* */
2006 #ifndef GENERIC_NID_104_H
2007 #define GENERIC_NID_104_H 1
2008 
2009 typedef struct dns_rdata_nid {
2010 	dns_rdatacommon_t common;
2011 	uint16_t pref;
2012 	unsigned char nid[8];
2013 } dns_rdata_nid_t;
2014 
2015 #endif /* GENERIC_NID_104_H */
2016 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2017 
2018 /*
2019  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2020  *
2021  * This Source Code Form is subject to the terms of the Mozilla Public
2022  * License, v. 2.0. If a copy of the MPL was not distributed with this
2023  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2024  *
2025  * See the COPYRIGHT file distributed with this work for additional
2026  * information regarding copyright ownership.
2027  */
2028 
2029 /* */
2030 #ifndef GENERIC_L32_105_H
2031 #define GENERIC_L32_105_H 1
2032 
2033 typedef struct dns_rdata_l32 {
2034 	dns_rdatacommon_t common;
2035 	uint16_t pref;
2036 	struct in_addr l32;
2037 } dns_rdata_l32_t;
2038 
2039 #endif /* GENERIC_L32_105_H */
2040 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2041 
2042 /*
2043  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2044  *
2045  * This Source Code Form is subject to the terms of the Mozilla Public
2046  * License, v. 2.0. If a copy of the MPL was not distributed with this
2047  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2048  *
2049  * See the COPYRIGHT file distributed with this work for additional
2050  * information regarding copyright ownership.
2051  */
2052 
2053 /* */
2054 #ifndef GENERIC_L64_106_H
2055 #define GENERIC_L64_106_H 1
2056 
2057 typedef struct dns_rdata_l64 {
2058 	dns_rdatacommon_t common;
2059 	uint16_t pref;
2060 	unsigned char l64[8];
2061 } dns_rdata_l64_t;
2062 
2063 #endif /* GENERIC_L64_106_H */
2064 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2065 
2066 /*
2067  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2068  *
2069  * This Source Code Form is subject to the terms of the Mozilla Public
2070  * License, v. 2.0. If a copy of the MPL was not distributed with this
2071  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2072  *
2073  * See the COPYRIGHT file distributed with this work for additional
2074  * information regarding copyright ownership.
2075  */
2076 
2077 /* */
2078 #ifndef GENERIC_LP_107_H
2079 #define GENERIC_LP_107_H 1
2080 
2081 typedef struct dns_rdata_lp {
2082 	dns_rdatacommon_t common;
2083 	isc_mem_t *mctx;
2084 	uint16_t pref;
2085 	dns_name_t lp;
2086 } dns_rdata_lp_t;
2087 
2088 #endif /* GENERIC_LP_107_H */
2089 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2090 
2091 /*
2092  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2093  *
2094  * This Source Code Form is subject to the terms of the Mozilla Public
2095  * License, v. 2.0. If a copy of the MPL was not distributed with this
2096  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2097  *
2098  * See the COPYRIGHT file distributed with this work for additional
2099  * information regarding copyright ownership.
2100  */
2101 
2102 /* */
2103 #ifndef GENERIC_EUI48_108_H
2104 #define GENERIC_EUI48_108_H 1
2105 
2106 typedef struct dns_rdata_eui48 {
2107 	dns_rdatacommon_t common;
2108 	unsigned char eui48[6];
2109 } dns_rdata_eui48_t;
2110 
2111 #endif /* GENERIC_EUI48_10k_H */
2112 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2113 
2114 /*
2115  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2116  *
2117  * This Source Code Form is subject to the terms of the Mozilla Public
2118  * License, v. 2.0. If a copy of the MPL was not distributed with this
2119  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2120  *
2121  * See the COPYRIGHT file distributed with this work for additional
2122  * information regarding copyright ownership.
2123  */
2124 
2125 /* */
2126 #ifndef GENERIC_EUI64_109_H
2127 #define GENERIC_EUI64_109_H 1
2128 
2129 typedef struct dns_rdata_eui64 {
2130 	dns_rdatacommon_t common;
2131 	unsigned char eui64[8];
2132 } dns_rdata_eui64_t;
2133 
2134 #endif /* GENERIC_EUI64_10k_H */
2135 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2136 
2137 /*
2138  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2139  *
2140  * This Source Code Form is subject to the terms of the Mozilla Public
2141  * License, v. 2.0. If a copy of the MPL was not distributed with this
2142  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2143  *
2144  * See the COPYRIGHT file distributed with this work for additional
2145  * information regarding copyright ownership.
2146  */
2147 
2148 #ifndef GENERIC_TKEY_249_H
2149 #define GENERIC_TKEY_249_H 1
2150 
2151 /*!
2152  *  \brief Per draft-ietf-dnsind-tkey-00.txt */
2153 
2154 typedef struct dns_rdata_tkey {
2155 	dns_rdatacommon_t common;
2156 	isc_mem_t *mctx;
2157 	dns_name_t algorithm;
2158 	uint32_t inception;
2159 	uint32_t expire;
2160 	uint16_t mode;
2161 	uint16_t error;
2162 	uint16_t keylen;
2163 	unsigned char *key;
2164 	uint16_t otherlen;
2165 	unsigned char *other;
2166 } dns_rdata_tkey_t;
2167 
2168 #endif /* GENERIC_TKEY_249_H */
2169 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2170 
2171 /*
2172  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2173  *
2174  * This Source Code Form is subject to the terms of the Mozilla Public
2175  * License, v. 2.0. If a copy of the MPL was not distributed with this
2176  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2177  *
2178  * See the COPYRIGHT file distributed with this work for additional
2179  * information regarding copyright ownership.
2180  */
2181 
2182 #ifndef ANY_255_TSIG_250_H
2183 #define ANY_255_TSIG_250_H 1
2184 
2185 /*% RFC2845 */
2186 typedef struct dns_rdata_any_tsig {
2187 	dns_rdatacommon_t common;
2188 	isc_mem_t *mctx;
2189 	dns_name_t algorithm;
2190 	uint64_t timesigned;
2191 	uint16_t fudge;
2192 	uint16_t siglen;
2193 	unsigned char *signature;
2194 	uint16_t originalid;
2195 	uint16_t error;
2196 	uint16_t otherlen;
2197 	unsigned char *other;
2198 } dns_rdata_any_tsig_t;
2199 
2200 #endif /* ANY_255_TSIG_250_H */
2201 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2202 
2203 /*
2204  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2205  *
2206  * This Source Code Form is subject to the terms of the Mozilla Public
2207  * License, v. 2.0. If a copy of the MPL was not distributed with this
2208  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2209  *
2210  * See the COPYRIGHT file distributed with this work for additional
2211  * information regarding copyright ownership.
2212  */
2213 
2214 #ifndef GENERIC_URI_256_H
2215 #define GENERIC_URI_256_H 1
2216 
2217 typedef struct dns_rdata_uri {
2218 	dns_rdatacommon_t common;
2219 	isc_mem_t *mctx;
2220 	uint16_t priority;
2221 	uint16_t weight;
2222 	unsigned char *target;
2223 	uint16_t tgt_len;
2224 } dns_rdata_uri_t;
2225 
2226 #endif /* GENERIC_URI_256_H */
2227 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2228 
2229 /*
2230  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2231  *
2232  * This Source Code Form is subject to the terms of the Mozilla Public
2233  * License, v. 2.0. If a copy of the MPL was not distributed with this
2234  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2235  *
2236  * See the COPYRIGHT file distributed with this work for additional
2237  * information regarding copyright ownership.
2238  */
2239 
2240 #ifndef GENERIC_CAA_257_H
2241 #define GENERIC_CAA_257_H 1
2242 
2243 typedef struct dns_rdata_caa {
2244 	dns_rdatacommon_t common;
2245 	isc_mem_t *mctx;
2246 	uint8_t flags;
2247 	unsigned char *tag;
2248 	uint8_t tag_len;
2249 	unsigned char *value;
2250 	uint16_t value_len;
2251 } dns_rdata_caa_t;
2252 
2253 #endif /* GENERIC_CAA_257_H */
2254 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2255 
2256 /*
2257  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2258  *
2259  * This Source Code Form is subject to the terms of the Mozilla Public
2260  * License, v. 2.0. If a copy of the MPL was not distributed with this
2261  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2262  *
2263  * See the COPYRIGHT file distributed with this work for additional
2264  * information regarding copyright ownership.
2265  */
2266 
2267 #ifndef GENERIC_AVC_258_H
2268 #define GENERIC_AVC_258_H 1
2269 
2270 typedef dns_rdata_txt_string_t dns_rdata_avc_string_t;
2271 
2272 typedef struct dns_rdata_avc {
2273 	dns_rdatacommon_t common;
2274 	isc_mem_t *mctx;
2275 	unsigned char *data;
2276 	uint16_t length;
2277 	/* private */
2278 	uint16_t offset;
2279 } dns_rdata_avc_t;
2280 
2281 /*
2282  * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
2283  * via rdatastructpre.h and rdatastructsuf.h.
2284  */
2285 #endif /* GENERIC_AVC_258_H */
2286 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2287 
2288 /*
2289  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2290  *
2291  * This Source Code Form is subject to the terms of the Mozilla Public
2292  * License, v. 2.0. If a copy of the MPL was not distributed with this
2293  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2294  *
2295  * See the COPYRIGHT file distributed with this work for additional
2296  * information regarding copyright ownership.
2297  */
2298 
2299 #ifndef GENERIC_DOA_259_H
2300 #define GENERIC_DOA_259_H 1
2301 
2302 typedef struct dns_rdata_doa {
2303 	dns_rdatacommon_t common;
2304 	isc_mem_t *mctx;
2305 	unsigned char *mediatype;
2306 	unsigned char *data;
2307 	uint32_t enterprise;
2308 	uint32_t type;
2309 	uint16_t data_len;
2310 	uint8_t location;
2311 	uint8_t mediatype_len;
2312 } dns_rdata_doa_t;
2313 
2314 #endif /* GENERIC_DOA_259_H */
2315 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2316 
2317 /*
2318  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2319  *
2320  * This Source Code Form is subject to the terms of the Mozilla Public
2321  * License, v. 2.0. If a copy of the MPL was not distributed with this
2322  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2323  *
2324  * See the COPYRIGHT file distributed with this work for additional
2325  * information regarding copyright ownership.
2326  */
2327 
2328 #ifndef GENERIC_AMTRELAY_260_H
2329 #define GENERIC_AMTRELAY_260_H 1
2330 
2331 typedef struct dns_rdata_amtrelay {
2332 	dns_rdatacommon_t common;
2333 	isc_mem_t *mctx;
2334 	uint8_t precedence;
2335 	bool discovery;
2336 	uint8_t gateway_type;
2337 	struct in_addr in_addr;	  /* gateway type 1 */
2338 	struct in6_addr in6_addr; /* gateway type 2 */
2339 	dns_name_t gateway;	  /* gateway type 3 */
2340 	unsigned char *data;	  /* gateway type > 3 */
2341 	uint16_t length;
2342 } dns_rdata_amtrelay_t;
2343 
2344 #endif /* GENERIC_AMTRELAY_260_H */
2345 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2346 
2347 /*
2348  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2349  *
2350  * This Source Code Form is subject to the terms of the Mozilla Public
2351  * License, v. 2.0. If a copy of the MPL was not distributed with this
2352  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2353  *
2354  * See the COPYRIGHT file distributed with this work for additional
2355  * information regarding copyright ownership.
2356  */
2357 
2358 #ifndef GENERIC_TA_32768_H
2359 #define GENERIC_TA_32768_H 1
2360 
2361 /*
2362  * TA records are identical to DS records.
2363  */
2364 typedef struct dns_rdata_ds dns_rdata_ta_t;
2365 
2366 #endif /* GENERIC_TA_32768_H */
2367 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2368 
2369 /*
2370  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2371  *
2372  * This Source Code Form is subject to the terms of the Mozilla Public
2373  * License, v. 2.0. If a copy of the MPL was not distributed with this
2374  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2375  *
2376  * See the COPYRIGHT file distributed with this work for additional
2377  * information regarding copyright ownership.
2378  */
2379 
2380 /* draft-ietf-dnsext-delegation-signer-05.txt */
2381 #ifndef GENERIC_DLV_32769_H
2382 #define GENERIC_DLV_32769_H 1
2383 
2384 typedef struct dns_rdata_ds dns_rdata_dlv_t;
2385 
2386 #endif /* GENERIC_DLV_32769_H */
2387 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2388 
2389 /*
2390  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2391  *
2392  * This Source Code Form is subject to the terms of the Mozilla Public
2393  * License, v. 2.0. If a copy of the MPL was not distributed with this
2394  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2395  *
2396  * See the COPYRIGHT file distributed with this work for additional
2397  * information regarding copyright ownership.
2398  */
2399 
2400 #ifndef GENERIC_KEYDATA_65533_H
2401 #define GENERIC_KEYDATA_65533_H 1
2402 
2403 typedef struct dns_rdata_keydata {
2404 	dns_rdatacommon_t common;
2405 	isc_mem_t *mctx;
2406 	uint32_t refresh;  /* Timer for refreshing data */
2407 	uint32_t addhd;	   /* Hold-down timer for adding */
2408 	uint32_t removehd; /* Hold-down timer for removing */
2409 	uint16_t flags;	   /* Copy of DNSKEY_48 */
2410 	dns_secproto_t protocol;
2411 	dns_secalg_t algorithm;
2412 	uint16_t datalen;
2413 	unsigned char *data;
2414 } dns_rdata_keydata_t;
2415 
2416 #endif /* GENERIC_KEYDATA_65533_H */
2417 /*	$NetBSD: rdatastruct.h,v 1.6 2020/05/24 19:46:30 christos Exp $	*/
2418 
2419 /*
2420  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2421  *
2422  * This Source Code Form is subject to the terms of the Mozilla Public
2423  * License, v. 2.0. If a copy of the MPL was not distributed with this
2424  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
2425  *
2426  * See the COPYRIGHT file distributed with this work for additional
2427  * information regarding copyright ownership.
2428  */
2429 
2430 ISC_LANG_ENDDECLS
2431 
2432 #endif /* DNS_RDATASTRUCT_H */
2433