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