#include "ares_private.h"Include dependency graph for ares_fds.c:
Go to the source code of this file.
Functions | |
| int | ares_fds (ares_channel channel, fd_set *read_fds, fd_set *write_fds) |
|
||||||||||||||||
|
Definition at line 25 of file ares_fds.c. References ares_channel, FD_SET, ares_channeldata::nservers, ares_channeldata::queries, and ares_channeldata::servers. Referenced by dns_client(), and gethostbynameaddr().
00026 {
00027 struct server_state *server;
00028 int i, nfds;
00029
00030 /* No queries, no file descriptors. */
00031 if (!channel->queries)
00032 return 0;
00033
00034 nfds = 0;
00035 for (i = 0; i < channel->nservers; i++)
00036 {
00037 server = &channel->servers[i];
00038 if (server->udp_socket != -1)
00039 {
00040 FD_SET(server->udp_socket, read_fds);
00041 if (server->udp_socket >= nfds)
00042 nfds = server->udp_socket + 1;
00043 }
00044 if (server->tcp_socket != -1)
00045 {
00046 FD_SET(server->tcp_socket, read_fds);
00047 if (server->qhead)
00048 FD_SET(server->tcp_socket, write_fds);
00049 if (server->tcp_socket >= nfds)
00050 nfds = server->tcp_socket + 1;
00051 }
00052 }
00053 return nfds;
00054 }
|
1.3.4