diff --git a/ares/ahost.c b/ares/ahost.c index 1e6cc8bd4..974f94d68 100644 --- a/ares/ahost.c +++ b/ares/ahost.c @@ -40,13 +40,6 @@ #include "inet_net_pton.h" #include "ares_getopt.h" -#ifndef HAVE_STRUCT_IN6_ADDR -struct in6_addr -{ - unsigned char s6_addr[16]; -}; -#endif - static void callback(void *arg, int status, int timeouts, struct hostent *host); static void usage(void); diff --git a/ares/ares.h b/ares/ares.h index 5e3431010..37ad9b95c 100644 --- a/ares/ares.h +++ b/ares/ares.h @@ -43,8 +43,12 @@ #include #include #elif defined(WIN32) - #include - #include +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif +# include +# include +# include #else #include #include @@ -241,6 +245,15 @@ int ares_expand_name(const unsigned char *encoded, const unsigned char *abuf, int ares_expand_string(const unsigned char *encoded, const unsigned char *abuf, int alen, unsigned char **s, long *enclen); +#ifndef s6_addr +struct in6_addr { + union { + unsigned char _S6_u8[16]; + } _S6_un; +}; +#define s6_addr _S6_un._S6_u8 +#endif + struct addrttl { struct in_addr ipaddr; int ttl; diff --git a/ares/ares_ipv6.h b/ares/ares_ipv6.h index afc98320b..6ffa2f375 100644 --- a/ares/ares_ipv6.h +++ b/ares/ares_ipv6.h @@ -21,11 +21,13 @@ #define PF_INET6 AF_INET6 #endif -#ifndef HAVE_STRUCT_IN6_ADDR -struct in6_addr -{ - unsigned char s6_addr[16]; +#ifndef s6_addr +struct in6_addr { + union { + unsigned char _S6_u8[16]; + } _S6_un; }; +#define s6_addr _S6_un._S6_u8 #endif #ifndef HAVE_STRUCT_SOCKADDR_IN6 diff --git a/ares/ares_parse_a_reply.c b/ares/ares_parse_a_reply.c index 4dea80eae..34f2d67e0 100644 --- a/ares/ares_parse_a_reply.c +++ b/ares/ares_parse_a_reply.c @@ -32,6 +32,7 @@ #include #include +#include #include "ares.h" #include "ares_dns.h" #include "ares_private.h" diff --git a/ares/ares_parse_aaaa_reply.c b/ares/ares_parse_aaaa_reply.c index 3b578f151..656ffbfb0 100644 --- a/ares/ares_parse_aaaa_reply.c +++ b/ares/ares_parse_aaaa_reply.c @@ -34,6 +34,7 @@ #include #include +#include #include "ares.h" #include "ares_dns.h" #include "inet_net_pton.h" diff --git a/ares/config-win32.h b/ares/config-win32.h index 1b65ce764..257a98451 100644 --- a/ares/config-win32.h +++ b/ares/config-win32.h @@ -174,19 +174,29 @@ /* ---------------------------------------------------------------- */ /* Define this if you have address family AF_INET6 */ +#ifdef HAVE_WINSOCK2_H #define HAVE_AF_INET6 1 +#endif /* Define this if you have protocol family PF_INET6 */ +#ifdef HAVE_WINSOCK2_H #define HAVE_PF_INET6 1 +#endif /* Define this if you have struct in6_addr */ +#ifdef HAVE_WS2TCPIP_H #define HAVE_STRUCT_IN6_ADDR 1 +#endif /* Define this if you have struct sockaddr_in6 */ +#ifdef HAVE_WS2TCPIP_H #define HAVE_STRUCT_SOCKADDR_IN6 1 +#endif /* Define this if you have sockaddr_in6 with scopeid */ +#ifdef HAVE_WS2TCPIP_H #define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1 +#endif #endif /* __ARES_CONFIG_WIN32_H */ diff --git a/ares/nameser.h b/ares/nameser.h index 61741bb5f..154941450 100644 --- a/ares/nameser.h +++ b/ares/nameser.h @@ -7,9 +7,6 @@ port build */ #ifndef NETWARE -#ifndef __CYGWIN__ -#include -#endif #include /* for the _getpid() proto */ #endif /* !NETWARE */ #include