ARES\_PARSE\_NAPTR\_REPLY(3) Library Functions Manual ARES\_PARSE\_NAPTR\_REPLY(3)

# [NAME](#NAME)

ares\_parse\_naptr\_reply - Parse a reply to a DNS query of type NAPTR

# [SYNOPSIS](#SYNOPSIS)

```
#include <ares.h>
int ares_parse_naptr_reply(const unsigned char* abuf, int alen,


                           struct ares_naptr_reply** naptr_out);
```

# [DESCRIPTION](#DESCRIPTION)

The **ares\_parse\_naptr\_reply** function parses the response to a query of type NAPTR into a linked list of *struct ares\_naptr\_reply* The parameters *abuf* and *alen* give the contents of the response. The result is stored in allocated memory and a pointer to it stored into the variable pointed to by *naptr\_out*. It is the caller's responsibility to free the resulting *naptr\_out* structure when it is no longer needed using the function [**ares\_free\_data(3)**](/man/os/c-ares/ares_free_data.3).

The structure *ares\_naptr\_reply* contains the following fields:

```
struct ares_naptr_reply {


    struct ares_naptr_reply *next;


    unsigned char *flags;


    unsigned char *service;


    unsigned char *regexp;


    char *replacement;


    unsigned short order;


    unsigned short preference;
};
```

# [RETURN VALUES](#RETURN_VALUES)

**ares\_parse\_naptr\_reply** can return any of the following values:

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

The response was successfully parsed.

[**ARES\_EBADRESP**](#ARES_EBADRESP)

The response was malformatted.

[**ARES\_ENODATA**](#ARES_ENODATA)

The response did not contain an answer to the query.

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

Memory was exhausted.

# [AVAILABILITY](#AVAILABILITY)

This function was first introduced in c-ares version 1.7.6.

# [SEE ALSO](#SEE_ALSO)

[**ares\_query**(3)](/man/os/c-ares/ares_query.3) [**ares\_free\_data**(3)](/man/os/c-ares/ares_free_data.3)

23 February 2012

---

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