rdatastruct.h revision 1.9.2.1 1 /*
2 * Copyright (C) 1998-2023 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 https://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 /*
19 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
20 *
21 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
55 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
56 *
57 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
78 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
79 *
80 * SPDX-License-Identifier: MPL-2.0
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 https://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 (at) 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 /*
109 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
110 *
111 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
132 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
133 *
134 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
156 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
157 *
158 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
180 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
181 *
182 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
204 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
205 *
206 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
227 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
228 *
229 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
257 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
258 *
259 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
281 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
282 *
283 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
305 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
306 *
307 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
329 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
330 *
331 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
354 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
355 *
356 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
380 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
381 *
382 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
404 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
405 *
406 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
430 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
431 *
432 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
455 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
456 *
457 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
480 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
481 *
482 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
526 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
527 *
528 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
553 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
554 *
555 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
580 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
581 *
582 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
607 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
608 *
609 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
636 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
637 *
638 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
663 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
664 *
665 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
690 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
691 *
692 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
716 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
717 *
718 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
751 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
752 *
753 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
781 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
782 *
783 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
809 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
810 *
811 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
840 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
841 *
842 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
865 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
866 *
867 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
902 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
903 *
904 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
930 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
931 *
932 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
958 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
959 *
960 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
986 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
987 *
988 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1015 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1016 *
1017 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1043 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1044 *
1045 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1077 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1078 *
1079 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1104 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1105 *
1106 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1132 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1133 *
1134 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1160 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1161 *
1162 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1186 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1187 *
1188 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1213 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1214 *
1215 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1262 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1263 *
1264 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1315 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1316 *
1317 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1344 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1345 *
1346 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1373 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1374 *
1375 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1403 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1404 *
1405 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1437 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1438 *
1439 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1465 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1466 *
1467 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1488 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1489 *
1490 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1513 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1514 *
1515 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1625 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1626 *
1627 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1657 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1658 *
1659 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1687 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1688 *
1689 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1706 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1707 *
1708 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1748 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1749 *
1750 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1784 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1785 *
1786 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1803 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1804 *
1805 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1831 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1832 *
1833 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1851 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1852 *
1853 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1871 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1872 *
1873 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1895 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1896 *
1897 * SPDX-License-Identifier: MPL-2.0
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 https://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 /*
1925 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1926 *
1927 * SPDX-License-Identifier: MPL-2.0
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 https://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 /* Known digest type(s). */
1941 #define DNS_ZONEMD_DIGEST_SHA384 (1)
1942 #define DNS_ZONEMD_DIGEST_SHA512 (2)
1943
1944 /*
1945 * \brief per RFC 8976
1946 */
1947 typedef struct dns_rdata_zonemd {
1948 dns_rdatacommon_t common;
1949 isc_mem_t *mctx;
1950 uint32_t serial;
1951 uint8_t scheme;
1952 uint8_t digest_type;
1953 unsigned char *digest;
1954 uint16_t length;
1955 } dns_rdata_zonemd_t;
1956
1957 #endif /* GENERIC_ZONEMD_63_H */
1958 /*
1959 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1960 *
1961 * SPDX-License-Identifier: MPL-2.0
1962 *
1963 * This Source Code Form is subject to the terms of the Mozilla Public
1964 * License, v. 2.0. If a copy of the MPL was not distributed with this
1965 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
1966 *
1967 * See the COPYRIGHT file distributed with this work for additional
1968 * information regarding copyright ownership.
1969 */
1970
1971 #ifndef IN_1_SVCB_64_H
1972 #define IN_1_SVCB_64_H 1
1973
1974 /*!
1975 * \brief Per draft-ietf-dnsop-svcb-https-02
1976 */
1977
1978 typedef struct dns_rdata_in_svcb {
1979 dns_rdatacommon_t common;
1980 isc_mem_t *mctx;
1981 uint16_t priority;
1982 dns_name_t svcdomain;
1983 unsigned char *svc;
1984 uint16_t svclen;
1985 uint16_t offset;
1986 } dns_rdata_in_svcb_t;
1987
1988 isc_result_t
1989 dns_rdata_in_svcb_first(dns_rdata_in_svcb_t *);
1990
1991 isc_result_t
1992 dns_rdata_in_svcb_next(dns_rdata_in_svcb_t *);
1993
1994 void
1995 dns_rdata_in_svcb_current(dns_rdata_in_svcb_t *, isc_region_t *);
1996
1997 #endif /* IN_1_SVCB_64_H */
1998 /*
1999 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2000 *
2001 * SPDX-License-Identifier: MPL-2.0
2002 *
2003 * This Source Code Form is subject to the terms of the Mozilla Public
2004 * License, v. 2.0. If a copy of the MPL was not distributed with this
2005 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2006 *
2007 * See the COPYRIGHT file distributed with this work for additional
2008 * information regarding copyright ownership.
2009 */
2010
2011 #ifndef IN_1_HTTPS_65_H
2012 #define IN_1_HTTPS_65_H 1
2013
2014 /*!
2015 * \brief Per draft-ietf-dnsop-svcb-https-02
2016 */
2017
2018 /*
2019 * Wire and presentation formats for HTTPS are identical to SVCB.
2020 */
2021 typedef struct dns_rdata_in_svcb dns_rdata_in_https_t;
2022
2023 isc_result_t
2024 dns_rdata_in_https_first(dns_rdata_in_https_t *);
2025
2026 isc_result_t
2027 dns_rdata_in_https_next(dns_rdata_in_https_t *);
2028
2029 void
2030 dns_rdata_in_https_current(dns_rdata_in_https_t *, isc_region_t *);
2031
2032 #endif /* IN_1_HTTPS_65_H */
2033 /*
2034 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2035 *
2036 * SPDX-License-Identifier: MPL-2.0
2037 *
2038 * This Source Code Form is subject to the terms of the Mozilla Public
2039 * License, v. 2.0. If a copy of the MPL was not distributed with this
2040 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2041 *
2042 * See the COPYRIGHT file distributed with this work for additional
2043 * information regarding copyright ownership.
2044 */
2045
2046 #ifndef GENERIC_SPF_99_H
2047 #define GENERIC_SPF_99_H 1
2048
2049 typedef struct dns_rdata_spf_string {
2050 uint8_t length;
2051 unsigned char *data;
2052 } dns_rdata_spf_string_t;
2053
2054 typedef struct dns_rdata_spf {
2055 dns_rdatacommon_t common;
2056 isc_mem_t *mctx;
2057 unsigned char *txt;
2058 uint16_t txt_len;
2059 /* private */
2060 uint16_t offset;
2061 } dns_rdata_spf_t;
2062
2063 /*
2064 * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
2065 * via rdatastructpre.h and rdatastructsuf.h.
2066 */
2067 #endif /* GENERIC_SPF_99_H */
2068 /*
2069 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2070 *
2071 * SPDX-License-Identifier: MPL-2.0
2072 *
2073 * This Source Code Form is subject to the terms of the Mozilla Public
2074 * License, v. 2.0. If a copy of the MPL was not distributed with this
2075 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2076 *
2077 * See the COPYRIGHT file distributed with this work for additional
2078 * information regarding copyright ownership.
2079 */
2080
2081 /* */
2082 #ifndef GENERIC_NID_104_H
2083 #define GENERIC_NID_104_H 1
2084
2085 typedef struct dns_rdata_nid {
2086 dns_rdatacommon_t common;
2087 uint16_t pref;
2088 unsigned char nid[8];
2089 } dns_rdata_nid_t;
2090
2091 #endif /* GENERIC_NID_104_H */
2092 /*
2093 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2094 *
2095 * SPDX-License-Identifier: MPL-2.0
2096 *
2097 * This Source Code Form is subject to the terms of the Mozilla Public
2098 * License, v. 2.0. If a copy of the MPL was not distributed with this
2099 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2100 *
2101 * See the COPYRIGHT file distributed with this work for additional
2102 * information regarding copyright ownership.
2103 */
2104
2105 /* */
2106 #ifndef GENERIC_L32_105_H
2107 #define GENERIC_L32_105_H 1
2108
2109 typedef struct dns_rdata_l32 {
2110 dns_rdatacommon_t common;
2111 uint16_t pref;
2112 struct in_addr l32;
2113 } dns_rdata_l32_t;
2114
2115 #endif /* GENERIC_L32_105_H */
2116 /*
2117 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2118 *
2119 * SPDX-License-Identifier: MPL-2.0
2120 *
2121 * This Source Code Form is subject to the terms of the Mozilla Public
2122 * License, v. 2.0. If a copy of the MPL was not distributed with this
2123 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2124 *
2125 * See the COPYRIGHT file distributed with this work for additional
2126 * information regarding copyright ownership.
2127 */
2128
2129 /* */
2130 #ifndef GENERIC_L64_106_H
2131 #define GENERIC_L64_106_H 1
2132
2133 typedef struct dns_rdata_l64 {
2134 dns_rdatacommon_t common;
2135 uint16_t pref;
2136 unsigned char l64[8];
2137 } dns_rdata_l64_t;
2138
2139 #endif /* GENERIC_L64_106_H */
2140 /*
2141 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2142 *
2143 * SPDX-License-Identifier: MPL-2.0
2144 *
2145 * This Source Code Form is subject to the terms of the Mozilla Public
2146 * License, v. 2.0. If a copy of the MPL was not distributed with this
2147 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2148 *
2149 * See the COPYRIGHT file distributed with this work for additional
2150 * information regarding copyright ownership.
2151 */
2152
2153 /* */
2154 #ifndef GENERIC_LP_107_H
2155 #define GENERIC_LP_107_H 1
2156
2157 typedef struct dns_rdata_lp {
2158 dns_rdatacommon_t common;
2159 isc_mem_t *mctx;
2160 uint16_t pref;
2161 dns_name_t lp;
2162 } dns_rdata_lp_t;
2163
2164 #endif /* GENERIC_LP_107_H */
2165 /*
2166 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2167 *
2168 * SPDX-License-Identifier: MPL-2.0
2169 *
2170 * This Source Code Form is subject to the terms of the Mozilla Public
2171 * License, v. 2.0. If a copy of the MPL was not distributed with this
2172 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2173 *
2174 * See the COPYRIGHT file distributed with this work for additional
2175 * information regarding copyright ownership.
2176 */
2177
2178 /* */
2179 #ifndef GENERIC_EUI48_108_H
2180 #define GENERIC_EUI48_108_H 1
2181
2182 typedef struct dns_rdata_eui48 {
2183 dns_rdatacommon_t common;
2184 unsigned char eui48[6];
2185 } dns_rdata_eui48_t;
2186
2187 #endif /* GENERIC_EUI48_10k_H */
2188 /*
2189 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2190 *
2191 * SPDX-License-Identifier: MPL-2.0
2192 *
2193 * This Source Code Form is subject to the terms of the Mozilla Public
2194 * License, v. 2.0. If a copy of the MPL was not distributed with this
2195 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2196 *
2197 * See the COPYRIGHT file distributed with this work for additional
2198 * information regarding copyright ownership.
2199 */
2200
2201 /* */
2202 #ifndef GENERIC_EUI64_109_H
2203 #define GENERIC_EUI64_109_H 1
2204
2205 typedef struct dns_rdata_eui64 {
2206 dns_rdatacommon_t common;
2207 unsigned char eui64[8];
2208 } dns_rdata_eui64_t;
2209
2210 #endif /* GENERIC_EUI64_10k_H */
2211 /*
2212 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2213 *
2214 * SPDX-License-Identifier: MPL-2.0
2215 *
2216 * This Source Code Form is subject to the terms of the Mozilla Public
2217 * License, v. 2.0. If a copy of the MPL was not distributed with this
2218 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2219 *
2220 * See the COPYRIGHT file distributed with this work for additional
2221 * information regarding copyright ownership.
2222 */
2223
2224 #ifndef GENERIC_TKEY_249_H
2225 #define GENERIC_TKEY_249_H 1
2226
2227 /*!
2228 * \brief Per draft-ietf-dnsind-tkey-00.txt */
2229
2230 typedef struct dns_rdata_tkey {
2231 dns_rdatacommon_t common;
2232 isc_mem_t *mctx;
2233 dns_name_t algorithm;
2234 uint32_t inception;
2235 uint32_t expire;
2236 uint16_t mode;
2237 uint16_t error;
2238 uint16_t keylen;
2239 unsigned char *key;
2240 uint16_t otherlen;
2241 unsigned char *other;
2242 } dns_rdata_tkey_t;
2243
2244 #endif /* GENERIC_TKEY_249_H */
2245 /*
2246 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2247 *
2248 * SPDX-License-Identifier: MPL-2.0
2249 *
2250 * This Source Code Form is subject to the terms of the Mozilla Public
2251 * License, v. 2.0. If a copy of the MPL was not distributed with this
2252 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2253 *
2254 * See the COPYRIGHT file distributed with this work for additional
2255 * information regarding copyright ownership.
2256 */
2257
2258 #ifndef ANY_255_TSIG_250_H
2259 #define ANY_255_TSIG_250_H 1
2260
2261 /*% RFC2845 */
2262 typedef struct dns_rdata_any_tsig {
2263 dns_rdatacommon_t common;
2264 isc_mem_t *mctx;
2265 dns_name_t algorithm;
2266 uint64_t timesigned;
2267 uint16_t fudge;
2268 uint16_t siglen;
2269 unsigned char *signature;
2270 uint16_t originalid;
2271 uint16_t error;
2272 uint16_t otherlen;
2273 unsigned char *other;
2274 } dns_rdata_any_tsig_t;
2275
2276 #endif /* ANY_255_TSIG_250_H */
2277 /*
2278 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2279 *
2280 * SPDX-License-Identifier: MPL-2.0
2281 *
2282 * This Source Code Form is subject to the terms of the Mozilla Public
2283 * License, v. 2.0. If a copy of the MPL was not distributed with this
2284 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2285 *
2286 * See the COPYRIGHT file distributed with this work for additional
2287 * information regarding copyright ownership.
2288 */
2289
2290 #ifndef GENERIC_URI_256_H
2291 #define GENERIC_URI_256_H 1
2292
2293 typedef struct dns_rdata_uri {
2294 dns_rdatacommon_t common;
2295 isc_mem_t *mctx;
2296 uint16_t priority;
2297 uint16_t weight;
2298 unsigned char *target;
2299 uint16_t tgt_len;
2300 } dns_rdata_uri_t;
2301
2302 #endif /* GENERIC_URI_256_H */
2303 /*
2304 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2305 *
2306 * SPDX-License-Identifier: MPL-2.0
2307 *
2308 * This Source Code Form is subject to the terms of the Mozilla Public
2309 * License, v. 2.0. If a copy of the MPL was not distributed with this
2310 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2311 *
2312 * See the COPYRIGHT file distributed with this work for additional
2313 * information regarding copyright ownership.
2314 */
2315
2316 #ifndef GENERIC_CAA_257_H
2317 #define GENERIC_CAA_257_H 1
2318
2319 typedef struct dns_rdata_caa {
2320 dns_rdatacommon_t common;
2321 isc_mem_t *mctx;
2322 uint8_t flags;
2323 unsigned char *tag;
2324 uint8_t tag_len;
2325 unsigned char *value;
2326 uint16_t value_len;
2327 } dns_rdata_caa_t;
2328
2329 #endif /* GENERIC_CAA_257_H */
2330 /*
2331 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2332 *
2333 * SPDX-License-Identifier: MPL-2.0
2334 *
2335 * This Source Code Form is subject to the terms of the Mozilla Public
2336 * License, v. 2.0. If a copy of the MPL was not distributed with this
2337 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2338 *
2339 * See the COPYRIGHT file distributed with this work for additional
2340 * information regarding copyright ownership.
2341 */
2342
2343 #ifndef GENERIC_AVC_258_H
2344 #define GENERIC_AVC_258_H 1
2345
2346 typedef dns_rdata_txt_string_t dns_rdata_avc_string_t;
2347
2348 typedef struct dns_rdata_avc {
2349 dns_rdatacommon_t common;
2350 isc_mem_t *mctx;
2351 unsigned char *data;
2352 uint16_t length;
2353 /* private */
2354 uint16_t offset;
2355 } dns_rdata_avc_t;
2356
2357 /*
2358 * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
2359 * via rdatastructpre.h and rdatastructsuf.h.
2360 */
2361 #endif /* GENERIC_AVC_258_H */
2362 /*
2363 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2364 *
2365 * SPDX-License-Identifier: MPL-2.0
2366 *
2367 * This Source Code Form is subject to the terms of the Mozilla Public
2368 * License, v. 2.0. If a copy of the MPL was not distributed with this
2369 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2370 *
2371 * See the COPYRIGHT file distributed with this work for additional
2372 * information regarding copyright ownership.
2373 */
2374
2375 #ifndef GENERIC_DOA_259_H
2376 #define GENERIC_DOA_259_H 1
2377
2378 typedef struct dns_rdata_doa {
2379 dns_rdatacommon_t common;
2380 isc_mem_t *mctx;
2381 unsigned char *mediatype;
2382 unsigned char *data;
2383 uint32_t enterprise;
2384 uint32_t type;
2385 uint16_t data_len;
2386 uint8_t location;
2387 uint8_t mediatype_len;
2388 } dns_rdata_doa_t;
2389
2390 #endif /* GENERIC_DOA_259_H */
2391 /*
2392 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2393 *
2394 * SPDX-License-Identifier: MPL-2.0
2395 *
2396 * This Source Code Form is subject to the terms of the Mozilla Public
2397 * License, v. 2.0. If a copy of the MPL was not distributed with this
2398 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2399 *
2400 * See the COPYRIGHT file distributed with this work for additional
2401 * information regarding copyright ownership.
2402 */
2403
2404 #ifndef GENERIC_AMTRELAY_260_H
2405 #define GENERIC_AMTRELAY_260_H 1
2406
2407 typedef struct dns_rdata_amtrelay {
2408 dns_rdatacommon_t common;
2409 isc_mem_t *mctx;
2410 uint8_t precedence;
2411 bool discovery;
2412 uint8_t gateway_type;
2413 struct in_addr in_addr; /* gateway type 1 */
2414 struct in6_addr in6_addr; /* gateway type 2 */
2415 dns_name_t gateway; /* gateway type 3 */
2416 unsigned char *data; /* gateway type > 3 */
2417 uint16_t length;
2418 } dns_rdata_amtrelay_t;
2419
2420 #endif /* GENERIC_AMTRELAY_260_H */
2421 /*
2422 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2423 *
2424 * SPDX-License-Identifier: MPL-2.0
2425 *
2426 * This Source Code Form is subject to the terms of the Mozilla Public
2427 * License, v. 2.0. If a copy of the MPL was not distributed with this
2428 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2429 *
2430 * See the COPYRIGHT file distributed with this work for additional
2431 * information regarding copyright ownership.
2432 */
2433
2434 #ifndef GENERIC_TA_32768_H
2435 #define GENERIC_TA_32768_H 1
2436
2437 /*
2438 * TA records are identical to DS records.
2439 */
2440 typedef struct dns_rdata_ds dns_rdata_ta_t;
2441
2442 #endif /* GENERIC_TA_32768_H */
2443 /*
2444 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2445 *
2446 * SPDX-License-Identifier: MPL-2.0
2447 *
2448 * This Source Code Form is subject to the terms of the Mozilla Public
2449 * License, v. 2.0. If a copy of the MPL was not distributed with this
2450 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2451 *
2452 * See the COPYRIGHT file distributed with this work for additional
2453 * information regarding copyright ownership.
2454 */
2455
2456 /* draft-ietf-dnsext-delegation-signer-05.txt */
2457 #ifndef GENERIC_DLV_32769_H
2458 #define GENERIC_DLV_32769_H 1
2459
2460 typedef struct dns_rdata_ds dns_rdata_dlv_t;
2461
2462 #endif /* GENERIC_DLV_32769_H */
2463 /*
2464 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2465 *
2466 * SPDX-License-Identifier: MPL-2.0
2467 *
2468 * This Source Code Form is subject to the terms of the Mozilla Public
2469 * License, v. 2.0. If a copy of the MPL was not distributed with this
2470 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2471 *
2472 * See the COPYRIGHT file distributed with this work for additional
2473 * information regarding copyright ownership.
2474 */
2475
2476 #ifndef GENERIC_KEYDATA_65533_H
2477 #define GENERIC_KEYDATA_65533_H 1
2478
2479 typedef struct dns_rdata_keydata {
2480 dns_rdatacommon_t common;
2481 isc_mem_t *mctx;
2482 uint32_t refresh; /* Timer for refreshing data */
2483 uint32_t addhd; /* Hold-down timer for adding */
2484 uint32_t removehd; /* Hold-down timer for removing */
2485 uint16_t flags; /* Copy of DNSKEY_48 */
2486 dns_secproto_t protocol;
2487 dns_secalg_t algorithm;
2488 uint16_t datalen;
2489 unsigned char *data;
2490 } dns_rdata_keydata_t;
2491
2492 #endif /* GENERIC_KEYDATA_65533_H */
2493 /*
2494 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2495 *
2496 * SPDX-License-Identifier: MPL-2.0
2497 *
2498 * This Source Code Form is subject to the terms of the Mozilla Public
2499 * License, v. 2.0. If a copy of the MPL was not distributed with this
2500 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2501 *
2502 * See the COPYRIGHT file distributed with this work for additional
2503 * information regarding copyright ownership.
2504 */
2505
2506 ISC_LANG_ENDDECLS
2507
2508 #endif /* DNS_RDATASTRUCT_H */
2509