rdatastruct.h revision 1.7 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 /* Digest type(s). Currently only SHA-384 is defined. */
1811 #define DNS_ZONEMD_DIGEST_SHA384 (1)
1812
1813 /*
1814 * \brief per draft-wessels-zone-digest-05
1815 */
1816 typedef struct dns_rdata_zonemd {
1817 dns_rdatacommon_t common;
1818 isc_mem_t *mctx;
1819 uint32_t serial;
1820 uint8_t digest_type;
1821 uint8_t reserved;
1822 unsigned char *digest;
1823 uint16_t length;
1824 } dns_rdata_zonemd_t;
1825
1826 #endif /* GENERIC_ZONEMD_63_H */
1827 /*
1828 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1829 *
1830 * This Source Code Form is subject to the terms of the Mozilla Public
1831 * License, v. 2.0. If a copy of the MPL was not distributed with this
1832 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
1833 *
1834 * See the COPYRIGHT file distributed with this work for additional
1835 * information regarding copyright ownership.
1836 */
1837
1838 #ifndef GENERIC_SPF_99_H
1839 #define GENERIC_SPF_99_H 1
1840
1841 typedef struct dns_rdata_spf_string {
1842 uint8_t length;
1843 unsigned char *data;
1844 } dns_rdata_spf_string_t;
1845
1846 typedef struct dns_rdata_spf {
1847 dns_rdatacommon_t common;
1848 isc_mem_t *mctx;
1849 unsigned char *txt;
1850 uint16_t txt_len;
1851 /* private */
1852 uint16_t offset;
1853 } dns_rdata_spf_t;
1854
1855 /*
1856 * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
1857 * via rdatastructpre.h and rdatastructsuf.h.
1858 */
1859 #endif /* GENERIC_SPF_99_H */
1860 /*
1861 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1862 *
1863 * This Source Code Form is subject to the terms of the Mozilla Public
1864 * License, v. 2.0. If a copy of the MPL was not distributed with this
1865 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
1866 *
1867 * See the COPYRIGHT file distributed with this work for additional
1868 * information regarding copyright ownership.
1869 */
1870
1871 /* */
1872 #ifndef GENERIC_NID_104_H
1873 #define GENERIC_NID_104_H 1
1874
1875 typedef struct dns_rdata_nid {
1876 dns_rdatacommon_t common;
1877 uint16_t pref;
1878 unsigned char nid[8];
1879 } dns_rdata_nid_t;
1880
1881 #endif /* GENERIC_NID_104_H */
1882 /*
1883 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1884 *
1885 * This Source Code Form is subject to the terms of the Mozilla Public
1886 * License, v. 2.0. If a copy of the MPL was not distributed with this
1887 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
1888 *
1889 * See the COPYRIGHT file distributed with this work for additional
1890 * information regarding copyright ownership.
1891 */
1892
1893 /* */
1894 #ifndef GENERIC_L32_105_H
1895 #define GENERIC_L32_105_H 1
1896
1897 typedef struct dns_rdata_l32 {
1898 dns_rdatacommon_t common;
1899 uint16_t pref;
1900 struct in_addr l32;
1901 } dns_rdata_l32_t;
1902
1903 #endif /* GENERIC_L32_105_H */
1904 /*
1905 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1906 *
1907 * This Source Code Form is subject to the terms of the Mozilla Public
1908 * License, v. 2.0. If a copy of the MPL was not distributed with this
1909 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
1910 *
1911 * See the COPYRIGHT file distributed with this work for additional
1912 * information regarding copyright ownership.
1913 */
1914
1915 /* */
1916 #ifndef GENERIC_L64_106_H
1917 #define GENERIC_L64_106_H 1
1918
1919 typedef struct dns_rdata_l64 {
1920 dns_rdatacommon_t common;
1921 uint16_t pref;
1922 unsigned char l64[8];
1923 } dns_rdata_l64_t;
1924
1925 #endif /* GENERIC_L64_106_H */
1926 /*
1927 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1928 *
1929 * This Source Code Form is subject to the terms of the Mozilla Public
1930 * License, v. 2.0. If a copy of the MPL was not distributed with this
1931 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
1932 *
1933 * See the COPYRIGHT file distributed with this work for additional
1934 * information regarding copyright ownership.
1935 */
1936
1937 /* */
1938 #ifndef GENERIC_LP_107_H
1939 #define GENERIC_LP_107_H 1
1940
1941 typedef struct dns_rdata_lp {
1942 dns_rdatacommon_t common;
1943 isc_mem_t *mctx;
1944 uint16_t pref;
1945 dns_name_t lp;
1946 } dns_rdata_lp_t;
1947
1948 #endif /* GENERIC_LP_107_H */
1949 /*
1950 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1951 *
1952 * This Source Code Form is subject to the terms of the Mozilla Public
1953 * License, v. 2.0. If a copy of the MPL was not distributed with this
1954 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
1955 *
1956 * See the COPYRIGHT file distributed with this work for additional
1957 * information regarding copyright ownership.
1958 */
1959
1960 /* */
1961 #ifndef GENERIC_EUI48_108_H
1962 #define GENERIC_EUI48_108_H 1
1963
1964 typedef struct dns_rdata_eui48 {
1965 dns_rdatacommon_t common;
1966 unsigned char eui48[6];
1967 } dns_rdata_eui48_t;
1968
1969 #endif /* GENERIC_EUI48_10k_H */
1970 /*
1971 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1972 *
1973 * This Source Code Form is subject to the terms of the Mozilla Public
1974 * License, v. 2.0. If a copy of the MPL was not distributed with this
1975 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
1976 *
1977 * See the COPYRIGHT file distributed with this work for additional
1978 * information regarding copyright ownership.
1979 */
1980
1981 /* */
1982 #ifndef GENERIC_EUI64_109_H
1983 #define GENERIC_EUI64_109_H 1
1984
1985 typedef struct dns_rdata_eui64 {
1986 dns_rdatacommon_t common;
1987 unsigned char eui64[8];
1988 } dns_rdata_eui64_t;
1989
1990 #endif /* GENERIC_EUI64_10k_H */
1991 /*
1992 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
1993 *
1994 * This Source Code Form is subject to the terms of the Mozilla Public
1995 * License, v. 2.0. If a copy of the MPL was not distributed with this
1996 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
1997 *
1998 * See the COPYRIGHT file distributed with this work for additional
1999 * information regarding copyright ownership.
2000 */
2001
2002 #ifndef GENERIC_TKEY_249_H
2003 #define GENERIC_TKEY_249_H 1
2004
2005 /*!
2006 * \brief Per draft-ietf-dnsind-tkey-00.txt */
2007
2008 typedef struct dns_rdata_tkey {
2009 dns_rdatacommon_t common;
2010 isc_mem_t *mctx;
2011 dns_name_t algorithm;
2012 uint32_t inception;
2013 uint32_t expire;
2014 uint16_t mode;
2015 uint16_t error;
2016 uint16_t keylen;
2017 unsigned char *key;
2018 uint16_t otherlen;
2019 unsigned char *other;
2020 } dns_rdata_tkey_t;
2021
2022 #endif /* GENERIC_TKEY_249_H */
2023 /*
2024 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2025 *
2026 * This Source Code Form is subject to the terms of the Mozilla Public
2027 * License, v. 2.0. If a copy of the MPL was not distributed with this
2028 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2029 *
2030 * See the COPYRIGHT file distributed with this work for additional
2031 * information regarding copyright ownership.
2032 */
2033
2034 #ifndef ANY_255_TSIG_250_H
2035 #define ANY_255_TSIG_250_H 1
2036
2037 /*% RFC2845 */
2038 typedef struct dns_rdata_any_tsig {
2039 dns_rdatacommon_t common;
2040 isc_mem_t *mctx;
2041 dns_name_t algorithm;
2042 uint64_t timesigned;
2043 uint16_t fudge;
2044 uint16_t siglen;
2045 unsigned char *signature;
2046 uint16_t originalid;
2047 uint16_t error;
2048 uint16_t otherlen;
2049 unsigned char *other;
2050 } dns_rdata_any_tsig_t;
2051
2052 #endif /* ANY_255_TSIG_250_H */
2053 /*
2054 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2055 *
2056 * This Source Code Form is subject to the terms of the Mozilla Public
2057 * License, v. 2.0. If a copy of the MPL was not distributed with this
2058 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2059 *
2060 * See the COPYRIGHT file distributed with this work for additional
2061 * information regarding copyright ownership.
2062 */
2063
2064 #ifndef GENERIC_URI_256_H
2065 #define GENERIC_URI_256_H 1
2066
2067 typedef struct dns_rdata_uri {
2068 dns_rdatacommon_t common;
2069 isc_mem_t *mctx;
2070 uint16_t priority;
2071 uint16_t weight;
2072 unsigned char *target;
2073 uint16_t tgt_len;
2074 } dns_rdata_uri_t;
2075
2076 #endif /* GENERIC_URI_256_H */
2077 /*
2078 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2079 *
2080 * This Source Code Form is subject to the terms of the Mozilla Public
2081 * License, v. 2.0. If a copy of the MPL was not distributed with this
2082 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2083 *
2084 * See the COPYRIGHT file distributed with this work for additional
2085 * information regarding copyright ownership.
2086 */
2087
2088 #ifndef GENERIC_CAA_257_H
2089 #define GENERIC_CAA_257_H 1
2090
2091 typedef struct dns_rdata_caa {
2092 dns_rdatacommon_t common;
2093 isc_mem_t *mctx;
2094 uint8_t flags;
2095 unsigned char *tag;
2096 uint8_t tag_len;
2097 unsigned char *value;
2098 uint16_t value_len;
2099 } dns_rdata_caa_t;
2100
2101 #endif /* GENERIC_CAA_257_H */
2102 /*
2103 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2104 *
2105 * This Source Code Form is subject to the terms of the Mozilla Public
2106 * License, v. 2.0. If a copy of the MPL was not distributed with this
2107 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2108 *
2109 * See the COPYRIGHT file distributed with this work for additional
2110 * information regarding copyright ownership.
2111 */
2112
2113 #ifndef GENERIC_AVC_258_H
2114 #define GENERIC_AVC_258_H 1
2115
2116 typedef dns_rdata_txt_string_t dns_rdata_avc_string_t;
2117
2118 typedef struct dns_rdata_avc {
2119 dns_rdatacommon_t common;
2120 isc_mem_t *mctx;
2121 unsigned char *data;
2122 uint16_t length;
2123 /* private */
2124 uint16_t offset;
2125 } dns_rdata_avc_t;
2126
2127 /*
2128 * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
2129 * via rdatastructpre.h and rdatastructsuf.h.
2130 */
2131 #endif /* GENERIC_AVC_258_H */
2132 /*
2133 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2134 *
2135 * This Source Code Form is subject to the terms of the Mozilla Public
2136 * License, v. 2.0. If a copy of the MPL was not distributed with this
2137 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2138 *
2139 * See the COPYRIGHT file distributed with this work for additional
2140 * information regarding copyright ownership.
2141 */
2142
2143 #ifndef GENERIC_DOA_259_H
2144 #define GENERIC_DOA_259_H 1
2145
2146 typedef struct dns_rdata_doa {
2147 dns_rdatacommon_t common;
2148 isc_mem_t *mctx;
2149 unsigned char *mediatype;
2150 unsigned char *data;
2151 uint32_t enterprise;
2152 uint32_t type;
2153 uint16_t data_len;
2154 uint8_t location;
2155 uint8_t mediatype_len;
2156 } dns_rdata_doa_t;
2157
2158 #endif /* GENERIC_DOA_259_H */
2159 /*
2160 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2161 *
2162 * This Source Code Form is subject to the terms of the Mozilla Public
2163 * License, v. 2.0. If a copy of the MPL was not distributed with this
2164 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2165 *
2166 * See the COPYRIGHT file distributed with this work for additional
2167 * information regarding copyright ownership.
2168 */
2169
2170 #ifndef GENERIC_AMTRELAY_260_H
2171 #define GENERIC_AMTRELAY_260_H 1
2172
2173 typedef struct dns_rdata_amtrelay {
2174 dns_rdatacommon_t common;
2175 isc_mem_t *mctx;
2176 uint8_t precedence;
2177 bool discovery;
2178 uint8_t gateway_type;
2179 struct in_addr in_addr; /* gateway type 1 */
2180 struct in6_addr in6_addr; /* gateway type 2 */
2181 dns_name_t gateway; /* gateway type 3 */
2182 unsigned char *data; /* gateway type > 3 */
2183 uint16_t length;
2184 } dns_rdata_amtrelay_t;
2185
2186 #endif /* GENERIC_AMTRELAY_260_H */
2187 /*
2188 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2189 *
2190 * This Source Code Form is subject to the terms of the Mozilla Public
2191 * License, v. 2.0. If a copy of the MPL was not distributed with this
2192 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2193 *
2194 * See the COPYRIGHT file distributed with this work for additional
2195 * information regarding copyright ownership.
2196 */
2197
2198 #ifndef GENERIC_TA_32768_H
2199 #define GENERIC_TA_32768_H 1
2200
2201 /*
2202 * TA records are identical to DS records.
2203 */
2204 typedef struct dns_rdata_ds dns_rdata_ta_t;
2205
2206 #endif /* GENERIC_TA_32768_H */
2207 /*
2208 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2209 *
2210 * This Source Code Form is subject to the terms of the Mozilla Public
2211 * License, v. 2.0. If a copy of the MPL was not distributed with this
2212 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2213 *
2214 * See the COPYRIGHT file distributed with this work for additional
2215 * information regarding copyright ownership.
2216 */
2217
2218 /* draft-ietf-dnsext-delegation-signer-05.txt */
2219 #ifndef GENERIC_DLV_32769_H
2220 #define GENERIC_DLV_32769_H 1
2221
2222 typedef struct dns_rdata_ds dns_rdata_dlv_t;
2223
2224 #endif /* GENERIC_DLV_32769_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 https://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 #ifndef GENERIC_KEYDATA_65533_H
2237 #define GENERIC_KEYDATA_65533_H 1
2238
2239 typedef struct dns_rdata_keydata {
2240 dns_rdatacommon_t common;
2241 isc_mem_t *mctx;
2242 uint32_t refresh; /* Timer for refreshing data */
2243 uint32_t addhd; /* Hold-down timer for adding */
2244 uint32_t removehd; /* Hold-down timer for removing */
2245 uint16_t flags; /* Copy of DNSKEY_48 */
2246 dns_secproto_t protocol;
2247 dns_secalg_t algorithm;
2248 uint16_t datalen;
2249 unsigned char *data;
2250 } dns_rdata_keydata_t;
2251
2252 #endif /* GENERIC_KEYDATA_65533_H */
2253 /*
2254 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2255 *
2256 * This Source Code Form is subject to the terms of the Mozilla Public
2257 * License, v. 2.0. If a copy of the MPL was not distributed with this
2258 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
2259 *
2260 * See the COPYRIGHT file distributed with this work for additional
2261 * information regarding copyright ownership.
2262 */
2263
2264 ISC_LANG_ENDDECLS
2265
2266 #endif /* DNS_RDATASTRUCT_H */
2267