diff options
author | Daniel Stenberg <daniel@haxx.se> | 2004-07-22 22:18:45 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2004-07-22 22:18:45 +0000 |
commit | d5f3636a52d927ee44fa1686ca284cd32b62a0df (patch) | |
tree | 019b62723ef98a69a9a4eafbf75c1cee408007b8 /ares_process.c | |
parent | 55ee00cb1e8a9b0be9c4b6e13b590db4f1580076 (diff) | |
download | c-ares-d5f3636a52d927ee44fa1686ca284cd32b62a0df.tar.gz c-ares-d5f3636a52d927ee44fa1686ca284cd32b62a0df.tar.bz2 c-ares-d5f3636a52d927ee44fa1686ca284cd32b62a0df.zip |
- Fixed a few variable return types for some system calls. Made configure
check for ssize_t to make it possible to use that when receiving the send()
error code. This is necessary to prevent compiler warnings on some systems.
- Made configure create config.h, and all source files now include setup.h that
might include the proper config.h (or a handicrafted alternative).
- Switched to 'ares_socket_t' type for sockets in ares, since Windows don't
use 'int' for that.
- automake-ified and libool-ified c-ares. Now it builds libcares as a shared
lib on most platforms if wanted. (This bloated the size of the release
archive with another 200K!)
- Makefile.am now uses Makefile.inc for the c sources, h headers and man
pages, to make it easier for other makefiles to use the exact same set of
files.
- Adjusted 'maketgz' to use the new automake magic when building distribution
archives.
Diffstat (limited to 'ares_process.c')
-rw-r--r-- | ares_process.c | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/ares_process.c b/ares_process.c index 121c449..130d82f 100644 --- a/ares_process.c +++ b/ares_process.c @@ -13,6 +13,7 @@ * without express or implied warranty. */ +#include "setup.h" #include <sys/types.h> #ifdef WIN32 @@ -80,13 +81,15 @@ static void write_tcp_data(ares_channel channel, fd_set *write_fds, time_t now) struct server_state *server; struct send_request *sendreq; struct iovec *vec; - int i, n, count; + int i; + ssize_t count; + size_t n; for (i = 0; i < channel->nservers; i++) { /* Make sure server has data to send and is selected in write_fds. */ server = &channel->servers[i]; - if (!server->qhead || server->tcp_socket == -1 + if (!server->qhead || server->tcp_socket == ARES_SOCKET_BAD || !FD_ISSET(server->tcp_socket, write_fds)) continue; @@ -185,7 +188,8 @@ static void read_tcp_data(ares_channel channel, fd_set *read_fds, time_t now) { /* Make sure the server has a socket and is selected in read_fds. */ server = &channel->servers[i]; - if (server->tcp_socket == -1 || !FD_ISSET(server->tcp_socket, read_fds)) + if (server->tcp_socket == ARES_SOCKET_BAD || + !FD_ISSET(server->tcp_socket, read_fds)) continue; if (server->tcp_lenbuf_pos != 2) @@ -257,7 +261,8 @@ static void read_udp_packets(ares_channel channel, fd_set *read_fds, /* Make sure the server has a socket and is selected in read_fds. */ server = &channel->servers[i]; - if (server->udp_socket == -1 || !FD_ISSET(server->udp_socket, read_fds)) + if (server->udp_socket == ARES_SOCKET_BAD || + !FD_ISSET(server->udp_socket, read_fds)) continue; count = recv(server->udp_socket, buf, sizeof(buf), 0); @@ -407,7 +412,7 @@ void ares__send_query(ares_channel channel, struct query *query, time_t now) /* Make sure the TCP socket for this server is set up and queue * a send request. */ - if (server->tcp_socket == -1) + if (server->tcp_socket == ARES_SOCKET_BAD) { if (open_tcp_socket(channel, server) == -1) { @@ -431,7 +436,7 @@ void ares__send_query(ares_channel channel, struct query *query, time_t now) } else { - if (server->udp_socket == -1) + if (server->udp_socket == ARES_SOCKET_BAD) { if (open_udp_socket(channel, server) == -1) { @@ -454,12 +459,13 @@ void ares__send_query(ares_channel channel, struct query *query, time_t now) static int open_tcp_socket(ares_channel channel, struct server_state *server) { - int s, flags; + ares_socket_t s; + int flags; struct sockaddr_in sockin; /* Acquire a socket. */ s = socket(AF_INET, SOCK_STREAM, 0); - if (s == -1) + if (s == ARES_SOCKET_BAD) return -1; /* Set the socket non-blocking. */ @@ -472,13 +478,13 @@ static int open_tcp_socket(ares_channel channel, struct server_state *server) if (flags == -1) { - close(s); + closesocket(s); return -1; } flags |= O_NONBLOCK; if (fcntl(s, F_SETFL, flags) == -1) { - close(s); + closesocket(s); return -1; } #endif @@ -503,12 +509,12 @@ static int open_tcp_socket(ares_channel channel, struct server_state *server) static int open_udp_socket(ares_channel channel, struct server_state *server) { - int s; + ares_socket_t s; struct sockaddr_in sockin; /* Acquire a socket. */ s = socket(AF_INET, SOCK_DGRAM, 0); - if (s == -1) + if (s == ARES_SOCKET_BAD) return -1; /* Connect to the server. */ |