mirror of https://github.com/c-ares/c-ares.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.6 KiB
81 lines
2.6 KiB
.\" $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 |
|
.PP |
|
.B void ares_process_fd(ares_channel \fIchannel\fP, |
|
.B ares_socket_t \fIread_fd\fP, |
|
.B ares_socket_t \fIwrite_fd\fP) |
|
.fi |
|
.SH DESCRIPTION |
|
The \fBares_process(3)\fP 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 \fIread_fds\fP and \fIwrite_fds\fP |
|
should have file descriptors set in them according to whether the file |
|
descriptors specified by \fIares_fds(3)\fP are ready for reading and writing. |
|
(The easiest way to determine this information is to invoke |
|
.B select |
|
with a timeout no greater than the timeout given by \fIares_timeout(3)\fP ). |
|
.PP |
|
The |
|
.B ares_process |
|
function will invoke callbacks for pending queries if they complete |
|
successfully or fail. |
|
|
|
\fBares_process_fd(3)\fP 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. |
|
.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.
|
|
|