diff options
Diffstat (limited to 'ares')
-rw-r--r-- | ares/ares__close_sockets.c | 4 | ||||
-rw-r--r-- | ares/ares_private.h | 7 | ||||
-rw-r--r-- | ares/ares_process.c | 14 | ||||
-rw-r--r-- | ares/config.dos | 2 | ||||
-rw-r--r-- | ares/setup_once.h | 13 |
5 files changed, 25 insertions, 15 deletions
diff --git a/ares/ares__close_sockets.c b/ares/ares__close_sockets.c index c2588663d..1becf9ab3 100644 --- a/ares/ares__close_sockets.c +++ b/ares/ares__close_sockets.c @@ -54,14 +54,14 @@ void ares__close_sockets(ares_channel channel, struct server_state *server) if (server->tcp_socket != ARES_SOCKET_BAD) { SOCK_STATE_CALLBACK(channel, server->tcp_socket, 0, 0); - closesocket(server->tcp_socket); + sclose(server->tcp_socket); server->tcp_socket = ARES_SOCKET_BAD; server->tcp_connection_generation = ++channel->tcp_connection_generation; } if (server->udp_socket != ARES_SOCKET_BAD) { SOCK_STATE_CALLBACK(channel, server->udp_socket, 0, 0); - closesocket(server->udp_socket); + sclose(server->udp_socket); server->udp_socket = ARES_SOCKET_BAD; } } diff --git a/ares/ares_private.h b/ares/ares_private.h index 794844039..e70bdb5c0 100644 --- a/ares/ares_private.h +++ b/ares/ares_private.h @@ -4,7 +4,7 @@ /* $Id$ */ /* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2004-2008 by Daniel Stenberg + * Copyright (C) 2004-2009 by Daniel Stenberg * * Permission to use, copy, modify, and distribute this * software and its documentation for any purpose and without @@ -32,16 +32,11 @@ #if !defined(WIN32) || defined(WATT32) #include <netinet/in.h> -/* We define closesocket() here so that we can use this function all over - the source code for closing sockets. */ -#define closesocket(x) close(x) #endif #ifdef WATT32 #include <tcp.h> #include <sys/ioctl.h> -#undef closesocket -#define closesocket(s) close_s(s) #define writev(s,v,c) writev_s(s,v,c) #define HAVE_WRITEV 1 #endif diff --git a/ares/ares_process.c b/ares/ares_process.c index c4848108a..41d181132 100644 --- a/ares/ares_process.c +++ b/ares/ares_process.c @@ -896,7 +896,7 @@ static int open_tcp_socket(ares_channel channel, struct server_state *server) /* Configure it. */ if (configure_socket(s, channel) < 0) { - closesocket(s); + sclose(s); return -1; } @@ -911,7 +911,7 @@ static int open_tcp_socket(ares_channel channel, struct server_state *server) if (setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (void *)&opt, sizeof(opt)) == -1) { - closesocket(s); + sclose(s); return -1; } #endif @@ -927,7 +927,7 @@ static int open_tcp_socket(ares_channel channel, struct server_state *server) if (err != EINPROGRESS && err != EWOULDBLOCK) { - closesocket(s); + sclose(s); return -1; } } @@ -938,7 +938,7 @@ static int open_tcp_socket(ares_channel channel, struct server_state *server) channel->sock_create_cb_data); if (err < 0) { - closesocket(s); + sclose(s); return err; } } @@ -963,7 +963,7 @@ static int open_udp_socket(ares_channel channel, struct server_state *server) /* Set the socket non-blocking. */ if (configure_socket(s, channel) < 0) { - closesocket(s); + sclose(s); return -1; } @@ -978,7 +978,7 @@ static int open_udp_socket(ares_channel channel, struct server_state *server) if (err != EINPROGRESS && err != EWOULDBLOCK) { - closesocket(s); + sclose(s); return -1; } } @@ -989,7 +989,7 @@ static int open_udp_socket(ares_channel channel, struct server_state *server) channel->sock_create_cb_data); if (err < 0) { - closesocket(s); + sclose(s); return err; } } diff --git a/ares/config.dos b/ares/config.dos index 98b176545..96baa9cc4 100644 --- a/ares/config.dos +++ b/ares/config.dos @@ -154,6 +154,7 @@ #define HAVE_AF_INET6 1 #define HAVE_ARPA_INET_H 1 #define HAVE_ARPA_NAMESER_H 1 + #define HAVE_CLOSESOCKET_CAMEL 1 #define HAVE_GETHOSTNAME 1 #define HAVE_NETDB_H 1 #define HAVE_NETINET_IN_H 1 @@ -167,6 +168,7 @@ #define HAVE_SYS_UIO_H 1 #define NS_INADDRSZ 4 #define HAVE_STRUCT_SOCKADDR_IN6 1 + #define CloseSocket(s) close_s((s)) #endif #undef word diff --git a/ares/setup_once.h b/ares/setup_once.h index de6c632be..f7d45a232 100644 --- a/ares/setup_once.h +++ b/ares/setup_once.h @@ -223,6 +223,19 @@ struct timeval { /* + * Function-like macro definition used to close a socket. + */ + +#if defined(HAVE_CLOSESOCKET) +# define sclose(x) closesocket((x)) +#elif defined(HAVE_CLOSESOCKET_CAMEL) +# define sclose(x) CloseSocket((x)) +#else +# define sclose(x) close((x)) +#endif + + +/* * Uppercase macro versions of ANSI/ISO is*() functions/macros which * avoid negative number inputs with argument byte codes > 127. */ |