Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

ares_fds.c File Reference

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


Function Documentation

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 }


Generated on Wed Jan 14 12:59:00 2004 for RTL-lwIP-0.4 by doxygen 1.3.4