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