ares_cancel man page
ares_cancel — Cancel a resolve
#include <ares.h> void ares_cancel(ares_channel channel)
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).
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.
ares_destroy(3), ares_gethostbyaddr(3), ares_gethostbyname(3), ares_getnameinfo(3), ares_library_cleanup(3).