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