ares_cancel(3)

ares_cancel3

Cancel a resolve

Usage

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

Overview

The ares_cancel(3) function cancels all lookups/requests made on the the name service channel identified by channel. ares_cancel(3) invokes the callbacks for each pending query on the channel, passing a status of ARES_ECANCELLED. These calls give the callbacks a chance to clean up any state which might have been stored in their arguments. If such a callback invocation adds a new request to the channel, that request will not be cancelled by the current invocation of ares_cancel(3).

Reentrancy

A callback invoked by ares_cancel(3) may call c-ares functions on the same channel. The channel lock is recursive, and each query is unlinked from the library's internal structures before its callback runs, so a reentrant call cannot encounter a query that is part-way through being torn down.

This includes starting new lookups, as described above, and reconfiguring the server list with ares_set_servers_csv(3) and related functions.

Notes

This function was added in c-ares 1.2.0

c-ares 1.6.0 and earlier pass a status of ARES_ETIMEOUT instead of ARES_ECANCELLED.

Releases

10 releases since Debian 5.0 (Lenny); the text changed 6 times.

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

Availability

The reentrancy guarantee described above applies as of c-ares version 1.35.0, and c-ares version 1.34.9 on the 1.34 branch.

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