packages icon

 ARES_PROCESS(3)                                             ARES_PROCESS(3)
                                25 July 1998

      ares_process - Process events for name resolution

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

      The ares_process(3) 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.

      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.

      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)
               nfds = ares_fds(channel, &readers, &writers);
               if (nfds == 0)
               tvp = ares_timeout(channel, NULL, &tv);
               count = select(nfds, &readers, &writers, NULL, tvp);
               ares_process(channel, &readers, &writers);

                                    - 1 -           Formatted:  July 6, 2022

 ARES_PROCESS(3)                                             ARES_PROCESS(3)
                                25 July 1998

      ares_fds(3), ares_timeout(3)

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

                                    - 2 -           Formatted:  July 6, 2022