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