NAME
ares_process - Process events for name resolution
SYNOPSIS
void ares_process(ares_channel channel, fd_set *read_fds,
fd_set *write_fds)
DESCRIPTION
The
ares_process
function handles input/output events and timeouts associated with
queries pending on the name service channel identified by
R channel .
The file descriptor sets pointed to by
read_fds
and
write_fds
should have file descriptors set in them according to whether the file
descriptors specified by
ares_fds(3)
are ready for reading and writing. (The easiest way to determine this
information is to invoke
select
with a timeout no greater than the timeout given by
ares_timeout(3)).
The
ares_process
function will invoke callbacks for pending queries if they complete
successfully or fail.
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
AUTHOR
Greg Hudson, MIT Information Systems
Copyright 1998 by the Massachusetts Institute of Technology.