SPDX-License-Identifier: MIT
#include <ares.h> const char *ares_dns_rec_type_tostr(ares_dns_rec_type_t type); const char *ares_dns_class_tostr(ares_dns_class_t qclass); const char *ares_dns_opcode_tostr(ares_dns_opcode_t opcode); const char *ares_dns_rr_key_tostr(ares_dns_rr_key_t key); const char *ares_dns_section_tostr(ares_dns_section_t section); const char *ares_dns_rcode_tostr(ares_dns_rcode_t rcode); ares_bool_t ares_dns_class_fromstr(ares_dns_class_t *qclass, const char *str); ares_bool_t ares_dns_rec_type_fromstr(ares_dns_rec_type_t *qtype, const char *str); const ares_dns_rr_key_t *ares_dns_rr_get_keys(ares_dns_rec_type_t type, size_t *cnt); ares_dns_datatype_t ares_dns_rr_key_datatype(ares_dns_rr_key_t key); ares_dns_rec_type_t ares_dns_rr_key_to_rec_type(ares_dns_rr_key_t key); ares_dns_opt_datatype_t ares_dns_opt_get_datatype(ares_dns_rr_key_t key, unsigned short opt); const char *ares_dns_opt_get_name(ares_dns_rr_key_t key, unsigned short opt);
ARES_DATATYPE_INADDR - IPv4 address as struct in_addr *. Use ares_dns_rr_set_addr(3) to set and ares_dns_rr_get_addr(3) to get.
ARES_DATATYPE_INADDR6 - IPv6 address as struct ares_in6_addr *. Use ares_dns_rr_set_addr6(3) to set and ares_dns_rr_get_addr6(3) to get.
ARES_DATATYPE_U8 - 8bit unsigned integer. Use ares_dns_rr_set_u8(3) to set and ares_dns_rr_get_u8(3) to get.
ARES_DATATYPE_U16 - 16bit unsigned integer. Use ares_dns_rr_set_u16(3) to set and ares_dns_rr_get_u16(3) to get.
ARES_DATATYPE_U32 - 32bit unsigned integer. Use ares_dns_rr_set_u32(3) to set and ares_dns_rr_get_u32(3) to get.
ARES_DATATYPE_NAME - Null-terminated string of a domain name (series of labels). Use ares_dns_rr_set_str(3) to set and ares_dns_rr_get_str(3) to get.
ARES_DATATYPE_STR - Null-terminated string. Use ares_dns_rr_set_str(3) to set and ares_dns_rr_get_str(3) to get.
ARES_DATATYPE_BIN - Binary Data. Use ares_dns_rr_set_bin(3) to set and ares_dns_rr_get_bin(3) to get.
ARES_DATATYPE_BINP - Officially defined as binary data, but likely printable. Guaranteed to have a NULL terminator for convenience (not included in length). Use ares_dns_rr_set_bin(3) to set and ares_dns_rr_get_bin(3) to get.
ARES_DATATYPE_OPT - Array of options. 16bit identifier, Binary data. Use ares_dns_rr_set_opt(3) to set and ares_dns_rr_get_opt(3) to get.
ARES_DATATYPE_ABINP - Array of binary data, but likely printable. Guaranteed to have a NULL terminator for convenience (not included in length). Use ares_dns_rr_add_abin(3) to set and ares_dns_rr_get_abin(3) to get. Can also use ares_dns_rr_set_bin(3) and ares_dns_rr_get_bin(3) if only concatenated strings are desired.
ARES_OPT_DATATYPE_NONE - No value allowed for this parameter
ARES_OPT_DATATYPE_STR_LIST - List of strings, each prefixed with a single octet representing the length as defined by RFC 1035. Can use ares_expand_string(3) until buffer is consumed.
ARES_OPT_DATATYPE_U8_LIST - List of 8bit unsigned integers, concatenated
ARES_OPT_DATATYPE_U16 - 16bit unsigned integer in network byte order
ARES_OPT_DATATYPE_U16_LIST - list of 16bit unsigned integers in network byte order, concatenated.
ARES_OPT_DATATYPE_U32 - 32bit unsigned integer in network byte order
ARES_OPT_DATATYPE_U32_LIST - list of 16bit unsigned integers in network byte order, concatenated.
ARES_OPT_DATATYPE_INADDR4_LIST - List of ipv4 addresses in network byte order, concatenated
ARES_OPT_DATATYPE_INADDR6_LIST - List of ipv6 addresses in network byte order, concatenated
ARES_OPT_DATATYPE_BIN - Binary Data
ARES_OPT_DATATYPE_NAME - DNS Domain Name binary format as defined in RFC1035, can use ares_expand_name(3)
ARES_SVCB_PARAM_MANDATORY - Mandatory keys in this RR (RFC 9460 Section 8). Datatype: ARES_OPT_DATATYPE_U16_LIST
ARES_SVCB_PARAM_ALPN - Additional supported protocols (RFC 9460 Section 7.1). Datatype: ARES_OPT_DATATYPE_STR_LIST
ARES_SVCB_PARAM_NO_DEFAULT_ALPN - No support for default protocol (RFC 9460 Section 7.1). Datatype: ARES_OPT_DATATYPE_NONE
ARES_SVCB_PARAM_PORT - Port for alternative endpoint (RFC 9460 Section 7.2). Datatype: ARES_OPT_DATATYPE_U16
ARES_SVCB_PARAM_IPV4HINT - IPv4 address hints (RFC 9460 Section 7.3). Datatype: ARES_OPT_DATATYPE_INADDR4_LIST
ARES_SVCB_PARAM_ECH - RESERVED (held for Encrypted ClientHello)
ARES_SVCB_PARAM_IPV6HINT - IPv6 address hints (RFC 9460 Section 7.3). Datatype: ARES_OPT_DATATYPE_INADDR6_LIST
ARES_OPT_PARAM_LLQ - RFC 8764. Apple's DNS Long-Lived Queries Protocol. Datatype: ARES_OPT_DATATYPE_BIN
ARES_OPT_PARAM_UL - http://files.dns-sd.org/draft-sekar-dns-ul.txt: Update Lease. Datatype: ARES_OPT_DATATYPE_U32
ARES_OPT_PARAM_NSID - RFC 5001. Name Server Identification. Datatype: ARES_OPT_DATATYPE_BIN
ARES_OPT_PARAM_DAU - RFC 6975. DNSSEC Algorithm Understood. Datatype: ARES_OPT_DATATYPE_U8_LIST
ARES_OPT_PARAM_DHU - RFC 6975. DS Hash Understood. Datatype: ARES_OPT_DATATYPE_U8_LIST
ARES_OPT_PARAM_N3U - RFC 6975. NSEC3 Hash Understood. Datatype: ARES_OPT_DATATYPE_U8_LIST
ARES_OPT_PARAM_EDNS_CLIENT_SUBNET - RFC 7871. Client Subnet. Datatype: ARES_OPT_DATATYPE_BIN
ARES_OPT_PARAM_EDNS_EXPIRE - RFC 7314. Expire Timer. Datatype: ARES_OPT_DATATYPE_U32
ARES_OPT_PARAM_COOKIE - RFC 7873. Client and Server Cookies. Datatype: ARES_OPT_DATATYPE_BIN
ARES_OPT_PARAM_EDNS_TCP_KEEPALIVE - RFC 7828. TCP Keepalive timeout. Datatype: ARES_OPT_DATATYPE_U16
ARES_OPT_PARAM_PADDING - RFC 7830. Padding. Datatype: ARES_OPT_DATATYPE_BIN
ARES_OPT_PARAM_CHAIN - RFC 7901. Chain query requests. Datatype: ARES_OPT_DATATYPE_NAME
ARES_OPT_PARAM_EDNS_KEY_TAG - RFC 8145. Signaling Trust Anchor Knowledge in DNSSEC. Datatype: ARES_OPT_DATATYPE_U16_LIST
ARES_OPT_PARAM_EXTENDED_DNS_ERROR - RFC 8914. Extended ERROR code and message. Datatype: ARES_OPT_DATATYPE_BIN