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