Man Linux: Main Page and Category List

NAME

       ares_process - Process events for name resolution

SYNOPSIS

       #include <ares.h>

       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  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

       ares_fds(3), ares_timeout(3)

AUTHOR

       Greg Hudson, MIT Information Systems
       Copyright 1998 by the Massachusetts Institute of Technology.

                                 25 July 1998