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

FreeBSD Manual Pages

  
 
  

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  identi-
       fiers 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 (se-
	   ries	 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  concate-
	   nated strings are desired.

       ares_dns_opt_datatype_t	- Data types associated	with ARES_DATATYPE_OPT
       parameters 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
	   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,  con-
	   catenated
	   ARES_OPT_DATATYPE_U16  - 16bit unsigned integer in network byte or-
	   der
	   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 or-
	   der
	   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 Sec-
	   tion	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 Pro-
	   tocol. 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 time-
	   out.	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

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 op-
       code from its numeric form in opcode.

       The ares_dns_rr_key_tostr(3) function outputs a human readable DNS  Re-
       source 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  re-
       sponse 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 re-
       turned 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
       readable	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  hu-
       man 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_opt_param_t&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help