Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
ARES_DNS_MAPPINGS(3)	    Library Functions Manual	    ARES_DNS_MAPPINGS(3)

NAME
     ares_dns_class_fromstr,	  ares_dns_class_tostr,     ares_dns_datatype_t,
     ares_dns_opcode_tostr, ares_dns_opt_datatype_t,  ares_dns_opt_get_datatype,
     ares_dns_opt_get_name,   ares_dns_rcode_tostr,   ares_dns_rec_type_fromstr,
     ares_dns_rr_get_keys,			       ares_dns_rr_key_datatype,
     ares_dns_rr_key_to_rec_type, ares_dns_rr_key_tostr, ares_dns_section_tostr,
     ares_opt_param_t,	ares_svcb_param_t  - Helper functions for converting dns
     record identifiers to and from their respective types, as well  identifying
     datatypes for various records.

SYNOPSIS
     #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);

ENUMERATIONS
     ares_dns_datatype_t - Data types associated with ares_dns_rr_key_t:
	 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. Guar-
	 anteed  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_dns_opt_datatype_t - Data types associated with ARES_DATATYPE_OPT  pa-
     rameters if known as returned by ares_dns_opt_get_datatype(3):
	 ARES_OPT_DATATYPE_NONE - No value allowed for this parameter
	 ARES_OPT_DATATYPE_STR_LIST - List of strings, each prefixed with a sin-
	 gle  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,	concate-
	 nated
	 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_t - SVCB (and HTTPS) RR known  parameters	as  returned  by
     ares_dns_opt_get_datatype(3)	 with	    ARES_RR_SVCB_PARAMS       or
     ARES_RR_HTTPS_PARAMS:
	 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_t	-   OPT   RR   known   parameters   as	  returned    by
     ares_dns_opt_get_datatype(3) with ARES_RR_OPT_OPTIONS:
	 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: Up-
	 date 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 Knowl-
	 edge 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

DESCRIPTION
     The ares_dns_rec_type_tostr(3) function outputs a human readable DNS record
     type from its numeric form passed in type.

     The  ares_dns_class_tostr(3)  function  outputs  a human readable DNS class
     from its numeric form passed in qclass.

     The ares_dns_opcode_tostr(3) function outputs a human readable  DNS  opcode
     from its numeric form in opcode.

     The ares_dns_rr_key_tostr(3) function outputs a human readable DNS Resource
     Record parameter name from its numeric form in key.

     The ares_dns_section_tostr(3) function outputs a human readable DNS message
     section from its numeric form in section.

     The  ares_dns_rcode_tostr(3) function outputs a human readable DNS response
     code from its numeric form in rcode.

     The ares_dns_class_fromstr(3) function outputs the  DNS  class  in  numeric
     from  from its string representation in str.  The result is stored into the
     variable pointed to by qclass.

     The ares_dns_rec_type_fromstr(3) function outputs the DNS	record	type  in
     numeric  from  from its string representation in str.  The result is stored
     into the variable pointed to by qtype.

     The ares_dns_rr_get_keys(3) function retrieves a list  of	parameters  that
     may  be set or retrieved for the provided type.  The count of returned keys
     is stored into the variable pointed to by cnt.

     The ares_dns_rr_key_datatype(3) function retrieves the associated	datatype
     for an RR parameter specified by key.

     The  ares_dns_rr_key_to_rec_type(3)  function  dereferences the provided RR
     parameter specified by key to the DNS Record Type it belongs.

     The ares_dns_opt_get_datatype(3)  function  is  used  in  association  with
     ares_dns_rr_set_opt(3)  and ares_dns_rr_get_opt(3) to retrieve the datatype
     of an option record contained within an RR as specified in  key  if  it  is
     known.  The raw option record identifier is provided by opt.

     The   ares_dns_opt_get_name(3)   function	 is  used  in  association  with
     ares_dns_rr_set_opt(3) and ares_dns_rr_get_opt(3) to retrieve  human  read-
     able parameter name of an option record contained within an RR as specified
     in  key  if  it  is known.  The raw option record identifier is provided by
     opt.

RETURN VALUES
     ares_dns_rec_type_tostr(3),      ares_dns_class_tostr(3),	    ares_dns_op-
     code_tostr(3),	ares_dns_rr_key_tostr(3),     ares_dns_section_tostr(3),
     ares_dns_rcode_tostr(3), and ares_dns_opt_get_name(3) all	return	a  human
     printable ASCII string, or NULL on error.

     ares_dns_class_fromstr(3) and ares_dns_rec_type_fromstr(3) return ARES_TRUE
     on successful conversion, otherwise ARES_FALSE.

     ares_dns_rr_get_keys(3) returns an array of keys or NULL on failure.

     ares_dns_rr_key_datatype(3),	ares_dns_rr_key_to_rec_type(3),      and
     ares_dns_opt_get_datatype(3) return their respective integer values,  or  0
     on failure.

AVAILABILITY
     These functions were first introduced in c-ares version 1.22.0.

SEE ALSO
     ares_dns_record(3), ares_dns_rr(3), ares_init(3)

				12 November 2023	    ARES_DNS_MAPPINGS(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ares_dns_class_fromstr&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help