ares_process(3) - Linux man page
Name
ares_process - Process events for name resolutionSynopsis
#include <ares.h>void ares_process(ares_channel channel, fd_set *read_fds,fd_set *write_fds)void ares_process_fd(ares_channel channel, ares_socket_t read_fd, ares_socket_t write_fd)
Description
The ares_process function will invoke callbacks for pending queries if they complete successfully or fail.
ares_process_fd(3) works the same way but acts and operates only on the specific file descriptors (sockets) you pass in to the function. Use ARES_SOCKET_BAD for "no action". This function is of course provided to allow users of c-ares to void select() in their applications and within c-ares.
Example
The following code fragment waits for all pending queries on a channel to complete:int nfds, count;
fd_set readers, writers;
struct timeval tv, *tvp;
while (1)
{
FD_ZERO(&readers);
FD_ZERO(&writers);
nfds = ares_fds(channel, &readers, &writers);
if (nfds == 0)
break;
tvp = ares_timeout(channel, NULL, &tv);
count = select(nfds, &readers, &writers, NULL, tvp);
ares_process(channel, &readers, &writers);
}
See Also
ares_fds(3), ares_timeout(3)Author
Greg Hudson, MIT Information SystemsCopyright 1998 by the Massachusetts Institute of Technology.