/*
* Copyright (C) 1998-2019 Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/***************
***************
*************** THIS FILE IS AUTOMATICALLY GENERATED BY gen.c.
*************** DO NOT EDIT!
***************
***************/
/*! \file */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef DNS_RDATASTRUCT_H
#define DNS_RDATASTRUCT_H 1
#include <isc/lang.h>
#include <isc/sockaddr.h>
#include <dns/name.h>
#include <dns/types.h>
ISC_LANG_BEGINDECLS
typedef struct dns_rdatacommon {
dns_rdataclass_t rdclass;
dns_rdatatype_t rdtype;
ISC_LINK(struct dns_rdatacommon) link;
} dns_rdatacommon_t;
#define DNS_RDATACOMMON_INIT(_data, _rdtype, _rdclass) \
do { \
(_data)->common.rdtype = (_rdtype); \
(_data)->common.rdclass = (_rdclass); \
ISC_LINK_INIT(&(_data)->common, link); \
} while (0)
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef IN_1_A_1_H
#define IN_1_A_1_H 1
typedef struct dns_rdata_in_a {
dns_rdatacommon_t common;
struct in_addr in_addr;
} dns_rdata_in_a_t;
#endif /* IN_1_A_1_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* by Bjorn.Victor@it.uu.se, 2005-05-07 */
/* Based on generic/mx_15.h */
#ifndef CH_3_A_1_H
#define CH_3_A_1_H 1
typedef uint16_t ch_addr_t;
typedef struct dns_rdata_ch_a {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t ch_addr_dom; /* ch-addr domain for back mapping */
ch_addr_t ch_addr; /* chaos address (16 bit) network order */
} dns_rdata_ch_a_t;
#endif /* CH_3_A_1_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef HS_4_A_1_H
#define HS_4_A_1_H 1
typedef struct dns_rdata_hs_a {
dns_rdatacommon_t common;
struct in_addr in_addr;
} dns_rdata_hs_a_t;
#endif /* HS_4_A_1_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_NS_2_H
#define GENERIC_NS_2_H 1
typedef struct dns_rdata_ns {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t name;
} dns_rdata_ns_t;
#endif /* GENERIC_NS_2_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_MD_3_H
#define GENERIC_MD_3_H 1
typedef struct dns_rdata_md {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t md;
} dns_rdata_md_t;
#endif /* GENERIC_MD_3_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_MF_4_H
#define GENERIC_MF_4_H 1
typedef struct dns_rdata_mf {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t mf;
} dns_rdata_mf_t;
#endif /* GENERIC_MF_4_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_CNAME_5_H
#define GENERIC_CNAME_5_H 1
typedef struct dns_rdata_cname {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t cname;
} dns_rdata_cname_t;
#endif /* GENERIC_CNAME_5_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_SOA_6_H
#define GENERIC_SOA_6_H 1
typedef struct dns_rdata_soa {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t origin;
dns_name_t contact;
uint32_t serial; /*%< host order */
uint32_t refresh; /*%< host order */
uint32_t retry; /*%< host order */
uint32_t expire; /*%< host order */
uint32_t minimum; /*%< host order */
} dns_rdata_soa_t;
#endif /* GENERIC_SOA_6_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_MB_7_H
#define GENERIC_MB_7_H 1
typedef struct dns_rdata_mb {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t mb;
} dns_rdata_mb_t;
#endif /* GENERIC_MB_7_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_MG_8_H
#define GENERIC_MG_8_H 1
typedef struct dns_rdata_mg {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t mg;
} dns_rdata_mg_t;
#endif /* GENERIC_MG_8_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_MR_9_H
#define GENERIC_MR_9_H 1
typedef struct dns_rdata_mr {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t mr;
} dns_rdata_mr_t;
#endif /* GENERIC_MR_9_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_NULL_10_H
#define GENERIC_NULL_10_H 1
typedef struct dns_rdata_null {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint16_t length;
unsigned char *data;
} dns_rdata_null_t;
#endif /* GENERIC_NULL_10_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef IN_1_WKS_11_H
#define IN_1_WKS_11_H 1
typedef struct dns_rdata_in_wks {
dns_rdatacommon_t common;
isc_mem_t *mctx;
struct in_addr in_addr;
uint16_t protocol;
unsigned char *map;
uint16_t map_len;
} dns_rdata_in_wks_t;
#endif /* IN_1_WKS_11_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_PTR_12_H
#define GENERIC_PTR_12_H 1
typedef struct dns_rdata_ptr {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t ptr;
} dns_rdata_ptr_t;
#endif /* GENERIC_PTR_12_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_HINFO_13_H
#define GENERIC_HINFO_13_H 1
typedef struct dns_rdata_hinfo {
dns_rdatacommon_t common;
isc_mem_t *mctx;
char *cpu;
char *os;
uint8_t cpu_len;
uint8_t os_len;
} dns_rdata_hinfo_t;
#endif /* GENERIC_HINFO_13_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_MINFO_14_H
#define GENERIC_MINFO_14_H 1
typedef struct dns_rdata_minfo {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t rmailbox;
dns_name_t emailbox;
} dns_rdata_minfo_t;
#endif /* GENERIC_MINFO_14_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_MX_15_H
#define GENERIC_MX_15_H 1
typedef struct dns_rdata_mx {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint16_t pref;
dns_name_t mx;
} dns_rdata_mx_t;
#endif /* GENERIC_MX_15_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_TXT_16_H
#define GENERIC_TXT_16_H 1
typedef struct dns_rdata_txt_string {
uint8_t length;
unsigned char *data;
} dns_rdata_txt_string_t;
typedef struct dns_rdata_txt {
dns_rdatacommon_t common;
isc_mem_t *mctx;
unsigned char *txt;
uint16_t txt_len;
/* private */
uint16_t offset;
} dns_rdata_txt_t;
/*
* ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
* via rdatastructpre.h and rdatastructsuf.h.
*/
isc_result_t
dns_rdata_txt_first(dns_rdata_txt_t *);
isc_result_t
dns_rdata_txt_next(dns_rdata_txt_t *);
isc_result_t
dns_rdata_txt_current(dns_rdata_txt_t *, dns_rdata_txt_string_t *);
#endif /* GENERIC_TXT_16_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_RP_17_H
#define GENERIC_RP_17_H 1
/*!
* \brief Per RFC1183 */
typedef struct dns_rdata_rp {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t mail;
dns_name_t text;
} dns_rdata_rp_t;
#endif /* GENERIC_RP_17_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_AFSDB_18_H
#define GENERIC_AFSDB_18_H 1
/*!
* \brief Per RFC1183 */
typedef struct dns_rdata_afsdb {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint16_t subtype;
dns_name_t server;
} dns_rdata_afsdb_t;
#endif /* GENERIC_AFSDB_18_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_X25_19_H
#define GENERIC_X25_19_H 1
/*!
* \brief Per RFC1183 */
typedef struct dns_rdata_x25 {
dns_rdatacommon_t common;
isc_mem_t *mctx;
unsigned char *x25;
uint8_t x25_len;
} dns_rdata_x25_t;
#endif /* GENERIC_X25_19_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_ISDN_20_H
#define GENERIC_ISDN_20_H 1
/*!
* \brief Per RFC1183 */
typedef struct dns_rdata_isdn {
dns_rdatacommon_t common;
isc_mem_t *mctx;
char *isdn;
char *subaddress;
uint8_t isdn_len;
uint8_t subaddress_len;
} dns_rdata_isdn_t;
#endif /* GENERIC_ISDN_20_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_RT_21_H
#define GENERIC_RT_21_H 1
/*!
* \brief Per RFC1183 */
typedef struct dns_rdata_rt {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint16_t preference;
dns_name_t host;
} dns_rdata_rt_t;
#endif /* GENERIC_RT_21_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef IN_1_NSAP_22_H
#define IN_1_NSAP_22_H 1
/*!
* \brief Per RFC1706 */
typedef struct dns_rdata_in_nsap {
dns_rdatacommon_t common;
isc_mem_t *mctx;
unsigned char *nsap;
uint16_t nsap_len;
} dns_rdata_in_nsap_t;
#endif /* IN_1_NSAP_22_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef IN_1_NSAP_PTR_23_H
#define IN_1_NSAP_PTR_23_H 1
/*!
* \brief Per RFC1348. Obsoleted in RFC 1706 - use PTR instead. */
typedef struct dns_rdata_in_nsap_ptr {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t owner;
} dns_rdata_in_nsap_ptr_t;
#endif /* IN_1_NSAP_PTR_23_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_SIG_24_H
#define GENERIC_SIG_24_H 1
/*!
* \brief Per RFC2535 */
typedef struct dns_rdata_sig_t {
dns_rdatacommon_t common;
isc_mem_t * mctx;
dns_rdatatype_t covered;
dns_secalg_t algorithm;
uint8_t labels;
uint32_t originalttl;
uint32_t timeexpire;
uint32_t timesigned;
uint16_t keyid;
dns_name_t signer;
uint16_t siglen;
unsigned char * signature;
} dns_rdata_sig_t;
#endif /* GENERIC_SIG_24_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_KEY_25_H
#define GENERIC_KEY_25_H 1
/*!
* \brief Per RFC2535 */
typedef struct dns_rdata_key {
dns_rdatacommon_t common;
isc_mem_t * mctx;
uint16_t flags;
dns_secproto_t protocol;
dns_secalg_t algorithm;
uint16_t datalen;
unsigned char * data;
} dns_rdata_key_t;
#endif /* GENERIC_KEY_25_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef IN_1_PX_26_H
#define IN_1_PX_26_H 1
/*!
* \brief Per RFC2163 */
typedef struct dns_rdata_in_px {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint16_t preference;
dns_name_t map822;
dns_name_t mapx400;
} dns_rdata_in_px_t;
#endif /* IN_1_PX_26_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_GPOS_27_H
#define GENERIC_GPOS_27_H 1
/*!
* \brief per RFC1712 */
typedef struct dns_rdata_gpos {
dns_rdatacommon_t common;
isc_mem_t *mctx;
char *longitude;
char *latitude;
char *altitude;
uint8_t long_len;
uint8_t lat_len;
uint8_t alt_len;
} dns_rdata_gpos_t;
#endif /* GENERIC_GPOS_27_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef IN_1_AAAA_28_H
#define IN_1_AAAA_28_H 1
/*!
* \brief Per RFC1886 */
typedef struct dns_rdata_in_aaaa {
dns_rdatacommon_t common;
struct in6_addr in6_addr;
} dns_rdata_in_aaaa_t;
#endif /* IN_1_AAAA_28_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_LOC_29_H
#define GENERIC_LOC_29_H 1
/*!
* \brief Per RFC1876 */
typedef struct dns_rdata_loc_0 {
uint8_t version; /* must be first and zero */
uint8_t size;
uint8_t horizontal;
uint8_t vertical;
uint32_t latitude;
uint32_t longitude;
uint32_t altitude;
} dns_rdata_loc_0_t;
typedef struct dns_rdata_loc {
dns_rdatacommon_t common;
union {
dns_rdata_loc_0_t v0;
} v;
} dns_rdata_loc_t;
#endif /* GENERIC_LOC_29_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_NXT_30_H
#define GENERIC_NXT_30_H 1
/*!
* \brief RFC2535 */
typedef struct dns_rdata_nxt {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t next;
unsigned char *typebits;
uint16_t len;
} dns_rdata_nxt_t;
#endif /* GENERIC_NXT_30_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef IN_1_EID_31_H
#define IN_1_EID_31_H 1
/*!
* \brief http://ana-3.lcs.mit.edu/~jnc/nimrod/dns.txt
*/
typedef struct dns_rdata_in_eid {
dns_rdatacommon_t common;
isc_mem_t *mctx;
unsigned char *eid;
uint16_t eid_len;
} dns_rdata_in_eid_t;
#endif /* IN_1_EID_31_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef IN_1_NIMLOC_32_H
#define IN_1_NIMLOC_32_H 1
/*!
* \brief http://ana-3.lcs.mit.edu/~jnc/nimrod/dns.txt
*/
typedef struct dns_rdata_in_nimloc {
dns_rdatacommon_t common;
isc_mem_t *mctx;
unsigned char *nimloc;
uint16_t nimloc_len;
} dns_rdata_in_nimloc_t;
#endif /* IN_1_NIMLOC_32_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef IN_1_SRV_33_H
#define IN_1_SRV_33_H 1
/*!
* \brief Per RFC2782 */
typedef struct dns_rdata_in_srv {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint16_t priority;
uint16_t weight;
uint16_t port;
dns_name_t target;
} dns_rdata_in_srv_t;
#endif /* IN_1_SRV_33_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef IN_1_ATMA_22_H
#define IN_1_ATMA_22_H 1
/*!
* \brief Per RFC1706 */
typedef struct dns_rdata_in_atma {
dns_rdatacommon_t common;
isc_mem_t *mctx;
unsigned char format;
unsigned char *atma;
uint16_t atma_len;
} dns_rdata_in_atma_t;
#endif /* IN_1_ATMA_22_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_NAPTR_35_H
#define GENERIC_NAPTR_35_H 1
/*!
* \brief Per RFC2915 */
typedef struct dns_rdata_naptr {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint16_t order;
uint16_t preference;
char *flags;
uint8_t flags_len;
char *service;
uint8_t service_len;
char *regexp;
uint8_t regexp_len;
dns_name_t replacement;
} dns_rdata_naptr_t;
#endif /* GENERIC_NAPTR_35_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef IN_1_KX_36_H
#define IN_1_KX_36_H 1
/*!
* \brief Per RFC2230 */
typedef struct dns_rdata_in_kx {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint16_t preference;
dns_name_t exchange;
} dns_rdata_in_kx_t;
#endif /* IN_1_KX_36_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_CERT_37_H
#define GENERIC_CERT_37_H 1
/*% RFC2538 */
typedef struct dns_rdata_cert {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint16_t type;
uint16_t key_tag;
uint8_t algorithm;
uint16_t length;
unsigned char *certificate;
} dns_rdata_cert_t;
#endif /* GENERIC_CERT_37_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef IN_1_A6_38_H
#define IN_1_A6_38_H 1
/*!
* \brief Per RFC2874 */
typedef struct dns_rdata_in_a6 {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t prefix;
uint8_t prefixlen;
struct in6_addr in6_addr;
} dns_rdata_in_a6_t;
#endif /* IN_1_A6_38_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_DNAME_39_H
#define GENERIC_DNAME_39_H 1
/*!
* \brief per RFC2672 */
typedef struct dns_rdata_dname {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t dname;
} dns_rdata_dname_t;
#endif /* GENERIC_DNAME_39_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_SINK_40_H
#define GENERIC_SINK_40_H 1
typedef struct dns_rdata_sink_t {
dns_rdatacommon_t common;
isc_mem_t * mctx;
uint8_t meaning;
uint8_t coding;
uint8_t subcoding;
uint16_t datalen;
unsigned char * data;
} dns_rdata_sink_t;
#endif /* GENERIC_SINK_40_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_OPT_41_H
#define GENERIC_OPT_41_H 1
/*!
* \brief Per RFC2671 */
typedef struct dns_rdata_opt_opcode {
uint16_t opcode;
uint16_t length;
unsigned char *data;
} dns_rdata_opt_opcode_t;
typedef struct dns_rdata_opt {
dns_rdatacommon_t common;
isc_mem_t *mctx;
unsigned char *options;
uint16_t length;
/* private */
uint16_t offset;
} dns_rdata_opt_t;
/*
* ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
* via rdatastructpre.h and rdatastructsuf.h.
*/
isc_result_t
dns_rdata_opt_first(dns_rdata_opt_t *);
isc_result_t
dns_rdata_opt_next(dns_rdata_opt_t *);
isc_result_t
dns_rdata_opt_current(dns_rdata_opt_t *, dns_rdata_opt_opcode_t *);
#endif /* GENERIC_OPT_41_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef IN_1_APL_42_H
#define IN_1_APL_42_H 1
typedef struct dns_rdata_apl_ent {
bool negative;
uint16_t family;
uint8_t prefix;
uint8_t length;
unsigned char *data;
} dns_rdata_apl_ent_t;
typedef struct dns_rdata_in_apl {
dns_rdatacommon_t common;
isc_mem_t *mctx;
/* type & class specific elements */
unsigned char *apl;
uint16_t apl_len;
/* private */
uint16_t offset;
} dns_rdata_in_apl_t;
/*
* ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
* via rdatastructpre.h and rdatastructsuf.h.
*/
isc_result_t
dns_rdata_apl_first(dns_rdata_in_apl_t *);
isc_result_t
dns_rdata_apl_next(dns_rdata_in_apl_t *);
isc_result_t
dns_rdata_apl_current(dns_rdata_in_apl_t *, dns_rdata_apl_ent_t *);
unsigned int
dns_rdata_apl_count(const dns_rdata_in_apl_t *apl);
#endif /* IN_1_APL_42_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_DS_43_H
#define GENERIC_DS_43_H 1
/*!
* \brief per draft-ietf-dnsext-delegation-signer-05.txt */
typedef struct dns_rdata_ds {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint16_t key_tag;
dns_secalg_t algorithm;
dns_dsdigest_t digest_type;
uint16_t length;
unsigned char *digest;
} dns_rdata_ds_t;
#endif /* GENERIC_DS_43_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/*!
* \brief Per RFC 4255 */
#ifndef GENERIC_SSHFP_44_H
#define GENERIC_SSHFP_44_H 1
typedef struct dns_rdata_sshfp {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint8_t algorithm;
uint8_t digest_type;
uint16_t length;
unsigned char *digest;
} dns_rdata_sshfp_t;
#endif /* GENERIC_SSHFP_44_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_IPSECKEY_45_H
#define GENERIC_IPSECKEY_45_H 1
typedef struct dns_rdata_ipseckey {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint8_t precedence;
uint8_t gateway_type;
uint8_t algorithm;
struct in_addr in_addr; /* gateway type 1 */
struct in6_addr in6_addr; /* gateway type 2 */
dns_name_t gateway; /* gateway type 3 */
unsigned char *key;
uint16_t keylength;
} dns_rdata_ipseckey_t;
#endif /* GENERIC_IPSECKEY_45_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_DNSSIG_46_H
#define GENERIC_DNSSIG_46_H 1
/*!
* \brief Per RFC2535 */
typedef struct dns_rdata_rrsig {
dns_rdatacommon_t common;
isc_mem_t * mctx;
dns_rdatatype_t covered;
dns_secalg_t algorithm;
uint8_t labels;
uint32_t originalttl;
uint32_t timeexpire;
uint32_t timesigned;
uint16_t keyid;
dns_name_t signer;
uint16_t siglen;
unsigned char * signature;
} dns_rdata_rrsig_t;
#endif /* GENERIC_DNSSIG_46_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_NSEC_47_H
#define GENERIC_NSEC_47_H 1
/*!
* \brief Per RFC 3845 */
typedef struct dns_rdata_nsec {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t next;
unsigned char *typebits;
uint16_t len;
} dns_rdata_nsec_t;
#endif /* GENERIC_NSEC_47_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_DNSKEY_48_H
#define GENERIC_DNSKEY_48_H 1
/*!
* \brief per RFC2535
*/
typedef struct dns_rdata_key dns_rdata_dnskey_t;
#endif /* GENERIC_DNSKEY_48_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef IN_1_DHCID_49_H
#define IN_1_DHCID_49_H 1
typedef struct dns_rdata_in_dhcid {
dns_rdatacommon_t common;
isc_mem_t *mctx;
unsigned char *dhcid;
unsigned int length;
} dns_rdata_in_dhcid_t;
#endif /* IN_1_DHCID_49_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_NSEC3_50_H
#define GENERIC_NSEC3_50_H 1
/*!
* \brief Per RFC 5155 */
#include <isc/iterated_hash.h>
typedef struct dns_rdata_nsec3 {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_hash_t hash;
unsigned char flags;
dns_iterations_t iterations;
unsigned char salt_length;
unsigned char next_length;
uint16_t len;
unsigned char *salt;
unsigned char *next;
unsigned char *typebits;
} dns_rdata_nsec3_t;
/*
* The corresponding NSEC3 interval is OPTOUT indicating possible
* insecure delegations.
*/
#define DNS_NSEC3FLAG_OPTOUT 0x01U
/*%
* The following flags are used in the private-type record (implemented in
* lib/dns/private.c) which is used to store NSEC3PARAM data during the
* time when it is not legal to have an actual NSEC3PARAM record in the
* zone. They are defined here because the private-type record uses the
* same flags field for the OPTOUT flag above and for the private flags
* below. XXX: This should be considered for refactoring.
*/
/*%
* Non-standard, private type only.
*
* Create a corresponding NSEC3 chain.
* Once the NSEC3 chain is complete this flag will be removed to signal
* that there is a complete chain.
*
* This flag is automatically set when a NSEC3PARAM record is added to
* the zone via UPDATE.
*
* NSEC3PARAM records containing this flag should never be published,
* but if they are, they should be ignored by RFC 5155 compliant
* nameservers.
*/
#define DNS_NSEC3FLAG_CREATE 0x80U
/*%
* Non-standard, private type only.
*
* The corresponding NSEC3 set is to be removed once the NSEC chain
* has been generated.
*
* This flag is automatically set when the last active NSEC3PARAM record
* is removed from the zone via UPDATE.
*
* NSEC3PARAM records containing this flag should never be published,
* but if they are, they should be ignored by RFC 5155 compliant
* nameservers.
*/
#define DNS_NSEC3FLAG_REMOVE 0x40U
/*%
* Non-standard, private type only.
*
* When set with the CREATE flag, a corresponding NSEC3 chain will be
* created when the zone becomes capable of supporting one (i.e., when it
* has a DNSKEY RRset containing at least one NSEC3-capable algorithm).
* Without this flag, NSEC3 chain creation would be attempted immediately,
* fail, and the private type record would be removed. With it, the NSEC3
* parameters are stored until they can be used. When the zone has the
* necessary prerequisites for NSEC3, then the INITIAL flag can be cleared,
* and the record will be cleaned up normally.
*
* NSEC3PARAM records containing this flag should never be published, but
* if they are, they should be ignored by RFC 5155 compliant nameservers.
*/
#define DNS_NSEC3FLAG_INITIAL 0x20U
/*%
* Non-standard, private type only.
*
* Prevent the creation of a NSEC chain before the last NSEC3 chain
* is removed. This will normally only be set when the zone is
* transitioning from secure with NSEC3 chains to insecure.
*
* NSEC3PARAM records containing this flag should never be published,
* but if they are, they should be ignored by RFC 5155 compliant
* nameservers.
*/
#define DNS_NSEC3FLAG_NONSEC 0x10U
#endif /* GENERIC_NSEC3_50_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_NSEC3PARAM_51_H
#define GENERIC_NSEC3PARAM_51_H 1
/*!
* \brief Per RFC 5155 */
#include <isc/iterated_hash.h>
typedef struct dns_rdata_nsec3param {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_hash_t hash;
unsigned char flags; /* DNS_NSEC3FLAG_* */
dns_iterations_t iterations;
unsigned char salt_length;
unsigned char *salt;
} dns_rdata_nsec3param_t;
#endif /* GENERIC_NSEC3PARAM_51_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_TLSA_52_H
#define GENERIC_TLSA_52_H 1
/*!
* \brief per rfc6698.txt
*/
typedef struct dns_rdata_tlsa {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint8_t usage;
uint8_t selector;
uint8_t match;
uint16_t length;
unsigned char *data;
} dns_rdata_tlsa_t;
#endif /* GENERIC_TLSA_52_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_SMIMEA_53_H
#define GENERIC_SMIMEA_53_H 1
typedef struct dns_rdata_tlsa dns_rdata_smimea_t;
#endif /* GENERIC_SMIMEA_53_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_HIP_5_H
#define GENERIC_HIP_5_H 1
/* RFC 5205 */
typedef struct dns_rdata_hip {
dns_rdatacommon_t common;
isc_mem_t * mctx;
unsigned char * hit;
unsigned char * key;
unsigned char * servers;
uint8_t algorithm;
uint8_t hit_len;
uint16_t key_len;
uint16_t servers_len;
/* Private */
uint16_t offset;
} dns_rdata_hip_t;
isc_result_t
dns_rdata_hip_first(dns_rdata_hip_t *);
isc_result_t
dns_rdata_hip_next(dns_rdata_hip_t *);
void
dns_rdata_hip_current(dns_rdata_hip_t *, dns_name_t *);
#endif /* GENERIC_HIP_5_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_NINFO_56_H
#define GENERIC_NINFO_56_H 1
typedef struct dns_rdata_txt_string dns_rdata_ninfo_string_t;
typedef struct dns_rdata_txt dns_rdata_ninfo_t;
/*
* ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
* via rdatastructpre.h and rdatastructsuf.h.
*/
isc_result_t
dns_rdata_ninfo_first(dns_rdata_ninfo_t *);
isc_result_t
dns_rdata_ninfo_next(dns_rdata_ninfo_t *);
isc_result_t
dns_rdata_ninfo_current(dns_rdata_ninfo_t *, dns_rdata_ninfo_string_t *);
#endif /* GENERIC_NINFO_16_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_RKEY_57_H
#define GENERIC_RKEY_57_H 1
typedef struct dns_rdata_key dns_rdata_rkey_t;
#endif /* GENERIC_RKEY_57_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* http://www.iana.org/assignments/dns-parameters/TALINK/talink-completed-template */
#ifndef GENERIC_TALINK_58_H
#define GENERIC_TALINK_58_H 1
typedef struct dns_rdata_talink {
dns_rdatacommon_t common;
isc_mem_t *mctx;
dns_name_t prev;
dns_name_t next;
} dns_rdata_talink_t;
#endif /* GENERIC_TALINK_58_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_CDS_59_H
#define GENERIC_CDS_59_H 1
/* CDS records have the same RDATA fields as DS records. */
typedef struct dns_rdata_ds dns_rdata_cds_t;
#endif /* GENERIC_CDS_59_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_CDNSKEY_60_H
#define GENERIC_CDNSKEY_60_H 1
/* CDNSKEY records have the same RDATA fields as DNSKEY records. */
typedef struct dns_rdata_key dns_rdata_cdnskey_t;
#endif /* GENERIC_CDNSKEY_60_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_OPENPGPKEY_61_H
#define GENERIC_OPENPGPKEY_61_H 1
typedef struct dns_rdata_openpgpkey {
dns_rdatacommon_t common;
isc_mem_t * mctx;
uint16_t length;
unsigned char * keyring;
} dns_rdata_openpgpkey_t;
#endif /* GENERIC_OPENPGPKEY_61_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_CSYNC_62_H
#define GENERIC_CSYNC_62_H 1
/*!
* \brief Per RFC 7477
*/
typedef struct dns_rdata_csync {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint32_t serial;
uint16_t flags;
unsigned char *typebits;
uint16_t len;
} dns_rdata_csync_t;
#endif /* GENERIC_CSYNC_62_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_ZONEMD_63_H
#define GENERIC_ZONEMD_63_H 1
/* Digest type(s). Currently only SHA-384 is defined. */
#define DNS_ZONEMD_DIGEST_SHA384 (1)
/*
* \brief per draft-wessels-zone-digest-05
*/
typedef struct dns_rdata_zonemd {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint32_t serial;
uint8_t digest_type;
uint8_t reserved;
unsigned char *digest;
uint16_t length;
} dns_rdata_zonemd_t;
#endif /* GENERIC_ZONEMD_63_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_SPF_99_H
#define GENERIC_SPF_99_H 1
typedef struct dns_rdata_spf_string {
uint8_t length;
unsigned char *data;
} dns_rdata_spf_string_t;
typedef struct dns_rdata_spf {
dns_rdatacommon_t common;
isc_mem_t *mctx;
unsigned char *txt;
uint16_t txt_len;
/* private */
uint16_t offset;
} dns_rdata_spf_t;
/*
* ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
* via rdatastructpre.h and rdatastructsuf.h.
*/
#endif /* GENERIC_SPF_99_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_NID_104_H
#define GENERIC_NID_104_H 1
typedef struct dns_rdata_nid {
dns_rdatacommon_t common;
uint16_t pref;
unsigned char nid[8];
} dns_rdata_nid_t;
#endif /* GENERIC_NID_104_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_L32_105_H
#define GENERIC_L32_105_H 1
typedef struct dns_rdata_l32 {
dns_rdatacommon_t common;
uint16_t pref;
struct in_addr l32;
} dns_rdata_l32_t;
#endif /* GENERIC_L32_105_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_L64_106_H
#define GENERIC_L64_106_H 1
typedef struct dns_rdata_l64 {
dns_rdatacommon_t common;
uint16_t pref;
unsigned char l64[8];
} dns_rdata_l64_t;
#endif /* GENERIC_L64_106_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_LP_107_H
#define GENERIC_LP_107_H 1
typedef struct dns_rdata_lp {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint16_t pref;
dns_name_t lp;
} dns_rdata_lp_t;
#endif /* GENERIC_LP_107_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_EUI48_108_H
#define GENERIC_EUI48_108_H 1
typedef struct dns_rdata_eui48 {
dns_rdatacommon_t common;
unsigned char eui48[6];
} dns_rdata_eui48_t;
#endif /* GENERIC_EUI48_10k_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* */
#ifndef GENERIC_EUI64_109_H
#define GENERIC_EUI64_109_H 1
typedef struct dns_rdata_eui64 {
dns_rdatacommon_t common;
unsigned char eui64[8];
} dns_rdata_eui64_t;
#endif /* GENERIC_EUI64_10k_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_TKEY_249_H
#define GENERIC_TKEY_249_H 1
/*!
* \brief Per draft-ietf-dnsind-tkey-00.txt */
typedef struct dns_rdata_tkey {
dns_rdatacommon_t common;
isc_mem_t * mctx;
dns_name_t algorithm;
uint32_t inception;
uint32_t expire;
uint16_t mode;
uint16_t error;
uint16_t keylen;
unsigned char * key;
uint16_t otherlen;
unsigned char * other;
} dns_rdata_tkey_t;
#endif /* GENERIC_TKEY_249_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef ANY_255_TSIG_250_H
#define ANY_255_TSIG_250_H 1
/*% RFC2845 */
typedef struct dns_rdata_any_tsig {
dns_rdatacommon_t common;
isc_mem_t * mctx;
dns_name_t algorithm;
uint64_t timesigned;
uint16_t fudge;
uint16_t siglen;
unsigned char * signature;
uint16_t originalid;
uint16_t error;
uint16_t otherlen;
unsigned char * other;
} dns_rdata_any_tsig_t;
#endif /* ANY_255_TSIG_250_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_URI_256_H
#define GENERIC_URI_256_H 1
typedef struct dns_rdata_uri {
dns_rdatacommon_t common;
isc_mem_t * mctx;
uint16_t priority;
uint16_t weight;
unsigned char * target;
uint16_t tgt_len;
} dns_rdata_uri_t;
#endif /* GENERIC_URI_256_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_CAA_257_H
#define GENERIC_CAA_257_H 1
typedef struct dns_rdata_caa {
dns_rdatacommon_t common;
isc_mem_t * mctx;
uint8_t flags;
unsigned char * tag;
uint8_t tag_len;
unsigned char *value;
uint16_t value_len;
} dns_rdata_caa_t;
#endif /* GENERIC_CAA_257_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_AVC_258_H
#define GENERIC_AVC_258_H 1
typedef dns_rdata_txt_string_t dns_rdata_avc_string_t;
typedef struct dns_rdata_avc {
dns_rdatacommon_t common;
isc_mem_t *mctx;
unsigned char *data;
uint16_t length;
/* private */
uint16_t offset;
} dns_rdata_avc_t;
/*
* ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS are already done
* via rdatastructpre.h and rdatastructsuf.h.
*/
#endif /* GENERIC_AVC_258_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_DOA_259_H
#define GENERIC_DOA_259_H 1
typedef struct dns_rdata_doa {
dns_rdatacommon_t common;
isc_mem_t * mctx;
unsigned char * mediatype;
unsigned char * data;
uint32_t enterprise;
uint32_t type;
uint16_t data_len;
uint8_t location;
uint8_t mediatype_len;
} dns_rdata_doa_t;
#endif /* GENERIC_DOA_259_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_AMTRELAY_260_H
#define GENERIC_AMTRELAY_260_H 1
typedef struct dns_rdata_amtrelay {
dns_rdatacommon_t common;
isc_mem_t *mctx;
uint8_t precedence;
bool discovery;
uint8_t gateway_type;
struct in_addr in_addr; /* gateway type 1 */
struct in6_addr in6_addr; /* gateway type 2 */
dns_name_t gateway; /* gateway type 3 */
unsigned char *data; /* gateway type > 3 */
uint16_t length;
} dns_rdata_amtrelay_t;
#endif /* GENERIC_AMTRELAY_260_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_TA_32768_H
#define GENERIC_TA_32768_H 1
/*
* TA records are identical to DS records.
*/
typedef struct dns_rdata_ds dns_rdata_ta_t;
#endif /* GENERIC_TA_32768_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
/* draft-ietf-dnsext-delegation-signer-05.txt */
#ifndef GENERIC_DLV_32769_H
#define GENERIC_DLV_32769_H 1
typedef struct dns_rdata_ds dns_rdata_dlv_t;
#endif /* GENERIC_DLV_32769_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
#ifndef GENERIC_KEYDATA_65533_H
#define GENERIC_KEYDATA_65533_H 1
typedef struct dns_rdata_keydata {
dns_rdatacommon_t common;
isc_mem_t * mctx;
uint32_t refresh; /* Timer for refreshing data */
uint32_t addhd; /* Hold-down timer for adding */
uint32_t removehd; /* Hold-down timer for removing */
uint16_t flags; /* Copy of DNSKEY_48 */
dns_secproto_t protocol;
dns_secalg_t algorithm;
uint16_t datalen;
unsigned char * data;
} dns_rdata_keydata_t;
#endif /* GENERIC_KEYDATA_65533_H */
/*
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* See the COPYRIGHT file distributed with this work for additional
* information regarding copyright ownership.
*/
ISC_LANG_ENDDECLS
#endif /* DNS_RDATASTRUCT_H */