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