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

ares_private.h File Reference

#include "lwip/api.h"
#include "lwip/sockets.h"
#include "arpa/nameser.h"
#include <string.h>
#include "netdb.h"
#include <ctype.h>
#include "ares.h"

Include dependency graph for ares_private.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  apattern
struct  ares_channeldata
struct  query
struct  send_request
struct  server_state

Defines

#define u_char   unsigned char
#define u_int   unsigned int
#define u_int16_t   u16_t
#define u_int32_t   u32_t
#define malloc   mem_malloc
#define realloc   mem_reallocm
#define free   mem_free
#define strdup   ares_strdup
#define strcasecmp   ares_strcasecmp
#define time   ares_time
#define DEFAULT_TIMEOUT   5
#define DEFAULT_TRIES   4
#define INADDR_NONE   0xffffffff
#define PATH_RESOLV_CONF   "/etc/resolv.conf"
#define PATH_HOSTS   "/etc/hosts"

Functions

char * ares_strdup (const char *)
int ares_strcasecmp (const char *s1, const char *s2)
time_t ares_time (time_t *)
void ares__send_query (ares_channel channel, struct query *query, time_t now)
void ares__close_sockets (struct server_state *server)


Define Documentation

#define DEFAULT_TIMEOUT   5
 

Definition at line 60 of file ares_private.h.

Referenced by init_by_defaults().

#define DEFAULT_TRIES   4
 

Definition at line 61 of file ares_private.h.

Referenced by init_by_defaults().

#define free   mem_free
 

Definition at line 40 of file ares_private.h.

Referenced by ares__close_sockets(), ares_destroy(), ares_free_hostent(), ares_free_string(), ares_gethostbyname(), ares_init_options(), ares_parse_a_reply(), ares_parse_ptr_reply(), ares_search(), ares_send(), callback(), end_aquery(), end_hquery(), end_query(), end_squery(), fake_hostent(), gethostbyaddr(), gethostbyname(), gethostbynameaddr(), qcallback(), read_tcp_data(), same_questions(), search_callback(), and write_tcp_data().

#define INADDR_NONE   0xffffffff
 

Definition at line 63 of file ares_private.h.

Referenced by dns_client(), fake_hostent(), and inet_addr().

#define malloc   mem_malloc
 

Definition at line 38 of file ares_private.h.

Referenced by ares__send_query(), ares_expand_name(), ares_gethostbyaddr(), ares_gethostbyname(), ares_init_options(), ares_mkquery(), ares_parse_a_reply(), ares_parse_ptr_reply(), ares_query(), ares_search(), ares_send(), cat_domain(), init_by_defaults(), init_by_options(), read_tcp_data(), strdup(), and write_tcp_data().

#define PATH_HOSTS   "/etc/hosts"
 

Definition at line 70 of file ares_private.h.

#define PATH_RESOLV_CONF   "/etc/resolv.conf"
 

Definition at line 66 of file ares_private.h.

#define realloc   mem_reallocm
 

Definition at line 39 of file ares_private.h.

#define strcasecmp   ares_strcasecmp
 

Definition at line 45 of file ares_private.h.

Referenced by ares_parse_a_reply(), ares_parse_ptr_reply(), callback(), and same_questions().

#define strdup   ares_strdup
 

Definition at line 42 of file ares_private.h.

Referenced by ares_gethostbyname(), ares_search(), callback(), fake_hostent(), gethostbynameaddr(), init_by_defaults(), init_by_options(), and single_domain().

#define time   ares_time
 

Definition at line 48 of file ares_private.h.

Referenced by ares_init_options(), ares_process(), ares_send(), ares_timeout(), main(), period_debug(), sys_arch_mbox_fetch(), sys_arch_sem_wait(), time(), and time_debug().

#define u_char   unsigned char
 

Definition at line 31 of file ares_private.h.

Referenced by htonl().

#define u_int   unsigned int
 

Definition at line 32 of file ares_private.h.

#define u_int16_t   u16_t
 

Definition at line 33 of file ares_private.h.

#define u_int32_t   u32_t
 

Definition at line 34 of file ares_private.h.


Function Documentation

void ares__close_sockets struct server_state server  ) 
 

Definition at line 25 of file ares__close_sockets.c.

References free, send_request::next, NULL, server_state::qhead, server_state::qtail, server_state::tcp_buffer, server_state::tcp_lenbuf_pos, server_state::tcp_socket, and server_state::udp_socket.

Referenced by ares_destroy(), end_query(), and handle_error().

00026 {
00027   struct send_request *sendreq;
00028 
00029   /* Free all pending output buffers. */
00030   while (server->qhead)
00031     {
00032       /* Advance server->qhead; pull out query as we go. */
00033       sendreq = server->qhead;
00034       server->qhead = sendreq->next;
00035       free(sendreq);
00036     }
00037   server->qtail = NULL;
00038 
00039   /* Reset any existing input buffer. */
00040   if (server->tcp_buffer)
00041     free(server->tcp_buffer);
00042   server->tcp_buffer = NULL;
00043   server->tcp_lenbuf_pos = 0;
00044 
00045   /* Close the TCP and UDP sockets. */
00046   if (server->tcp_socket != -1)
00047     {
00048       close(server->tcp_socket);
00049       server->tcp_socket = -1;
00050     }
00051   if (server->udp_socket != -1)
00052     {
00053       close(server->udp_socket);
00054       server->udp_socket = -1;
00055     }
00056 }

void ares__send_query ares_channel  channel,
struct query query,
time_t  now
 

Definition at line 375 of file ares_process.c.

References ares_channel, ARES_ENOMEM, end_query(), malloc, next_server(), ares_channeldata::nservers, NULL, open_tcp_socket(), open_udp_socket(), query::qbuf, query::qlen, query::server, ares_channeldata::servers, query::skip_server, query::tcpbuf, query::tcplen, query::timeout, ares_channeldata::timeout, query::try, and query::using_tcp.

Referenced by ares_send(), next_server(), and process_answer().

00376 {
00377   struct send_request *sendreq;
00378   struct server_state *server;
00379 
00380   server = &channel->servers[query->server];
00381 
00382   if (query->using_tcp)
00383     {
00384       /* Make sure the TCP socket for this server is set up and queue
00385        * a send request.
00386        */
00387       if (server->tcp_socket == -1)
00388         {
00389           if (open_tcp_socket(channel, server) == -1)
00390             {
00391               query->skip_server[query->server] = 1;
00392               next_server(channel, query, now);
00393               return;
00394             }
00395         }
00396       sendreq = malloc(sizeof(struct send_request));
00397       if (!sendreq)
00398         end_query(channel, query, ARES_ENOMEM, NULL, 0);
00399       sendreq->data = query->tcpbuf;
00400       sendreq->len = query->tcplen;
00401       sendreq->next = NULL;
00402       if (server->qtail)
00403         server->qtail->next = sendreq;
00404       else
00405         server->qhead = sendreq;
00406       server->qtail = sendreq;
00407       query->timeout = 0;
00408     }
00409   else
00410     {
00411       if (server->udp_socket == -1)
00412         {
00413           if (open_udp_socket(channel, server) == -1)
00414             {
00415               query->skip_server[query->server] = 1;
00416               next_server(channel, query, now);
00417               return;
00418             }
00419         }
00420       if (send(server->udp_socket, (void *) query->qbuf, query->qlen, 0) == -1)
00421         {
00422           query->skip_server[query->server] = 1;
00423           next_server(channel, query, now);
00424           return;
00425         }
00426       query->timeout = now
00427           + ((query->try == 0) ? channel->timeout
00428              : channel->timeout << query->try / channel->nservers);
00429     }
00430 }

Here is the call graph for this function:

int ares_strcasecmp const char *  s1,
const char *  s2
 

char* ares_strdup const char *   ) 
 

time_t ares_time time_t *   ) 
 


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