Home | History | Annotate | Line # | Download | only in dns
rdatastruct.h revision 1.1.2.2
      1 /*
      2  * Copyright (C) 1998-2018  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 isc_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 	isc_uint32_t		serial;		/*%< host order */
    240 	isc_uint32_t		refresh;	/*%< host order */
    241 	isc_uint32_t		retry;		/*%< host order */
    242 	isc_uint32_t		expire;		/*%< host order */
    243 	isc_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 	isc_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 	isc_uint16_t		protocol;
    362 	unsigned char		*map;
    363 	isc_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 	isc_uint8_t		cpu_len;
    411 	isc_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 	isc_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 		isc_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 	isc_uint16_t            txt_len;
    489 	/* private */
    490 	isc_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 	isc_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 	isc_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 	isc_uint8_t		isdn_len;
    612 	isc_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 	isc_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 	isc_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 	isc_uint8_t		labels;
    717 	isc_uint32_t		originalttl;
    718 	isc_uint32_t		timeexpire;
    719 	isc_uint32_t		timesigned;
    720 	isc_uint16_t		keyid;
    721 	dns_name_t		signer;
    722 	isc_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 	isc_uint16_t		flags;
    750 	isc_uint8_t		protocol;
    751 	isc_uint8_t		algorithm;
    752 	isc_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 	isc_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 	isc_uint8_t		long_len;
    810 	isc_uint8_t		lat_len;
    811 	isc_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 	isc_uint8_t	version;	/* must be first and zero */
    859 	isc_uint8_t	size;
    860 	isc_uint8_t	horizontal;
    861 	isc_uint8_t	vertical;
    862 	isc_uint32_t	latitude;
    863 	isc_uint32_t	longitude;
    864 	isc_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 	isc_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_SRV_33_H
    914 #define IN_1_SRV_33_H 1
    915 
    916 /*!
    917  *  \brief Per RFC2782 */
    918 
    919 typedef struct dns_rdata_in_srv {
    920 	dns_rdatacommon_t	common;
    921 	isc_mem_t		*mctx;
    922 	isc_uint16_t		priority;
    923 	isc_uint16_t		weight;
    924 	isc_uint16_t		port;
    925 	dns_name_t		target;
    926 } dns_rdata_in_srv_t;
    927 
    928 #endif /* IN_1_SRV_33_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 GENERIC_NAPTR_35_H
    941 #define GENERIC_NAPTR_35_H 1
    942 
    943 
    944 /*!
    945  *  \brief Per RFC2915 */
    946 
    947 typedef struct dns_rdata_naptr {
    948 	dns_rdatacommon_t	common;
    949 	isc_mem_t		*mctx;
    950 	isc_uint16_t		order;
    951 	isc_uint16_t		preference;
    952 	char			*flags;
    953 	isc_uint8_t		flags_len;
    954 	char			*service;
    955 	isc_uint8_t		service_len;
    956 	char			*regexp;
    957 	isc_uint8_t		regexp_len;
    958 	dns_name_t		replacement;
    959 } dns_rdata_naptr_t;
    960 
    961 #endif /* GENERIC_NAPTR_35_H */
    962 /*
    963  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
    964  *
    965  * This Source Code Form is subject to the terms of the Mozilla Public
    966  * License, v. 2.0. If a copy of the MPL was not distributed with this
    967  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
    968  *
    969  * See the COPYRIGHT file distributed with this work for additional
    970  * information regarding copyright ownership.
    971  */
    972 
    973 #ifndef IN_1_KX_36_H
    974 #define IN_1_KX_36_H 1
    975 
    976 
    977 /*!
    978  *  \brief Per RFC2230 */
    979 
    980 typedef struct dns_rdata_in_kx {
    981 	dns_rdatacommon_t	common;
    982 	isc_mem_t		*mctx;
    983 	isc_uint16_t		preference;
    984 	dns_name_t		exchange;
    985 } dns_rdata_in_kx_t;
    986 
    987 #endif /* IN_1_KX_36_H */
    988 /*
    989  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
    990  *
    991  * This Source Code Form is subject to the terms of the Mozilla Public
    992  * License, v. 2.0. If a copy of the MPL was not distributed with this
    993  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
    994  *
    995  * See the COPYRIGHT file distributed with this work for additional
    996  * information regarding copyright ownership.
    997  */
    998 
    999 
   1000 #ifndef GENERIC_CERT_37_H
   1001 #define GENERIC_CERT_37_H 1
   1002 
   1003 /*% RFC2538 */
   1004 typedef struct dns_rdata_cert {
   1005 	dns_rdatacommon_t	common;
   1006 	isc_mem_t		*mctx;
   1007 	isc_uint16_t		type;
   1008 	isc_uint16_t		key_tag;
   1009 	isc_uint8_t		algorithm;
   1010 	isc_uint16_t		length;
   1011 	unsigned char		*certificate;
   1012 } dns_rdata_cert_t;
   1013 
   1014 #endif /* GENERIC_CERT_37_H */
   1015 /*
   1016  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1017  *
   1018  * This Source Code Form is subject to the terms of the Mozilla Public
   1019  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1020  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1021  *
   1022  * See the COPYRIGHT file distributed with this work for additional
   1023  * information regarding copyright ownership.
   1024  */
   1025 
   1026 #ifndef IN_1_A6_38_H
   1027 #define IN_1_A6_38_H 1
   1028 
   1029 
   1030 /*!
   1031  *  \brief Per RFC2874 */
   1032 
   1033 typedef struct dns_rdata_in_a6 {
   1034 	dns_rdatacommon_t	common;
   1035 	isc_mem_t		*mctx;
   1036 	dns_name_t		prefix;
   1037 	isc_uint8_t		prefixlen;
   1038 	struct in6_addr		in6_addr;
   1039 } dns_rdata_in_a6_t;
   1040 
   1041 #endif /* IN_1_A6_38_H */
   1042 /*
   1043  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1044  *
   1045  * This Source Code Form is subject to the terms of the Mozilla Public
   1046  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1047  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1048  *
   1049  * See the COPYRIGHT file distributed with this work for additional
   1050  * information regarding copyright ownership.
   1051  */
   1052 
   1053 #ifndef GENERIC_DNAME_39_H
   1054 #define GENERIC_DNAME_39_H 1
   1055 
   1056 
   1057 /*!
   1058  *  \brief per RFC2672 */
   1059 
   1060 typedef struct dns_rdata_dname {
   1061 	dns_rdatacommon_t	common;
   1062 	isc_mem_t		*mctx;
   1063 	dns_name_t		dname;
   1064 } dns_rdata_dname_t;
   1065 
   1066 #endif /* GENERIC_DNAME_39_H */
   1067 /*
   1068  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1069  *
   1070  * This Source Code Form is subject to the terms of the Mozilla Public
   1071  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1072  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1073  *
   1074  * See the COPYRIGHT file distributed with this work for additional
   1075  * information regarding copyright ownership.
   1076  */
   1077 
   1078 #ifndef GENERIC_SINK_40_H
   1079 #define GENERIC_SINK_40_H 1
   1080 
   1081 typedef struct dns_rdata_sink_t {
   1082 	dns_rdatacommon_t	common;
   1083 	isc_mem_t *		mctx;
   1084 	isc_uint8_t		meaning;
   1085 	isc_uint8_t		coding;
   1086 	isc_uint8_t		subcoding;
   1087 	isc_uint16_t		datalen;
   1088 	unsigned char *		data;
   1089 } dns_rdata_sink_t;
   1090 
   1091 #endif /* GENERIC_SINK_40_H */
   1092 /*
   1093  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1094  *
   1095  * This Source Code Form is subject to the terms of the Mozilla Public
   1096  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1097  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1098  *
   1099  * See the COPYRIGHT file distributed with this work for additional
   1100  * information regarding copyright ownership.
   1101  */
   1102 
   1103 #ifndef GENERIC_OPT_41_H
   1104 #define GENERIC_OPT_41_H 1
   1105 
   1106 
   1107 /*!
   1108  *  \brief Per RFC2671 */
   1109 
   1110 typedef struct dns_rdata_opt_opcode {
   1111 		isc_uint16_t	opcode;
   1112 		isc_uint16_t	length;
   1113 		unsigned char	*data;
   1114 } dns_rdata_opt_opcode_t;
   1115 
   1116 typedef struct dns_rdata_opt {
   1117 	dns_rdatacommon_t	common;
   1118 	isc_mem_t		*mctx;
   1119 	unsigned char		*options;
   1120 	isc_uint16_t		length;
   1121 	/* private */
   1122 	isc_uint16_t		offset;
   1123 } dns_rdata_opt_t;
   1124 
   1125 /*
   1126  * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
   1127  * via rdatastructpre.h and rdatastructsuf.h.
   1128  */
   1129 
   1130 isc_result_t
   1131 dns_rdata_opt_first(dns_rdata_opt_t *);
   1132 
   1133 isc_result_t
   1134 dns_rdata_opt_next(dns_rdata_opt_t *);
   1135 
   1136 isc_result_t
   1137 dns_rdata_opt_current(dns_rdata_opt_t *, dns_rdata_opt_opcode_t *);
   1138 
   1139 #endif /* GENERIC_OPT_41_H */
   1140 /*
   1141  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1142  *
   1143  * This Source Code Form is subject to the terms of the Mozilla Public
   1144  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1145  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1146  *
   1147  * See the COPYRIGHT file distributed with this work for additional
   1148  * information regarding copyright ownership.
   1149  */
   1150 
   1151 /* */
   1152 #ifndef IN_1_APL_42_H
   1153 #define IN_1_APL_42_H 1
   1154 
   1155 
   1156 typedef struct dns_rdata_apl_ent {
   1157 	isc_boolean_t	negative;
   1158 	isc_uint16_t	family;
   1159 	isc_uint8_t	prefix;
   1160 	isc_uint8_t	length;
   1161 	unsigned char	*data;
   1162 } dns_rdata_apl_ent_t;
   1163 
   1164 typedef struct dns_rdata_in_apl {
   1165 	dns_rdatacommon_t	common;
   1166 	isc_mem_t		*mctx;
   1167 	/* type & class specific elements */
   1168 	unsigned char           *apl;
   1169 	isc_uint16_t            apl_len;
   1170 	/* private */
   1171 	isc_uint16_t            offset;
   1172 } dns_rdata_in_apl_t;
   1173 
   1174 /*
   1175  * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
   1176  * via rdatastructpre.h and rdatastructsuf.h.
   1177  */
   1178 
   1179 isc_result_t
   1180 dns_rdata_apl_first(dns_rdata_in_apl_t *);
   1181 
   1182 isc_result_t
   1183 dns_rdata_apl_next(dns_rdata_in_apl_t *);
   1184 
   1185 isc_result_t
   1186 dns_rdata_apl_current(dns_rdata_in_apl_t *, dns_rdata_apl_ent_t *);
   1187 
   1188 unsigned int
   1189 dns_rdata_apl_count(const dns_rdata_in_apl_t *apl);
   1190 
   1191 #endif /* IN_1_APL_42_H */
   1192 /*
   1193  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1194  *
   1195  * This Source Code Form is subject to the terms of the Mozilla Public
   1196  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1197  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1198  *
   1199  * See the COPYRIGHT file distributed with this work for additional
   1200  * information regarding copyright ownership.
   1201  */
   1202 
   1203 
   1204 #ifndef GENERIC_DS_43_H
   1205 #define GENERIC_DS_43_H 1
   1206 
   1207 /*!
   1208  *  \brief per draft-ietf-dnsext-delegation-signer-05.txt */
   1209 typedef struct dns_rdata_ds {
   1210 	dns_rdatacommon_t	common;
   1211 	isc_mem_t		*mctx;
   1212 	isc_uint16_t		key_tag;
   1213 	isc_uint8_t		algorithm;
   1214 	isc_uint8_t		digest_type;
   1215 	isc_uint16_t		length;
   1216 	unsigned char		*digest;
   1217 } dns_rdata_ds_t;
   1218 
   1219 #endif /* GENERIC_DS_43_H */
   1220 /*
   1221  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1222  *
   1223  * This Source Code Form is subject to the terms of the Mozilla Public
   1224  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1225  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1226  *
   1227  * See the COPYRIGHT file distributed with this work for additional
   1228  * information regarding copyright ownership.
   1229  */
   1230 
   1231 
   1232 /*!
   1233  *  \brief Per RFC 4255 */
   1234 
   1235 #ifndef GENERIC_SSHFP_44_H
   1236 #define GENERIC_SSHFP_44_H 1
   1237 
   1238 typedef struct dns_rdata_sshfp {
   1239 	dns_rdatacommon_t	common;
   1240 	isc_mem_t		*mctx;
   1241 	isc_uint8_t		algorithm;
   1242 	isc_uint8_t		digest_type;
   1243 	isc_uint16_t		length;
   1244 	unsigned char		*digest;
   1245 } dns_rdata_sshfp_t;
   1246 
   1247 #endif /* GENERIC_SSHFP_44_H */
   1248 /*
   1249  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1250  *
   1251  * This Source Code Form is subject to the terms of the Mozilla Public
   1252  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1253  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1254  *
   1255  * See the COPYRIGHT file distributed with this work for additional
   1256  * information regarding copyright ownership.
   1257  */
   1258 
   1259 
   1260 #ifndef GENERIC_IPSECKEY_45_H
   1261 #define GENERIC_IPSECKEY_45_H 1
   1262 
   1263 typedef struct dns_rdata_ipseckey {
   1264 	dns_rdatacommon_t	common;
   1265 	isc_mem_t		*mctx;
   1266 	isc_uint8_t		precedence;
   1267 	isc_uint8_t		gateway_type;
   1268 	isc_uint8_t		algorithm;
   1269 	struct in_addr		in_addr;	/* gateway type 1 */
   1270 	struct in6_addr		in6_addr;	/* gateway type 2 */
   1271 	dns_name_t		gateway;	/* gateway type 3 */
   1272 	unsigned char		*key;
   1273 	isc_uint16_t		keylength;
   1274 } dns_rdata_ipseckey_t;
   1275 
   1276 #endif /* GENERIC_IPSECKEY_45_H */
   1277 /*
   1278  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1279  *
   1280  * This Source Code Form is subject to the terms of the Mozilla Public
   1281  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1282  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1283  *
   1284  * See the COPYRIGHT file distributed with this work for additional
   1285  * information regarding copyright ownership.
   1286  */
   1287 
   1288 #ifndef GENERIC_DNSSIG_46_H
   1289 #define GENERIC_DNSSIG_46_H 1
   1290 
   1291 
   1292 /*!
   1293  *  \brief Per RFC2535 */
   1294 typedef struct dns_rdata_rrsig {
   1295 	dns_rdatacommon_t	common;
   1296 	isc_mem_t *		mctx;
   1297 	dns_rdatatype_t		covered;
   1298 	dns_secalg_t		algorithm;
   1299 	isc_uint8_t		labels;
   1300 	isc_uint32_t		originalttl;
   1301 	isc_uint32_t		timeexpire;
   1302 	isc_uint32_t		timesigned;
   1303 	isc_uint16_t		keyid;
   1304 	dns_name_t		signer;
   1305 	isc_uint16_t		siglen;
   1306 	unsigned char *		signature;
   1307 } dns_rdata_rrsig_t;
   1308 
   1309 
   1310 #endif /* GENERIC_DNSSIG_46_H */
   1311 /*
   1312  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1313  *
   1314  * This Source Code Form is subject to the terms of the Mozilla Public
   1315  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1316  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1317  *
   1318  * See the COPYRIGHT file distributed with this work for additional
   1319  * information regarding copyright ownership.
   1320  */
   1321 
   1322 #ifndef GENERIC_NSEC_47_H
   1323 #define GENERIC_NSEC_47_H 1
   1324 
   1325 
   1326 /*!
   1327  * \brief Per RFC 3845 */
   1328 
   1329 typedef struct dns_rdata_nsec {
   1330 	dns_rdatacommon_t	common;
   1331 	isc_mem_t		*mctx;
   1332 	dns_name_t		next;
   1333 	unsigned char		*typebits;
   1334 	isc_uint16_t		len;
   1335 } dns_rdata_nsec_t;
   1336 
   1337 #endif /* GENERIC_NSEC_47_H */
   1338 /*
   1339  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1340  *
   1341  * This Source Code Form is subject to the terms of the Mozilla Public
   1342  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1343  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1344  *
   1345  * See the COPYRIGHT file distributed with this work for additional
   1346  * information regarding copyright ownership.
   1347  */
   1348 
   1349 #ifndef GENERIC_DNSKEY_48_H
   1350 #define GENERIC_DNSKEY_48_H 1
   1351 
   1352 /*!
   1353  *  \brief per RFC2535
   1354  */
   1355 
   1356 typedef struct dns_rdata_key dns_rdata_dnskey_t;
   1357 
   1358 #endif /* GENERIC_DNSKEY_48_H */
   1359 /*
   1360  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1361  *
   1362  * This Source Code Form is subject to the terms of the Mozilla Public
   1363  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1364  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1365  *
   1366  * See the COPYRIGHT file distributed with this work for additional
   1367  * information regarding copyright ownership.
   1368  */
   1369 
   1370 /* */
   1371 #ifndef IN_1_DHCID_49_H
   1372 #define IN_1_DHCID_49_H 1
   1373 
   1374 
   1375 typedef struct dns_rdata_in_dhcid {
   1376 	dns_rdatacommon_t	common;
   1377 	isc_mem_t		*mctx;
   1378 	unsigned char		*dhcid;
   1379 	unsigned int		length;
   1380 } dns_rdata_in_dhcid_t;
   1381 
   1382 #endif /* IN_1_DHCID_49_H */
   1383 /*
   1384  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1385  *
   1386  * This Source Code Form is subject to the terms of the Mozilla Public
   1387  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1388  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1389  *
   1390  * See the COPYRIGHT file distributed with this work for additional
   1391  * information regarding copyright ownership.
   1392  */
   1393 
   1394 
   1395 #ifndef GENERIC_NSEC3_50_H
   1396 #define GENERIC_NSEC3_50_H 1
   1397 
   1398 
   1399 /*!
   1400  * \brief Per RFC 5155 */
   1401 
   1402 #include <isc/iterated_hash.h>
   1403 
   1404 typedef struct dns_rdata_nsec3 {
   1405 	dns_rdatacommon_t	common;
   1406 	isc_mem_t		*mctx;
   1407 	dns_hash_t		hash;
   1408 	unsigned char		flags;
   1409 	dns_iterations_t	iterations;
   1410 	unsigned char		salt_length;
   1411 	unsigned char		next_length;
   1412 	isc_uint16_t		len;
   1413 	unsigned char		*salt;
   1414 	unsigned char		*next;
   1415 	unsigned char		*typebits;
   1416 } dns_rdata_nsec3_t;
   1417 
   1418 /*
   1419  * The corresponding NSEC3 interval is OPTOUT indicating possible
   1420  * insecure delegations.
   1421  */
   1422 #define DNS_NSEC3FLAG_OPTOUT 0x01U
   1423 
   1424 /*%
   1425  * The following flags are used in the private-type record (implemented in
   1426  * lib/dns/private.c) which is used to store NSEC3PARAM data during the
   1427  * time when it is not legal to have an actual NSEC3PARAM record in the
   1428  * zone.  They are defined here because the private-type record uses the
   1429  * same flags field for the OPTOUT flag above and for the private flags
   1430  * below.  XXX: This should be considered for refactoring.
   1431  */
   1432 
   1433 /*%
   1434  * Non-standard, private type only.
   1435  *
   1436  * Create a corresponding NSEC3 chain.
   1437  * Once the NSEC3 chain is complete this flag will be removed to signal
   1438  * that there is a complete chain.
   1439  *
   1440  * This flag is automatically set when a NSEC3PARAM record is added to
   1441  * the zone via UPDATE.
   1442  *
   1443  * NSEC3PARAM records containing this flag should never be published,
   1444  * but if they are, they should be ignored by RFC 5155 compliant
   1445  * nameservers.
   1446  */
   1447 #define DNS_NSEC3FLAG_CREATE 0x80U
   1448 
   1449 /*%
   1450  * Non-standard, private type only.
   1451  *
   1452  * The corresponding NSEC3 set is to be removed once the NSEC chain
   1453  * has been generated.
   1454  *
   1455  * This flag is automatically set when the last active NSEC3PARAM record
   1456  * is removed from the zone via UPDATE.
   1457  *
   1458  * NSEC3PARAM records containing this flag should never be published,
   1459  * but if they are, they should be ignored by RFC 5155 compliant
   1460  * nameservers.
   1461  */
   1462 #define DNS_NSEC3FLAG_REMOVE 0x40U
   1463 
   1464 /*%
   1465  * Non-standard, private type only.
   1466  *
   1467  * When set with the CREATE flag, a corresponding NSEC3 chain will be
   1468  * created when the zone becomes capable of supporting one (i.e., when it
   1469  * has a DNSKEY RRset containing at least one NSEC3-capable algorithm).
   1470  * Without this flag, NSEC3 chain creation would be attempted immediately,
   1471  * fail, and the private type record would be removed.  With it, the NSEC3
   1472  * parameters are stored until they can be used.  When the zone has the
   1473  * necessary prerequisites for NSEC3, then the INITIAL flag can be cleared,
   1474  * and the record will be cleaned up normally.
   1475  *
   1476  * NSEC3PARAM records containing this flag should never be published, but
   1477  * if they are, they should be ignored by RFC 5155 compliant nameservers.
   1478  */
   1479 #define DNS_NSEC3FLAG_INITIAL 0x20U
   1480 
   1481 /*%
   1482  * Non-standard, private type only.
   1483  *
   1484  * Prevent the creation of a NSEC chain before the last NSEC3 chain
   1485  * is removed.  This will normally only be set when the zone is
   1486  * transitioning from secure with NSEC3 chains to insecure.
   1487  *
   1488  * NSEC3PARAM records containing this flag should never be published,
   1489  * but if they are, they should be ignored by RFC 5155 compliant
   1490  * nameservers.
   1491  */
   1492 #define DNS_NSEC3FLAG_NONSEC 0x10U
   1493 
   1494 #endif /* GENERIC_NSEC3_50_H */
   1495 /*
   1496  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1497  *
   1498  * This Source Code Form is subject to the terms of the Mozilla Public
   1499  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1500  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1501  *
   1502  * See the COPYRIGHT file distributed with this work for additional
   1503  * information regarding copyright ownership.
   1504  */
   1505 
   1506 
   1507 #ifndef GENERIC_NSEC3PARAM_51_H
   1508 #define GENERIC_NSEC3PARAM_51_H 1
   1509 
   1510 
   1511 /*!
   1512  * \brief Per RFC 5155 */
   1513 
   1514 #include <isc/iterated_hash.h>
   1515 
   1516 typedef struct dns_rdata_nsec3param {
   1517 	dns_rdatacommon_t	common;
   1518 	isc_mem_t		*mctx;
   1519 	dns_hash_t		hash;
   1520 	unsigned char		flags;		/* DNS_NSEC3FLAG_* */
   1521 	dns_iterations_t	iterations;
   1522 	unsigned char		salt_length;
   1523 	unsigned char		*salt;
   1524 } dns_rdata_nsec3param_t;
   1525 
   1526 #endif /* GENERIC_NSEC3PARAM_51_H */
   1527 /*
   1528  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1529  *
   1530  * This Source Code Form is subject to the terms of the Mozilla Public
   1531  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1532  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1533  *
   1534  * See the COPYRIGHT file distributed with this work for additional
   1535  * information regarding copyright ownership.
   1536  */
   1537 
   1538 
   1539 #ifndef GENERIC_TLSA_52_H
   1540 #define GENERIC_TLSA_52_H 1
   1541 
   1542 /*!
   1543  *  \brief per rfc6698.txt
   1544  */
   1545 typedef struct dns_rdata_tlsa {
   1546 	dns_rdatacommon_t	common;
   1547 	isc_mem_t		*mctx;
   1548 	isc_uint8_t		usage;
   1549 	isc_uint8_t		selector;
   1550 	isc_uint8_t		match;
   1551 	isc_uint16_t		length;
   1552 	unsigned char		*data;
   1553 } dns_rdata_tlsa_t;
   1554 
   1555 #endif /* GENERIC_TLSA_52_H */
   1556 /*
   1557  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1558  *
   1559  * This Source Code Form is subject to the terms of the Mozilla Public
   1560  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1561  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1562  *
   1563  * See the COPYRIGHT file distributed with this work for additional
   1564  * information regarding copyright ownership.
   1565  */
   1566 
   1567 #ifndef GENERIC_SMIMEA_53_H
   1568 #define GENERIC_SMIMEA_53_H 1
   1569 
   1570 typedef struct dns_rdata_tlsa dns_rdata_smimea_t;
   1571 
   1572 #endif /* GENERIC_SMIMEA_53_H */
   1573 /*
   1574  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1575  *
   1576  * This Source Code Form is subject to the terms of the Mozilla Public
   1577  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1578  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1579  *
   1580  * See the COPYRIGHT file distributed with this work for additional
   1581  * information regarding copyright ownership.
   1582  */
   1583 
   1584 
   1585 #ifndef GENERIC_HIP_5_H
   1586 #define GENERIC_HIP_5_H 1
   1587 
   1588 /* RFC 5205 */
   1589 
   1590 typedef struct dns_rdata_hip {
   1591 	dns_rdatacommon_t	common;
   1592 	isc_mem_t *		mctx;
   1593 	unsigned char *		hit;
   1594 	unsigned char *		key;
   1595 	unsigned char *		servers;
   1596 	isc_uint8_t		algorithm;
   1597 	isc_uint8_t		hit_len;
   1598 	isc_uint16_t		key_len;
   1599 	isc_uint16_t		servers_len;
   1600 	/* Private */
   1601 	isc_uint16_t		offset;
   1602 } dns_rdata_hip_t;
   1603 
   1604 isc_result_t
   1605 dns_rdata_hip_first(dns_rdata_hip_t *);
   1606 
   1607 isc_result_t
   1608 dns_rdata_hip_next(dns_rdata_hip_t *);
   1609 
   1610 void
   1611 dns_rdata_hip_current(dns_rdata_hip_t *, dns_name_t *);
   1612 
   1613 #endif /* GENERIC_HIP_5_H */
   1614 /*
   1615  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1616  *
   1617  * This Source Code Form is subject to the terms of the Mozilla Public
   1618  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1619  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1620  *
   1621  * See the COPYRIGHT file distributed with this work for additional
   1622  * information regarding copyright ownership.
   1623  */
   1624 
   1625 /* */
   1626 #ifndef GENERIC_NINFO_56_H
   1627 #define GENERIC_NINFO_56_H 1
   1628 
   1629 typedef struct dns_rdata_txt_string dns_rdata_ninfo_string_t;
   1630 
   1631 typedef struct dns_rdata_txt dns_rdata_ninfo_t;
   1632 
   1633 /*
   1634  * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
   1635  * via rdatastructpre.h and rdatastructsuf.h.
   1636  */
   1637 
   1638 isc_result_t
   1639 dns_rdata_ninfo_first(dns_rdata_ninfo_t *);
   1640 
   1641 isc_result_t
   1642 dns_rdata_ninfo_next(dns_rdata_ninfo_t *);
   1643 
   1644 isc_result_t
   1645 dns_rdata_ninfo_current(dns_rdata_ninfo_t *, dns_rdata_ninfo_string_t *);
   1646 
   1647 #endif /* GENERIC_NINFO_16_H */
   1648 /*
   1649  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1650  *
   1651  * This Source Code Form is subject to the terms of the Mozilla Public
   1652  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1653  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1654  *
   1655  * See the COPYRIGHT file distributed with this work for additional
   1656  * information regarding copyright ownership.
   1657  */
   1658 
   1659 #ifndef GENERIC_RKEY_57_H
   1660 #define GENERIC_RKEY_57_H 1
   1661 
   1662 typedef struct dns_rdata_key dns_rdata_rkey_t;
   1663 
   1664 #endif /* GENERIC_RKEY_57_H */
   1665 /*
   1666  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1667  *
   1668  * This Source Code Form is subject to the terms of the Mozilla Public
   1669  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1670  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1671  *
   1672  * See the COPYRIGHT file distributed with this work for additional
   1673  * information regarding copyright ownership.
   1674  */
   1675 
   1676 /* http://www.iana.org/assignments/dns-parameters/TALINK/talink-completed-template */
   1677 
   1678 #ifndef GENERIC_TALINK_58_H
   1679 #define GENERIC_TALINK_58_H 1
   1680 
   1681 typedef struct dns_rdata_talink {
   1682 	dns_rdatacommon_t	common;
   1683 	isc_mem_t		*mctx;
   1684 	dns_name_t		prev;
   1685 	dns_name_t		next;
   1686 } dns_rdata_talink_t;
   1687 
   1688 #endif /* GENERIC_TALINK_58_H */
   1689 /*
   1690  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1691  *
   1692  * This Source Code Form is subject to the terms of the Mozilla Public
   1693  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1694  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1695  *
   1696  * See the COPYRIGHT file distributed with this work for additional
   1697  * information regarding copyright ownership.
   1698  */
   1699 
   1700 #ifndef GENERIC_CDS_59_H
   1701 #define GENERIC_CDS_59_H 1
   1702 
   1703 /* CDS records have the same RDATA fields as DS records. */
   1704 typedef struct dns_rdata_ds dns_rdata_cds_t;
   1705 
   1706 #endif /* GENERIC_CDS_59_H */
   1707 /*
   1708  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1709  *
   1710  * This Source Code Form is subject to the terms of the Mozilla Public
   1711  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1712  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1713  *
   1714  * See the COPYRIGHT file distributed with this work for additional
   1715  * information regarding copyright ownership.
   1716  */
   1717 
   1718 #ifndef GENERIC_CDNSKEY_60_H
   1719 #define GENERIC_CDNSKEY_60_H 1
   1720 
   1721 /* CDNSKEY records have the same RDATA fields as DNSKEY records. */
   1722 typedef struct dns_rdata_key dns_rdata_cdnskey_t;
   1723 
   1724 #endif /* GENERIC_CDNSKEY_60_H */
   1725 /*
   1726  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1727  *
   1728  * This Source Code Form is subject to the terms of the Mozilla Public
   1729  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1730  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1731  *
   1732  * See the COPYRIGHT file distributed with this work for additional
   1733  * information regarding copyright ownership.
   1734  */
   1735 
   1736 #ifndef GENERIC_OPENPGPKEY_61_H
   1737 #define GENERIC_OPENPGPKEY_61_H 1
   1738 
   1739 typedef struct dns_rdata_openpgpkey {
   1740 	dns_rdatacommon_t	common;
   1741 	isc_mem_t *		mctx;
   1742 	isc_uint16_t		length;
   1743 	unsigned char *		keyring;
   1744 } dns_rdata_openpgpkey_t;
   1745 
   1746 #endif /* GENERIC_OPENPGPKEY_61_H */
   1747 /*
   1748  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1749  *
   1750  * This Source Code Form is subject to the terms of the Mozilla Public
   1751  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1752  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1753  *
   1754  * See the COPYRIGHT file distributed with this work for additional
   1755  * information regarding copyright ownership.
   1756  */
   1757 
   1758 #ifndef GENERIC_CSYNC_62_H
   1759 #define GENERIC_CSYNC_62_H 1
   1760 
   1761 /*!
   1762  * \brief Per RFC 7477
   1763  */
   1764 
   1765 typedef struct dns_rdata_csync {
   1766 	dns_rdatacommon_t	common;
   1767 	isc_mem_t		*mctx;
   1768 	isc_uint32_t		serial;
   1769 	isc_uint16_t		flags;
   1770 	unsigned char		*typebits;
   1771 	isc_uint16_t		len;
   1772 } dns_rdata_csync_t;
   1773 
   1774 #endif /* GENERIC_CSYNC_62_H */
   1775 /*
   1776  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1777  *
   1778  * This Source Code Form is subject to the terms of the Mozilla Public
   1779  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1780  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1781  *
   1782  * See the COPYRIGHT file distributed with this work for additional
   1783  * information regarding copyright ownership.
   1784  */
   1785 
   1786 #ifndef GENERIC_SPF_99_H
   1787 #define GENERIC_SPF_99_H 1
   1788 
   1789 
   1790 typedef struct dns_rdata_spf_string {
   1791 		isc_uint8_t    length;
   1792 		unsigned char   *data;
   1793 } dns_rdata_spf_string_t;
   1794 
   1795 typedef struct dns_rdata_spf {
   1796 	dns_rdatacommon_t       common;
   1797 	isc_mem_t               *mctx;
   1798 	unsigned char           *txt;
   1799 	isc_uint16_t            txt_len;
   1800 	/* private */
   1801 	isc_uint16_t            offset;
   1802 } dns_rdata_spf_t;
   1803 
   1804 /*
   1805  * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
   1806  * via rdatastructpre.h and rdatastructsuf.h.
   1807  */
   1808 #endif /* GENERIC_SPF_99_H */
   1809 /*
   1810  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1811  *
   1812  * This Source Code Form is subject to the terms of the Mozilla Public
   1813  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1814  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1815  *
   1816  * See the COPYRIGHT file distributed with this work for additional
   1817  * information regarding copyright ownership.
   1818  */
   1819 
   1820 /* */
   1821 #ifndef GENERIC_UNSPEC_103_H
   1822 #define GENERIC_UNSPEC_103_H 1
   1823 
   1824 
   1825 typedef struct dns_rdata_unspec_t {
   1826 	dns_rdatacommon_t	common;
   1827 	isc_mem_t		*mctx;
   1828 	unsigned char		*data;
   1829 	isc_uint16_t		datalen;
   1830 } dns_rdata_unspec_t;
   1831 
   1832 #endif /* GENERIC_UNSPEC_103_H */
   1833 /*
   1834  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1835  *
   1836  * This Source Code Form is subject to the terms of the Mozilla Public
   1837  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1838  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1839  *
   1840  * See the COPYRIGHT file distributed with this work for additional
   1841  * information regarding copyright ownership.
   1842  */
   1843 
   1844 /* */
   1845 #ifndef GENERIC_NID_104_H
   1846 #define GENERIC_NID_104_H 1
   1847 
   1848 typedef struct dns_rdata_nid {
   1849 	dns_rdatacommon_t	common;
   1850 	isc_uint16_t		pref;
   1851 	unsigned char		nid[8];
   1852 } dns_rdata_nid_t;
   1853 
   1854 #endif /* GENERIC_NID_104_H */
   1855 /*
   1856  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1857  *
   1858  * This Source Code Form is subject to the terms of the Mozilla Public
   1859  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1860  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1861  *
   1862  * See the COPYRIGHT file distributed with this work for additional
   1863  * information regarding copyright ownership.
   1864  */
   1865 
   1866 /* */
   1867 #ifndef GENERIC_L32_105_H
   1868 #define GENERIC_L32_105_H 1
   1869 
   1870 typedef struct dns_rdata_l32 {
   1871 	dns_rdatacommon_t	common;
   1872 	isc_uint16_t		pref;
   1873 	struct in_addr		l32;
   1874 } dns_rdata_l32_t;
   1875 
   1876 #endif /* GENERIC_L32_105_H */
   1877 /*
   1878  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1879  *
   1880  * This Source Code Form is subject to the terms of the Mozilla Public
   1881  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1882  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1883  *
   1884  * See the COPYRIGHT file distributed with this work for additional
   1885  * information regarding copyright ownership.
   1886  */
   1887 
   1888 /* */
   1889 #ifndef GENERIC_L64_106_H
   1890 #define GENERIC_L64_106_H 1
   1891 
   1892 typedef struct dns_rdata_l64 {
   1893 	dns_rdatacommon_t	common;
   1894 	isc_uint16_t		pref;
   1895 	unsigned char		l64[8];
   1896 } dns_rdata_l64_t;
   1897 
   1898 #endif /* GENERIC_L64_106_H */
   1899 /*
   1900  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1901  *
   1902  * This Source Code Form is subject to the terms of the Mozilla Public
   1903  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1904  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1905  *
   1906  * See the COPYRIGHT file distributed with this work for additional
   1907  * information regarding copyright ownership.
   1908  */
   1909 
   1910 /* */
   1911 #ifndef GENERIC_LP_107_H
   1912 #define GENERIC_LP_107_H 1
   1913 
   1914 typedef struct dns_rdata_lp {
   1915 	dns_rdatacommon_t	common;
   1916 	isc_mem_t		*mctx;
   1917 	isc_uint16_t		pref;
   1918 	dns_name_t		lp;
   1919 } dns_rdata_lp_t;
   1920 
   1921 #endif /* GENERIC_LP_107_H */
   1922 /*
   1923  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1924  *
   1925  * This Source Code Form is subject to the terms of the Mozilla Public
   1926  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1927  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1928  *
   1929  * See the COPYRIGHT file distributed with this work for additional
   1930  * information regarding copyright ownership.
   1931  */
   1932 
   1933 /* */
   1934 #ifndef GENERIC_EUI48_108_H
   1935 #define GENERIC_EUI48_108_H 1
   1936 
   1937 typedef struct dns_rdata_eui48 {
   1938 	dns_rdatacommon_t	common;
   1939 	unsigned char		eui48[6];
   1940 } dns_rdata_eui48_t;
   1941 
   1942 #endif /* GENERIC_EUI48_10k_H */
   1943 /*
   1944  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1945  *
   1946  * This Source Code Form is subject to the terms of the Mozilla Public
   1947  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1948  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1949  *
   1950  * See the COPYRIGHT file distributed with this work for additional
   1951  * information regarding copyright ownership.
   1952  */
   1953 
   1954 /* */
   1955 #ifndef GENERIC_EUI64_109_H
   1956 #define GENERIC_EUI64_109_H 1
   1957 
   1958 typedef struct dns_rdata_eui64 {
   1959 	dns_rdatacommon_t	common;
   1960 	unsigned char		eui64[8];
   1961 } dns_rdata_eui64_t;
   1962 
   1963 #endif /* GENERIC_EUI64_10k_H */
   1964 /*
   1965  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   1966  *
   1967  * This Source Code Form is subject to the terms of the Mozilla Public
   1968  * License, v. 2.0. If a copy of the MPL was not distributed with this
   1969  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   1970  *
   1971  * See the COPYRIGHT file distributed with this work for additional
   1972  * information regarding copyright ownership.
   1973  */
   1974 
   1975 #ifndef GENERIC_TKEY_249_H
   1976 #define GENERIC_TKEY_249_H 1
   1977 
   1978 
   1979 /*!
   1980  *  \brief Per draft-ietf-dnsind-tkey-00.txt */
   1981 
   1982 typedef struct dns_rdata_tkey {
   1983 	dns_rdatacommon_t	common;
   1984 	isc_mem_t *		mctx;
   1985 	dns_name_t		algorithm;
   1986 	isc_uint32_t		inception;
   1987 	isc_uint32_t		expire;
   1988 	isc_uint16_t		mode;
   1989 	isc_uint16_t		error;
   1990 	isc_uint16_t		keylen;
   1991 	unsigned char *		key;
   1992 	isc_uint16_t		otherlen;
   1993 	unsigned char *		other;
   1994 } dns_rdata_tkey_t;
   1995 
   1996 
   1997 #endif /* GENERIC_TKEY_249_H */
   1998 /*
   1999  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   2000  *
   2001  * This Source Code Form is subject to the terms of the Mozilla Public
   2002  * License, v. 2.0. If a copy of the MPL was not distributed with this
   2003  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   2004  *
   2005  * See the COPYRIGHT file distributed with this work for additional
   2006  * information regarding copyright ownership.
   2007  */
   2008 
   2009 
   2010 #ifndef ANY_255_TSIG_250_H
   2011 #define ANY_255_TSIG_250_H 1
   2012 
   2013 /*% RFC2845 */
   2014 typedef struct dns_rdata_any_tsig {
   2015 	dns_rdatacommon_t	common;
   2016 	isc_mem_t *		mctx;
   2017 	dns_name_t		algorithm;
   2018 	isc_uint64_t		timesigned;
   2019 	isc_uint16_t		fudge;
   2020 	isc_uint16_t		siglen;
   2021 	unsigned char *		signature;
   2022 	isc_uint16_t		originalid;
   2023 	isc_uint16_t		error;
   2024 	isc_uint16_t		otherlen;
   2025 	unsigned char *		other;
   2026 } dns_rdata_any_tsig_t;
   2027 
   2028 #endif /* ANY_255_TSIG_250_H */
   2029 /*
   2030  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   2031  *
   2032  * This Source Code Form is subject to the terms of the Mozilla Public
   2033  * License, v. 2.0. If a copy of the MPL was not distributed with this
   2034  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   2035  *
   2036  * See the COPYRIGHT file distributed with this work for additional
   2037  * information regarding copyright ownership.
   2038  */
   2039 
   2040 #ifndef GENERIC_URI_256_H
   2041 #define GENERIC_URI_256_H 1
   2042 
   2043 
   2044 typedef struct dns_rdata_uri {
   2045 	dns_rdatacommon_t	common;
   2046 	isc_mem_t *		mctx;
   2047 	isc_uint16_t		priority;
   2048 	isc_uint16_t		weight;
   2049 	unsigned char *		target;
   2050 	isc_uint16_t		tgt_len;
   2051 } dns_rdata_uri_t;
   2052 
   2053 #endif /* GENERIC_URI_256_H */
   2054 /*
   2055  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   2056  *
   2057  * This Source Code Form is subject to the terms of the Mozilla Public
   2058  * License, v. 2.0. If a copy of the MPL was not distributed with this
   2059  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   2060  *
   2061  * See the COPYRIGHT file distributed with this work for additional
   2062  * information regarding copyright ownership.
   2063  */
   2064 
   2065 #ifndef GENERIC_CAA_257_H
   2066 #define GENERIC_CAA_257_H 1
   2067 
   2068 
   2069 typedef struct dns_rdata_caa {
   2070 	dns_rdatacommon_t	common;
   2071 	isc_mem_t *		mctx;
   2072 	isc_uint8_t		flags;
   2073 	unsigned char *		tag;
   2074 	isc_uint8_t		tag_len;
   2075 	unsigned char		*value;
   2076 	isc_uint16_t		value_len;
   2077 } dns_rdata_caa_t;
   2078 
   2079 #endif /* GENERIC_CAA_257_H */
   2080 /*
   2081  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   2082  *
   2083  * This Source Code Form is subject to the terms of the Mozilla Public
   2084  * License, v. 2.0. If a copy of the MPL was not distributed with this
   2085  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   2086  *
   2087  * See the COPYRIGHT file distributed with this work for additional
   2088  * information regarding copyright ownership.
   2089  */
   2090 
   2091 #ifndef GENERIC_AVC_258_H
   2092 #define GENERIC_AVC_258_H 1
   2093 
   2094 typedef dns_rdata_txt_string_t dns_rdata_avc_string_t;
   2095 
   2096 typedef struct dns_rdata_avc {
   2097 	dns_rdatacommon_t       common;
   2098 	isc_mem_t               *mctx;
   2099 	unsigned char           *data;
   2100 	isc_uint16_t            length;
   2101 	/* private */
   2102 	isc_uint16_t            offset;
   2103 } dns_rdata_avc_t;
   2104 
   2105 /*
   2106  * ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
   2107  * via rdatastructpre.h and rdatastructsuf.h.
   2108  */
   2109 #endif /* GENERIC_AVC_258_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 #ifndef GENERIC_DOA_259_H
   2122 #define GENERIC_DOA_259_H 1
   2123 
   2124 typedef struct dns_rdata_doa {
   2125 	dns_rdatacommon_t	common;
   2126 	isc_mem_t *		mctx;
   2127 	unsigned char *		mediatype;
   2128 	unsigned char *		data;
   2129 	isc_uint32_t		enterprise;
   2130 	isc_uint32_t		type;
   2131 	isc_uint16_t		data_len;
   2132 	isc_uint8_t		location;
   2133 	isc_uint8_t		mediatype_len;
   2134 } dns_rdata_doa_t;
   2135 
   2136 #endif /* GENERIC_DOA_259_H */
   2137 /*
   2138  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   2139  *
   2140  * This Source Code Form is subject to the terms of the Mozilla Public
   2141  * License, v. 2.0. If a copy of the MPL was not distributed with this
   2142  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   2143  *
   2144  * See the COPYRIGHT file distributed with this work for additional
   2145  * information regarding copyright ownership.
   2146  */
   2147 
   2148 #ifndef GENERIC_TA_32768_H
   2149 #define GENERIC_TA_32768_H 1
   2150 
   2151 /*
   2152  * TA records are identical to DS records.
   2153  */
   2154 typedef struct dns_rdata_ds dns_rdata_ta_t;
   2155 
   2156 #endif /* GENERIC_TA_32768_H */
   2157 /*
   2158  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   2159  *
   2160  * This Source Code Form is subject to the terms of the Mozilla Public
   2161  * License, v. 2.0. If a copy of the MPL was not distributed with this
   2162  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   2163  *
   2164  * See the COPYRIGHT file distributed with this work for additional
   2165  * information regarding copyright ownership.
   2166  */
   2167 
   2168 
   2169 /* draft-ietf-dnsext-delegation-signer-05.txt */
   2170 #ifndef GENERIC_DLV_32769_H
   2171 #define GENERIC_DLV_32769_H 1
   2172 
   2173 typedef struct dns_rdata_ds dns_rdata_dlv_t;
   2174 
   2175 #endif /* GENERIC_DLV_32769_H */
   2176 /*
   2177  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   2178  *
   2179  * This Source Code Form is subject to the terms of the Mozilla Public
   2180  * License, v. 2.0. If a copy of the MPL was not distributed with this
   2181  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   2182  *
   2183  * See the COPYRIGHT file distributed with this work for additional
   2184  * information regarding copyright ownership.
   2185  */
   2186 
   2187 #ifndef GENERIC_KEYDATA_65533_H
   2188 #define GENERIC_KEYDATA_65533_H 1
   2189 
   2190 
   2191 typedef struct dns_rdata_keydata {
   2192 	dns_rdatacommon_t	common;
   2193 	isc_mem_t *		mctx;
   2194 	isc_uint32_t		refresh;      /* Timer for refreshing data */
   2195 	isc_uint32_t		addhd;	      /* Hold-down timer for adding */
   2196 	isc_uint32_t		removehd;     /* Hold-down timer for removing */
   2197 	isc_uint16_t		flags;	      /* Copy of DNSKEY_48 */
   2198 	isc_uint8_t		protocol;
   2199 	isc_uint8_t		algorithm;
   2200 	isc_uint16_t		datalen;
   2201 	unsigned char *		data;
   2202 } dns_rdata_keydata_t;
   2203 
   2204 #endif /* GENERIC_KEYDATA_65533_H */
   2205 /*
   2206  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
   2207  *
   2208  * This Source Code Form is subject to the terms of the Mozilla Public
   2209  * License, v. 2.0. If a copy of the MPL was not distributed with this
   2210  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
   2211  *
   2212  * See the COPYRIGHT file distributed with this work for additional
   2213  * information regarding copyright ownership.
   2214  */
   2215 
   2216 
   2217 ISC_LANG_ENDDECLS
   2218 
   2219 #endif /* DNS_RDATASTRUCT_H */
   2220