ARES\_EXPAND\_NAME(3) Library Functions Manual ARES\_EXPAND\_NAME(3)

# [NAME](#NAME)

ares\_expand\_name - Expand a DNS-encoded domain name

# [SYNOPSIS](#SYNOPSIS)

```
#include <ares.h>
int ares_expand_name(const unsigned char *encoded,


                     const unsigned char *abuf, int alen,


                     char **s, long *enclen)
```

# [DESCRIPTION](#DESCRIPTION)

The **ares\_expand\_name** function converts a DNS-encoded domain name to a dot-separated C string. The argument *encoded* gives the beginning of the encoded domain name, and the arguments *abuf* and *alen* give the containing message buffer (necessary for the processing of indirection pointers within the encoded domain name). The result is placed in a NUL-terminated allocated buffer, a pointer to which is stored in the variable pointed to by *s*. The length of the encoded name is stored in the variable pointed to by *enclen* so that the caller can advance past the encoded domain name to read further data in the message.

Use [*ares\_free\_string(3)*](/man/os/c-ares/ares_free_string.3) to free the allocated hostname.

# [RETURN VALUES](#RETURN_VALUES)

**ares\_expand\_name** can return any of the following values:

[**ARES\_SUCCESS**](#ARES_SUCCESS)

Expansion of the encoded name succeeded.

[**ARES\_EBADNAME**](#ARES_EBADNAME)

The encoded domain name was malformed and could not be expanded.

[**ARES\_ENOMEM**](#ARES_ENOMEM)

Memory was exhausted.

# [SEE ALSO](#SEE_ALSO)

[**ares\_mkquery**(3)](/man/os/c-ares/ares_mkquery.3), [**ares\_free\_string**(3)](/man/os/c-ares/ares_free_string.3)

20 Nov 2009

---

Document: ares_expand_name(3) from c-ares 1.34.8-r2 (Chainguard OS)
Source: https://github.com/c-ares/c-ares
