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.   */  | 
