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