#include "ares_private.h"
Include dependency graph for ares__close_sockets.c:
Go to the source code of this file.
Functions | |
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 } |