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