ares_destroy(3)

ares_destroy3

Destroy a resolver channel

Usage

#include <ares.h>
void ares_destroy(ares_channel_t *channel)

Overview

The ares_destroy(3) function destroys the name service channel identified by channel, freeing all memory and closing all sockets used by the channel.

ares_destroy(3) invokes the callbacks for each pending query on the channel, passing a status of ARES_EDESTRUCTION. These calls give the callbacks a chance to clean up any state which might have been stored in their arguments. A callback must not add new requests to a channel being destroyed. Such a request is refused: the request is not started, and its callback is invoked with a status of ARES_EDESTRUCTION so that any state attached to its argument can be released. A request made from within that notification is refused without a further notification, so that a callback which responds to failure by retrying cannot recurse without bound; its argument is not handed back. This applies as of c-ares version 1.35.0, and c-ares version 1.34.9 on the 1.34 branch.

There is no ability to make this function thread-safe. No additional calls using this channel may be made once this function is called.

Releases

13 releases since Debian 3.0 (Woody); the text changed 6 times.

  1. 3.0–6.0
  2. 7
  3. 8
  4. 9
  5. 10–12
  6. 13
  7. Arch

From c-ares 1.34.9-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.