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

# [NAME](#NAME)

ares\_expand\_string - Expand a length encoded string

# [SYNOPSIS](#SYNOPSIS)

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


                       const unsigned char *abuf, int alen,


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

# [DESCRIPTION](#DESCRIPTION)

The **ares\_expand\_string** function converts a length encoded string to a NUL-terminated C string. The argument *encoded* gives the beginning of the encoded string, 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 string is stored in the variable pointed to by *enclen* so that the caller can advance past the encoded string to read further data in the message.

# [RETURN VALUES](#RETURN_VALUES)

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

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

Expansion of the encoded string succeeded.

[**ARES\_EBADSTR**](#ARES_EBADSTR)

The encoded string was malformed and could not be expanded.

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

Memory was exhausted.

# [SEE ALSO](#SEE_ALSO)

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

20 Nov 2009

---

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