Loading ares/CHANGES +8 −2 Original line number Diff line number Diff line Changelog for the c-ares project * May 3, 2006 - Nick Mathewson added the ARES_OPT_SOCK_STATE_CB option that when set makes c-ares call a callback on socket state changes. A better way than the ares_getsock() to get full control over the socket state. * January 9, 2006 - Alexander Lazic improved the getservbyport_r() configure check. Loading Loading @@ -28,8 +34,8 @@ - Added constants that will be used by ares_getaddrinfo - Made ares_getnameinfo use the reentrant getservbyport (getservbyport_r) if it is available to ensure it works properly in a threaded environment. - Made ares_getnameinfo use the reentrant getservbyport (getservbyport_r) if it is available to ensure it works properly in a threaded environment. * September 10 Loading ares/ares.h +15 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,7 @@ extern "C" { #define ARES_OPT_SERVERS (1 << 6) #define ARES_OPT_DOMAINS (1 << 7) #define ARES_OPT_LOOKUPS (1 << 8) #define ARES_OPT_SOCK_STATE_CB (1 << 9) /* Nameinfo flag values */ #define ARES_NI_NOFQDN (1 << 0) Loading Loading @@ -135,6 +136,18 @@ extern "C" { #define ARES_GETSOCK_WRITABLE(bits,num) (bits & (1 << ((num) + \ ARES_GETSOCK_MAXNUM))) #ifdef WIN32 typedef void (*ares_sock_state_cb)(void *data, SOCKET socket, int readable, int writable); #else typedef void (*ares_sock_state_cb)(void *data, int socket, int readable, int writable); #endif struct ares_options { int flags; int timeout; Loading @@ -147,6 +160,8 @@ struct ares_options { char **domains; int ndomains; char *lookups; ares_sock_state_cb sock_state_cb; void *sock_state_cb_data; }; struct hostent; Loading ares/ares__close_sockets.c +3 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ #include "ares.h" #include "ares_private.h" void ares__close_sockets(struct server_state *server) void ares__close_sockets(ares_channel channel, struct server_state *server) { struct send_request *sendreq; Loading @@ -46,11 +46,13 @@ void ares__close_sockets(struct server_state *server) /* Close the TCP and UDP sockets. */ if (server->tcp_socket != ARES_SOCKET_BAD) { SOCK_STATE_CALLBACK(channel, server->tcp_socket, 0, 0); closesocket(server->tcp_socket); server->tcp_socket = ARES_SOCKET_BAD; } if (server->udp_socket != ARES_SOCKET_BAD) { SOCK_STATE_CALLBACK(channel, server->udp_socket, 0, 0); closesocket(server->udp_socket); server->udp_socket = ARES_SOCKET_BAD; } Loading ares/ares_cancel.c +1 −1 Original line number Diff line number Diff line Loading @@ -38,6 +38,6 @@ void ares_cancel(ares_channel channel) if (!(channel->flags & ARES_FLAG_STAYOPEN)) { for (i = 0; i < channel->nservers; i++) ares__close_sockets(&channel->servers[i]); ares__close_sockets(channel, &channel->servers[i]); } } ares/ares_destroy.c +1 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ void ares_destroy(ares_channel channel) struct query *query; for (i = 0; i < channel->nservers; i++) ares__close_sockets(&channel->servers[i]); ares__close_sockets(channel, &channel->servers[i]); free(channel->servers); for (i = 0; i < channel->ndomains; i++) free(channel->domains[i]); Loading Loading
ares/CHANGES +8 −2 Original line number Diff line number Diff line Changelog for the c-ares project * May 3, 2006 - Nick Mathewson added the ARES_OPT_SOCK_STATE_CB option that when set makes c-ares call a callback on socket state changes. A better way than the ares_getsock() to get full control over the socket state. * January 9, 2006 - Alexander Lazic improved the getservbyport_r() configure check. Loading Loading @@ -28,8 +34,8 @@ - Added constants that will be used by ares_getaddrinfo - Made ares_getnameinfo use the reentrant getservbyport (getservbyport_r) if it is available to ensure it works properly in a threaded environment. - Made ares_getnameinfo use the reentrant getservbyport (getservbyport_r) if it is available to ensure it works properly in a threaded environment. * September 10 Loading
ares/ares.h +15 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,7 @@ extern "C" { #define ARES_OPT_SERVERS (1 << 6) #define ARES_OPT_DOMAINS (1 << 7) #define ARES_OPT_LOOKUPS (1 << 8) #define ARES_OPT_SOCK_STATE_CB (1 << 9) /* Nameinfo flag values */ #define ARES_NI_NOFQDN (1 << 0) Loading Loading @@ -135,6 +136,18 @@ extern "C" { #define ARES_GETSOCK_WRITABLE(bits,num) (bits & (1 << ((num) + \ ARES_GETSOCK_MAXNUM))) #ifdef WIN32 typedef void (*ares_sock_state_cb)(void *data, SOCKET socket, int readable, int writable); #else typedef void (*ares_sock_state_cb)(void *data, int socket, int readable, int writable); #endif struct ares_options { int flags; int timeout; Loading @@ -147,6 +160,8 @@ struct ares_options { char **domains; int ndomains; char *lookups; ares_sock_state_cb sock_state_cb; void *sock_state_cb_data; }; struct hostent; Loading
ares/ares__close_sockets.c +3 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ #include "ares.h" #include "ares_private.h" void ares__close_sockets(struct server_state *server) void ares__close_sockets(ares_channel channel, struct server_state *server) { struct send_request *sendreq; Loading @@ -46,11 +46,13 @@ void ares__close_sockets(struct server_state *server) /* Close the TCP and UDP sockets. */ if (server->tcp_socket != ARES_SOCKET_BAD) { SOCK_STATE_CALLBACK(channel, server->tcp_socket, 0, 0); closesocket(server->tcp_socket); server->tcp_socket = ARES_SOCKET_BAD; } if (server->udp_socket != ARES_SOCKET_BAD) { SOCK_STATE_CALLBACK(channel, server->udp_socket, 0, 0); closesocket(server->udp_socket); server->udp_socket = ARES_SOCKET_BAD; } Loading
ares/ares_cancel.c +1 −1 Original line number Diff line number Diff line Loading @@ -38,6 +38,6 @@ void ares_cancel(ares_channel channel) if (!(channel->flags & ARES_FLAG_STAYOPEN)) { for (i = 0; i < channel->nservers; i++) ares__close_sockets(&channel->servers[i]); ares__close_sockets(channel, &channel->servers[i]); } }
ares/ares_destroy.c +1 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ void ares_destroy(ares_channel channel) struct query *query; for (i = 0; i < channel->nservers; i++) ares__close_sockets(&channel->servers[i]); ares__close_sockets(channel, &channel->servers[i]); free(channel->servers); for (i = 0; i < channel->ndomains; i++) free(channel->domains[i]); Loading