2003-10-07 17:54:04 -04:00
|
|
|
.\" $Id$
|
|
|
|
.\"
|
|
|
|
.\" Copyright 1998 by the Massachusetts Institute of Technology.
|
|
|
|
.\"
|
|
|
|
.\" Permission to use, copy, modify, and distribute this
|
|
|
|
.\" software and its documentation for any purpose and without
|
|
|
|
.\" fee is hereby granted, provided that the above copyright
|
|
|
|
.\" notice appear in all copies and that both that copyright
|
|
|
|
.\" notice and this permission notice appear in supporting
|
|
|
|
.\" documentation, and that the name of M.I.T. not be used in
|
|
|
|
.\" advertising or publicity pertaining to distribution of the
|
|
|
|
.\" software without specific, written prior permission.
|
|
|
|
.\" M.I.T. makes no representations about the suitability of
|
|
|
|
.\" this software for any purpose. It is provided "as is"
|
|
|
|
.\" without express or implied warranty.
|
|
|
|
.\"
|
|
|
|
.TH ARES_PROCESS 3 "25 July 1998"
|
|
|
|
.SH NAME
|
|
|
|
ares_process \- Process events for name resolution
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.nf
|
|
|
|
.B #include <ares.h>
|
|
|
|
.PP
|
|
|
|
.B void ares_process(ares_channel \fIchannel\fP, fd_set *\fIread_fds\fP,
|
|
|
|
.B fd_set *\fIwrite_fds\fP)
|
|
|
|
.fi
|
|
|
|
.SH DESCRIPTION
|
|
|
|
The
|
|
|
|
.B ares_process
|
|
|
|
function handles input/output events and timeouts associated with
|
|
|
|
queries pending on the name service channel identified by
|
|
|
|
.IR channel .
|
|
|
|
The file descriptor sets pointed to by
|
|
|
|
.I read_fds
|
|
|
|
and
|
|
|
|
.I write_fds
|
|
|
|
should have file descriptors set in them according to whether the file
|
2004-04-02 04:50:42 -05:00
|
|
|
descriptors specified by \fIares_fds(3)\fP are ready for reading and writing.
|
|
|
|
(The easiest way to determine this information is to invoke
|
2003-10-07 17:54:04 -04:00
|
|
|
.B select
|
2004-04-02 04:50:42 -05:00
|
|
|
with a timeout no greater than the timeout given by \fIares_timeout(3)\fP ).
|
2003-10-07 17:54:04 -04:00
|
|
|
.PP
|
|
|
|
The
|
|
|
|
.B ares_process
|
|
|
|
function will invoke callbacks for pending queries if they complete
|
|
|
|
successfully or fail.
|
|
|
|
.SS EXAMPLE
|
|
|
|
The following code fragment waits for all pending queries on a channel
|
|
|
|
to complete:
|
|
|
|
.PP
|
|
|
|
.RS
|
|
|
|
.nf
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
.fi
|
|
|
|
.RE
|
|
|
|
.SH SEE ALSO
|
|
|
|
.BR ares_fds (3),
|
|
|
|
.BR ares_timeout (3)
|
|
|
|
.SH AUTHOR
|
|
|
|
Greg Hudson, MIT Information Systems
|
|
|
|
.br
|
|
|
|
Copyright 1998 by the Massachusetts Institute of Technology.
|