#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) |
|
|
Definition at line 60 of file ares_private.h. Referenced by init_by_defaults(). |
|
|
Definition at line 61 of file ares_private.h. Referenced by init_by_defaults(). |
|
|
|
Definition at line 63 of file ares_private.h. Referenced by dns_client(), fake_hostent(), and inet_addr(). |
|
|
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(). |
|
|
Definition at line 70 of file ares_private.h. |
|
|
Definition at line 66 of file ares_private.h. |
|
|
Definition at line 39 of file ares_private.h. |
|
|
Definition at line 45 of file ares_private.h. Referenced by ares_parse_a_reply(), ares_parse_ptr_reply(), callback(), and same_questions(). |
|
|
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(). |
|
|
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(). |
|
|
Definition at line 31 of file ares_private.h. Referenced by htonl(). |
|
|
Definition at line 32 of file ares_private.h. |
|
|
Definition at line 33 of file ares_private.h. |
|
|
Definition at line 34 of file ares_private.h. |
|
|
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 }
|
|
||||||||||||||||
|
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:
|
||||||||||||
|
|
|
|
|
|
|
|
1.3.4