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