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