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

FreeBSD Manual Pages

  
 
  

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

NAME
     ares_dns_record_rr_add,   ares_dns_record_rr_cnt,	 ares_dns_record_rr_del,
     ares_dns_record_rr_get, ares_dns_record_rr_get_const, ares_dns_rr_get_addr,
     ares_dns_rr_get_addr6,    ares_dns_rr_get_bin,    ares_dns_rr_get_abin_cnt,
     ares_dns_rr_get_abin,	ares_dns_rr_get_class,	   ares_dns_rr_get_name,
     ares_dns_rr_get_opt,   ares_dns_rr_get_opt_byid,	ares_dns_rr_get_opt_cnt,
     ares_dns_rr_get_str,	ares_dns_rr_get_ttl,	   ares_dns_rr_get_type,
     ares_dns_rr_get_u16,	 ares_dns_rr_get_u32,	     ares_dns_rr_get_u8,
     ares_dns_rr_key_t,       ares_dns_rr_set_addr,	  ares_dns_rr_set_addr6,
     ares_dns_rr_set_bin,      ares_dns_rr_add_abin,	   ares_dns_rr_del_abin,
     ares_dns_rr_set_opt,	 ares_dns_rr_set_str,	    ares_dns_rr_set_u16,
     ares_dns_rr_set_u32,	 ares_dns_rr_set_u8,	     ares_dns_section_t,
     ares_tlsa_match_t,  ares_tlsa_selector_t,	ares_tlsa_usage_t - DNS Resource
     Record creating, reading, and writing functions.

SYNOPSIS
     #include <ares.h>

     size_t ares_dns_record_rr_cnt(const ares_dns_record_t *dnsrec,
				   ares_dns_section_t	    sect);

     ares_status_t ares_dns_record_rr_add(ares_dns_rr_t     **rr_out,
					  ares_dns_record_t  *dnsrec,
					  ares_dns_section_t  sect,
					  const char	     *name,
					  ares_dns_rec_type_t type,
					  ares_dns_class_t    rclass,
					  unsigned int	      ttl);

     ares_dns_rr_t *ares_dns_record_rr_get(ares_dns_record_t *dnsrec,
					   ares_dns_section_t sect,
					   size_t	      idx);

     const ares_dns_rr_t *ares_dns_record_rr_get_const(const ares_dns_record_t *dnsrec,
						       ares_dns_section_t sect,
						       size_t idx);

     ares_status_t ares_dns_record_rr_del(ares_dns_record_t *dnsrec,
					  ares_dns_section_t sect,
					  size_t	     idx);

     const char *ares_dns_rr_get_name(const ares_dns_rr_t *rr);

     ares_dns_rec_type_t ares_dns_rr_get_type(const ares_dns_rr_t *rr);

     ares_dns_class_t ares_dns_rr_get_class(const ares_dns_rr_t *rr);

     unsigned int ares_dns_rr_get_ttl(const ares_dns_rr_t *rr);

     ares_status_t ares_dns_rr_set_addr(ares_dns_rr_t	     *dns_rr,
					ares_dns_rr_key_t     key,
					const struct in_addr *addr);

     ares_status_t ares_dns_rr_set_addr6(ares_dns_rr_t		    *dns_rr,
					 ares_dns_rr_key_t	     key,
					 const struct ares_in6_addr *addr);

     ares_status_t ares_dns_rr_set_str(ares_dns_rr_t	*dns_rr,
				       ares_dns_rr_key_t key,
				       const char	*val);

     ares_status_t ares_dns_rr_set_u8(ares_dns_rr_t    *dns_rr,
				      ares_dns_rr_key_t key,
				      unsigned char	val);

     ares_status_t ares_dns_rr_set_u16(ares_dns_rr_t	*dns_rr,
				       ares_dns_rr_key_t key,
				       unsigned short	 val);

     ares_status_t ares_dns_rr_set_u32(ares_dns_rr_t	*dns_rr,
				       ares_dns_rr_key_t key,
				       unsigned int	 val);

     ares_status_t ares_dns_rr_set_bin(ares_dns_rr_t	   *dns_rr,
				       ares_dns_rr_key_t    key,
				       const unsigned char *val,
				       size_t		    len);

     ares_status_t ares_dns_rr_add_abin(ares_dns_rr_t *dns_rr,
					ares_dns_rr_key_t key,
					const unsigned char *val,
					size_t len);

     ares_status_t ares_dns_rr_del_abin(ares_dns_rr_t *dns_rr,
					ares_dns_rr_key_t key,
					size_t idx);

     ares_status_t ares_dns_rr_set_opt(ares_dns_rr_t	   *dns_rr,
				       ares_dns_rr_key_t    key,
				       unsigned short	    opt,
				       const unsigned char *val,
				       size_t		    val_len);

     ares_status_t ares_dns_rr_del_opt_byid(ares_dns_rr_t	*dns_rr,
					    ares_dns_rr_key_t	 key,
					    unsigned short	 opt);

     const struct in_addr *ares_dns_rr_get_addr(const ares_dns_rr_t *dns_rr,
						ares_dns_rr_key_t key);

     const struct ares_in6_addr *ares_dns_rr_get_addr6(const ares_dns_rr_t *dns_rr,
						       ares_dns_rr_key_t key);

     const char *ares_dns_rr_get_str(const ares_dns_rr_t *dns_rr,
				     ares_dns_rr_key_t	  key);

     unsigned char ares_dns_rr_get_u8(const ares_dns_rr_t *dns_rr,
				      ares_dns_rr_key_t    key);

     unsigned short ares_dns_rr_get_u16(const ares_dns_rr_t *dns_rr,
					ares_dns_rr_key_t    key);

     unsigned int ares_dns_rr_get_u32(const ares_dns_rr_t *dns_rr,
				      ares_dns_rr_key_t    key);

     const unsigned char *ares_dns_rr_get_bin(const ares_dns_rr_t *dns_rr,
					      ares_dns_rr_key_t key,
					      size_t *len);

     size_t ares_dns_rr_get_abin_cnt(const ares_dns_rr_t *dns_rr,
				     ares_dns_rr_key_t key);

     const unsigned char *ares_dns_rr_get_abin(const ares_dns_rr_t *dns_rr,
					       ares_dns_rr_key_t key, size_t idx,
					       size_t *len);

     size_t ares_dns_rr_get_opt_cnt(const ares_dns_rr_t *dns_rr,
				    ares_dns_rr_key_t	 key);

     unsigned short ares_dns_rr_get_opt(const ares_dns_rr_t  *dns_rr,
					ares_dns_rr_key_t     key,
					size_t		      idx,
					const unsigned char **val,
					size_t		     *val_len);

     ares_bool_t ares_dns_rr_get_opt_byid(const ares_dns_rr_t  *dns_rr,
					  ares_dns_rr_key_t	key,
					  unsigned short	opt,
					  const unsigned char **val,
					  size_t *val_len);

ENUMERATIONS
     ares_dns_section_t - DNS RR section types:
	 ARES_SECTION_ANSWER - Answer section
	 ARES_SECTION_AUTHORITY - Authority section
	 ARES_SECTION_ADDITIONAL - Additional Information section

     ares_dns_rr_key_t - Keys used for handling RR record parameters:
	 ARES_RR_A_ADDR - A Record. Address. Datatype: ARES_DATATYPE_INADDR
	 ARES_RR_NS_NSDNAME - NS Record. Name. Datatype: ARES_DATATYPE_NAME
	 ARES_RR_CNAME_CNAME - CNAME Record. CName. Datatype: ARES_DATATYPE_NAME
	 ARES_RR_SOA_MNAME  -  SOA  Record.  MNAME,  Primary  Source  of   Data.
	 Datatype: ARES_DATATYPE_NAME
	 ARES_RR_SOA_RNAME  -  SOA Record. RNAME, Mailbox of person responsible.
	 Datatype: ARES_DATATYPE_NAME
	 ARES_RR_SOA_SERIAL   -   SOA	Record.   Serial,   version.   Datatype:
	 ARES_DATATYPE_U32
	 ARES_RR_SOA_REFRESH  -  SOA  Record.  Refresh,  zone  refersh interval.
	 Datatype: ARES_DATATYPE_U32
	 ARES_RR_SOA_RETRY - SOA Record. Retry, failed refresh	retry  interval.
	 Datatype: ARES_DATATYPE_U32
	 ARES_RR_SOA_EXPIRE  -	SOA  Record.  Expire,  upper limit on authority.
	 Datatype: ARES_DATATYPE_U32
	 ARES_RR_SOA_MINIMUM  -  SOA  Record.	Minimum,   RR	TTL.   Datatype:
	 ARES_DATATYPE_U32
	 ARES_RR_PTR_DNAME  -	PTR  Record.  DNAME,  pointer  domain. Datatype:
	 ARES_DATATYPE_NAME
	 ARES_RR_HINFO_CPU - HINFO Record. CPU. Datatype: ARES_DATATYPE_STR
	 ARES_RR_HINFO_OS - HINFO Record. OS. Datatype: ARES_DATATYPE_STR
	 ARES_RR_MX_PREFERENCE	  -    MX    Record.	Preference.    Datatype:
	 ARES_DATATYPE_U16
	 ARES_RR_MX_EXCHANGE   -   MX	Record.   Exchange,   domain.  Datatype:
	 ARES_DATATYPE_NAME
	 ARES_RR_TXT_DATA - TXT Record. Data. Datatype: ARES_DATATYPE_ABINP
	 ARES_RR_SIG_TYPE_COVERED  -  SIG  Record.   Type   Covered.   Datatype:
	 ARES_DATATYPE_U16
	 ARES_RR_SIG_ALGORITHM	  -    SIG    Record.	 Algorithm.    Datatype:
	 ARES_DATATYPE_U8
	 ARES_RR_SIG_LABELS - SIG Record. Labels. Datatype: ARES_DATATYPE_U8
	 ARES_RR_SIG_ORIGINAL_TTL  -  SIG  Record.   Original	TTL.   Datatype:
	 ARES_DATATYPE_U32
	 ARES_RR_SIG_EXPIRATION  -  SIG  Record. Signature Expiration. Datatype:
	 ARES_DATATYPE_U32
	 ARES_RR_SIG_INCEPTION -  SIG  Record.	Signature  Inception.  Datatype:
	 ARES_DATATYPE_U32
	 ARES_RR_SIG_KEY_TAG - SIG Record. Key Tag. Datatype: ARES_DATATYPE_U16
	 ARES_RR_SIG_SIGNERS_NAME   -	SIG  Record.  Signer's	Name.  Datatype:
	 ARES_DATATYPE_NAME
	 ARES_RR_SIG_SIGNATURE	  -    SIG    Record.	 Signature.    Datatype:
	 ARES_DATATYPE_BIN
	 ARES_RR_AAAA_ADDR  -  AAAA Record. Address. Datatype: ARES_DATATYPE_IN-
	 ADDR6
	 ARES_RR_SRV_PRIORITY	 -    SRV    Record.	 Priority.     Datatype:
	 ARES_DATATYPE_U16
	 ARES_RR_SRV_WEIGHT - SRV Record. Weight. Datatype: ARES_DATATYPE_U16
	 ARES_RR_SRV_PORT - SRV Record. Port. Datatype: ARES_DATATYPE_U16
	 ARES_RR_SRV_TARGET    -    SRV   Record.   Target   domain.   Datatype:
	 ARES_DATATYPE_NAME
	 ARES_RR_NAPTR_ORDER - NAPTR Record. Order. Datatype: ARES_DATATYPE_U16
	 ARES_RR_NAPTR_PREFERENCE  -   NAPTR   Record.	 Preference.   Datatype:
	 ARES_DATATYPE_U16
	 ARES_RR_NAPTR_FLAGS - NAPTR Record. Flags. Datatype: ARES_DATATYPE_STR
	 ARES_RR_NAPTR_SERVICES    -	NAPTR	 Record.   Services.   Datatype:
	 ARES_DATATYPE_STR
	 ARES_RR_NAPTR_REGEXP	 -    NAPTR    Record.	   Regexp.     Datatype:
	 ARES_DATATYPE_STR
	 ARES_RR_NAPTR_REPLACEMENT   -	 NAPTR	Record.  Replacement.  Datatype:
	 ARES_DATATYPE_NAME
	 ARES_RR_OPT_UDP_SIZE	-    OPT    Record.    UDP    Size.    Datatype:
	 ARES_DATATYPE_U16
	 ARES_RR_OPT_VERSION - OPT Record. Version. Datatype: ARES_DATATYPE_U8
	 ARES_RR_OPT_FLAGS - OPT Record. Flags. Datatype: ARES_DATATYPE_U16
	 ARES_RR_OPT_OPTIONS   -  OPT  Record.	Options.  See  ares_opt_param_t.
	 Datatype: ARES_DATATYPE_OPT
	 ARES_RR_TLSA_CERT_USAGE  -  TLSA   Record.   Certificate   Usage.   See
	 ares_tlsa_usage_t. Datatype: ARES_DATATYPE_U8
	 ARES_RR_TLSA_SELECTOR	-  TLSA  Record.  Selector. See ares_tlsa_selec-
	 tor_t. Datatype: ARES_DATATYPE_U8
	 ARES_RR_TLSA_MATCH - TLSA Record. Matching Type. See ares_tlsa_match_t.
	 Datatype: ARES_DATATYPE_U8
	 ARES_RR_TLSA_DATA  -  TLSA  Record.   Certificate   Association   Data.
	 Datatype: ARES_DATATYPE_BIN
	 ARES_RR_SVCB_PRIORITY	  -    SVCB   Record.	SvcPriority.   Datatype:
	 ARES_DATATYPE_U16
	 ARES_RR_SVCB_TARGET	-    SVCB    Record.	TargetName.    Datatype:
	 ARES_DATATYPE_NAME
	 ARES_RR_SVCB_PARAMS  -  SVCB  Record. SvcParams. See ares_svcb_param_t.
	 Datatype: ARES_DATATYPE_OPT
	 ARES_RR_HTTPS_PRIORITY   -   HTTPS   Record.	SvcPriority.   Datatype:
	 ARES_DATATYPE_U16
	 ARES_RR_HTTPS_TARGET	 -    HTTPS    Record.	 TargetName.   Datatype:
	 ARES_DATATYPE_NAME
	 ARES_RR_HTTPS_PARAMS - HTTPS Record. SvcParams. See  ares_svcb_param_t.
	 Datatype: ARES_DATATYPE_OPT
	 ARES_RR_URI_PRIORITY	  -	URI    Record.	  Priority.    Datatype:
	 ARES_DATATYPE_U16
	 ARES_RR_URI_WEIGHT - URI Record. Weight. Datatype: ARES_DATATYPE_U16
	 ARES_RR_URI_TARGET   -   URI	Record.   Target    domain.    Datatype:
	 ARES_DATATYPE_NAME
	 ARES_RR_CAA_CRITICAL	-   CAA   Record.   Critical   flag.   Datatype:
	 ARES_DATATYPE_U8
	 ARES_RR_CAA_TAG - CAA Record. Tag/Property. Datatype: ARES_DATATYPE_STR
	 ARES_RR_CAA_VALUE - CAA Record. Value. Datatype: ARES_DATATYPE_BINP
	 ARES_RR_RAW_RR_TYPE - RAW Record. RR Type. Datatype: ARES_DATATYPE_U16
	 ARES_RR_RAW_RR_DATA - RAW Record. RR Data. Datatype: ARES_DATATYPE_BIN

     ares_tlsa_usage_t - TLSA Record ARES_RR_TLSA_CERT_USAGE known values
	 ARES_TLSA_USAGE_CA - Certificate Usage 0. CA Constraint
	 ARES_TLSA_USAGE_SERVICE - Certificate Usage 1. Service Certificate Con-
	 straint
	 ARES_TLSA_USAGE_TRUSTANCHOR - Certificate Usage 2. Trust Anchor  Asser-
	 tion
	 ARES_TLSA_USAGE_DOMAIN - Certificate Usage 3. Domain-issued certificate

     ares_tlsa_selector_t - TLSA Record ARES_RR_TLSA_SELECTOR known values:
	 ARES_TLSA_SELECTOR_FULL - Full Certificate
	 ARES_TLSA_SELECTOR_SUBJPUBKEYINFO - DER-encoded SubjectPublicKeyInfo

     ares_tlsa_match_t - TLSA Record ARES_RR_TLSA_MATCH known values:
	 ARES_TLSA_MATCH_EXACT - Exact match
	 ARES_TLSA_MATCH_SHA256 - Sha256 match
	 ARES_TLSA_MATCH_SHA512 - Sha512 match

DESCRIPTION
     The  ares_dns_record_rr_cnt(3)  function  returns	the  number  of resource
     records in the DNS record provided by the dnsrec parameter for the  section
     provided in the sect parameter.

     The ares_dns_record_rr_add(3) function adds a new resource record entry the
     the  DNS  record  provided by the dnsrec parameter.  The resulting resource
     record is stored into the variable pointed to by rr_out.  The  DNS  section
     the resource record belongs to is specified by the sect parameter.  The do-
     main  name associated with the resource record is specified by the name pa-
     rameter, which can not be NULL but may be an empty string, or ".".  The re-
     source record type is specified in the type parameter, along with	the  DNS
     record class in the rclass parameter, and the Time To Live (TTL) in the ttl
     parameter.

     The ares_dns_record_rr_get(3) and ares_dns_record_rr_get_const(3) functions
     are  used	to retrieve the resource record pointer from the DNS record pro-
     vided in the dnsrec parameter, for the resource record section provided  in
     the  sect parameter, for the specified index in the idx parameter.  The in-
     dex must be less than  ares_dns_record_rr_cnt(3).	 The  former  returns  a
     writable  pointer	to the resource record, while the latter returns a read-
     only pointer to the resource record.

     The ares_dns_record_rr_del(3) is used to delete a resource record from  the
     DNS record specified in the dnsrec parameter.  Its primary use is to remove
     a	ARES_REC_TYPE_OPT record when needing to retry a query without EDNS sup-
     port.  The DNS RR section is specified via the sect parameter, and the  in-
     dex  to  remove  is specified in the idx parameter.  The index must be less
     than ares_dns_record_rr_cnt(3).

     The ares_dns_rr_get_name(3) function  is  used  to  retrieve  the	resource
     record  domain name from the Resource Record pointer provided in the rr pa-
     rameter.

     The ares_dns_rr_get_type(3) function  is  used  to  retrieve  the	resource
     record type from the Resource Record pointer provided in the rr parameter.

     The  ares_dns_rr_get_class(3)  function  is  used	to retrieve the resource
     record class from the Resource Record pointer provided in the rr parameter.

     The ares_dns_rr_get_ttl(3) function is used to retrieve the resource record
     class Time to Live (TTL) from the Resource Record pointer provided  in  the
     rr parameter.

     The ares_dns_rr_set_addr(3) function is used to set an IPv4 address for the
     associated   resource   record   key/parameter   when   the   datatype   is
     ARES_DATATYPE_INADDR.  The resource record to be modified	is  provided  in
     the  dns_rr  parameter, the key/parameter is provided in the key parameter,
     and the value is provided in the addr parameter.

     The ares_dns_rr_set_addr6(3) function is used to set an  IPv6  address  for
     the   associated	resource  record  key/parameter  when  the  datatype  is
     ARES_DATATYPE_INADDR6.  The resource record to be modified is  provided  in
     the  dns_rr  parameter, the key/parameter is provided in the key parameter,
     and the value is provided in the addr parameter.

     The ares_dns_rr_set_str(3) function is used to set a string for the associ-
     ated resource record key/parameter when the datatype  is  ARES_DATATYPE_STR
     or ARES_DATATYPE_NAME.  Most strings are limited to 255 bytes, however some
     records, such as a TXT record may allow longer as they are output as multi-
     ple  strings.  The resource record to be modified is provided in the dns_rr
     parameter, the key/parameter is provided in  the  key  parameter,	and  the
     value is provided in the val parameter.

     The  ares_dns_rr_set_u8(3)  function  is used to set an 8bit unsigned value
     for the associated resource  record  key/parameter  when  the  datatype  is
     ARES_DATATYPE_U8.	 The  resource	record to be modified is provided in the
     dns_rr parameter, the key/parameter is provided in the key  parameter,  and
     the value is provided in the val parameter.

     The  ares_dns_rr_set_u16(3) function is used to set an 16bit unsigned value
     for the associated resource  record  key/parameter  when  the  datatype  is
     ARES_DATATYPE_U16.   The  resource record to be modified is provided in the
     dns_rr parameter, the key/parameter is provided in the key  parameter,  and
     the value is provided in the val parameter.

     The  ares_dns_rr_set_u32(3) function is used to set an 32bit unsigned value
     for the associated resource  record  key/parameter  when  the  datatype  is
     ARES_DATATYPE_U32.   The  resource record to be modified is provided in the
     dns_rr parameter, the key/parameter is provided in the key  parameter,  and
     the value is provided in the val parameter.

     The  ares_dns_rr_set_bin(3)  function is used to set a binary value for the
     associated   resource   record   key/parameter   when   the   datatype   is
     ARES_DATATYPE_BIN	or  ARES_DATATYPE_BINP.  The resource record to be modi-
     fied is provided in the dns_rr parameter, the key/parameter is provided  in
     the  key parameter, and the value is provided in the val parameter. And the
     associated value length is provided in the len parameter.

     The ares_dns_rr_add_abin(3) function is used to append a  binary  value  in
     the  array  for  the  associated  resource  record  key/parameter	when the
     datatype is ARES_DATATYPE_ABINP.  The resource record  to	be  modified  is
     provided  in the dns_rr parameter, the key/parameter is provided in the key
     parameter, and the value is provided in the val parameter. And the  associ-
     ated value length is provided in the len parameter.

     The  ares_dns_rr_del_abin(3)  function  is used to delete a binary value in
     the array	for  the  associated  resource	record	key/parameter  when  the
     datatype  is  ARES_DATATYPE_ABINP.   The  resource record to be modified is
     provided in the dns_rr parameter, the key/parameter is provided in the  key
     parameter, and the index to remove is provided in the idx parameter.

     The  ares_dns_rr_set_opt(3)  function  is used to set option/parameter keys
     and values for the resource record when the datatype is  ARES_DATATYPE_OPT.
     The  resource  record  to	be modified is provided in the dns_rr parameter.
     They key/parameter is provided in the key parameter.  The	option/parameter
     value specific to the resource record is provided in the opt parameter, and
     this  is  left to the user to determine the appropriate value to use.  Some
     known values may be provided by ares_svcb_param_t and ares_opt_param_t enu-
     merations.  The value for the option is always provided in binary	form  in
     val with length provided in val_len.

     The ares_dns_rr_del_opt_byid(3) function is used to delete option/parameter
     keys   and   values   for	 the   resource  record  when  the  datatype  is
     ARES_DATATYPE_OPT.  The resource record to be modified is provided  in  the
     dns_rr  parameter.   They	key/parameter  is provided in the key parameter.
     The option/parameter value specific to the resource record is  provided  in
     the  opt  parameter.   This  function returns ARES_SUCCESS if the record is
     successfully removed, or ARES_ENOTFOUND if the record could not be found.

     The ares_dns_rr_get_addr(3) function is used to retrieve the  IPv4  address
     from  the	resource  record when the datatype is ARES_DATATYPE_INADDR.  The
     resource record is provided in the dns_rr parameter and  the  key/parameter
     to retrieve is provided in the key parameter.

     The  ares_dns_rr_get_addr6(3) function is used to retrieve the IPv6 address
     from the resource record when the datatype is  ARES_DATATYPE_INADDR6.   The
     resource  record  is provided in the dns_rr parameter and the key/parameter
     to retrieve is provided in the key parameter.

     The ares_dns_rr_get_str(3) function is used to retrieve a string  from  the
     resource	 record    when    the	  datatype   is   ARES_DATATYPE_STR   or
     ARES_DATATYPE_NAME.  The resource record is provided in the dns_rr  parame-
     ter and the key/parameter to retrieve is provided in the key parameter.

     The ares_dns_rr_get_u8(3) function is used to retrieve an 8bit integer from
     the  resource  record  when the datatype is ARES_DATATYPE_U8.  The resource
     record is provided in the dns_rr parameter and  the  key/parameter  to  re-
     trieve is provided in the key parameter.

     The  ares_dns_rr_get_u16(3)  function  is	used to retrieve a 16bit integer
     from the resource record when the datatype is ARES_DATATYPE_U16.	The  re-
     source  record is provided in the dns_rr parameter and the key/parameter to
     retrieve is provided in the key parameter.

     The ares_dns_rr_get_u32(3) function is used to  retrieve  a  32bit  integer
     from  the	resource record when the datatype is ARES_DATATYPE_U32.  The re-
     source record is provided in the dns_rr parameter and the key/parameter  to
     retrieve is provided in the key parameter.

     The  ares_dns_rr_get_bin(3)  function  is used to retrieve binary data from
     the  resource  record   when   the   datatype   is   ARES_DATATYPE_BIN   or
     ARES_DATATYPE_BINP.   The resource record is provided in the dns_rr parame-
     ter and the key/parameter to retrieve is provided in the key parameter, and
     length is stored into the variable pointed to by len.

     The ares_dns_rr_get_abin_cnt(3) function is used to retrieve the  count  of
     the  array  of  stored  binary  values  from  the	resource record when the
     datatype is ARES_DATATYPE_ABINP.  The resource record is  provided  in  the
     dns_rr  parameter	and the key/parameter to retrieve is provided in the key
     parameter.

     The ares_dns_rr_get_abin(3) function is used to retrieve binary  data  from
     the  resource  record  array when the datatype is ARES_DATATYPE_ABINP.  The
     resource record is provided in the dns_rr parameter and  the  key/parameter
     to  retrieve  is  provided  in the key parameter, and the index to retrieve
     from the array is provided by the idx parameter, and length is stored  into
     the variable pointed to by len.

     The  ares_dns_rr_get_opt_cnt(3)  function	is used to retrieve the count of
     options/parameters associated with the resource record when the datatype is
     ARES_DATATYPE_OPT.  The resource record is provided in the dns_rr parameter
     and the key/parameter to retrieve is provided in the key.

     The ares_dns_rr_get_opt(3) function is used to retrieve binary option  data
     from  the	resource  record  when the datatype is ARES_DATATYPE_OPT for the
     specified index.  The resource record is provided in the  dns_rr  parameter
     and the key/parameter to retrieve is provided in the key parameter, the in-
     dex to retrieve the option data from is provided in the idx parameter.  The
     value  is	stored	into the variable pointed to by val and length is stored
     into the variable pointed to by val_len.

     The ares_dns_rr_get_opt_byid(3) function is used to retrieve binary  option
     data  from  the  resource record when the datatype is ARES_DATATYPE_OPT for
     the specified option identifier, if it exists.  The resource record is pro-
     vided in the dns_rr parameter and the key/parameter to retrieve is provided
     in the key parameter, the identifier to retrieve the option  data	from  is
     provided  in  the	opt  parameter.   The  value is stored into the variable
     pointed to by val and length is stored into  the  variable  pointed  to  by
     val_len.

RETURN VALUES
     ares_dns_record_rr_cnt(3) and ares_dns_rr_get_opt_cnt(3) return the respec-
     tive counts.

     ares_dns_record_rr_add(3), 		      ares_dns_record_rr_del(3),
     ares_dns_rr_set_addr(3), ares_dns_rr_set_addr6(3),  ares_dns_rr_set_str(3),
     ares_dns_rr_set_u8(3),    ares_dns_rr_set_u16(3),	 ares_dns_rr_set_u32(3),
     ares_dns_rr_set_bin(3),  ares_dns_rr_add_abin(3),	ares_dns_rr_del_abin(3),
     and   ares_dns_rr_set_opt(3)   all  return  an  ares_status_t  error  code.
     ARES_SUCCESS is returned on success, ARES_ENOMEM is returned on out of mem-
     ory, ARES_EFORMERR is returned on misuse.

     ares_dns_rr_get_name(3), ares_dns_rr_get_type(3), ares_dns_rr_get_class(3),
     ares_dns_rr_get_ttl(3), ares_dns_rr_get_addr(3),  ares_dns_rr_get_addr6(3),
     ares_dns_rr_get_str(3),	ares_dns_rr_get_u8(3),	 ares_dns_rr_get_u16(3),
     ares_dns_rr_get_u32(3),				 ares_dns_rr_get_bin(3),
     ares_dns_rr_get_abin_cnt(3),			ares_dns_rr_get_abin(3),
     ares_dns_rr_get_opt(3) all return their prescribed datatype values  and  in
     general  can't  fail except for misuse cases, in which a 0 (or NULL) may be
     returned, however 0 can also be a valid return  value  for  most  of  these
     functions.

     ares_dns_record_rr_get(3)	and  ares_dns_record_rr_get_const(3) will return
     the requested resource record pointer or NULL on failure (misuse).

     ares_dns_rr_get_opt_byid(3) will return ARES_TRUE if the option was  found,
     otherwise ARES_FALSE if not found (or misuse).

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

SEE ALSO
     ares_dns_mapping(3), ares_dns_record(3), ares_free_string(3)

				12 November 2023		  ARES_DNS_RR(3)

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

home | help